From 9d646bbfa3e9b8275c2e627dd24abe0c890ac370 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Thu, 23 May 2024 13:16:35 +0200 Subject: [PATCH 1/2] msg-filter: compile regexes statically ... to make the code easier to follow Related: https://issues.redhat.com/browse/OSH-663 --- src/lib/msg-filter.cc | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/lib/msg-filter.cc b/src/lib/msg-filter.cc index a4641ccb..cccc2831 100644 --- a/src/lib/msg-filter.cc +++ b/src/lib/msg-filter.cc @@ -65,15 +65,6 @@ struct MsgFilter::Private { TMsgReplaceList repList; TSubstMap fileSubsts; - const std::string strKrn = "^[a-zA-Z+]+"; - const RE reKrn = RE(strKrn + /* convert el8_9 -> el8 */ "|_[0-9]+$"); - const RE reDir = RE("^([^:]*/)"); - const RE reFile = RE("[^/]+$"); - const RE rePath = RE("^(?:/builddir/build/BUILD/)?([^/]+)/(.*)(\\.[ly])?$"); - const RE rePyBuild = RE("^((?:/builddir/build/BUILD/)?[^/]+/)build/lib/(.*)$"); - const RE reTmpPath = RE("^(/var)?/tmp/(.*)$"); - const RE reTmpCleaner = RE("(.*)"); - void addMsgFilter( const std::string &checker, const std::string ®exp, @@ -247,10 +238,13 @@ std::string MsgFilter::filterPath( { std::string path = origPath; + static const RE reDir("^([^:]*/)"); + TSubstMap &substMap = d->fileSubsts; if (!substMap.empty()) { - std::string base = regexReplaceWrap(origPath, d->reDir, ""); - std::string dir = regexReplaceWrap(origPath, d->reFile, ""); + std::string base = regexReplaceWrap(origPath, reDir, ""); + static const RE reFile("[^/]+$"); + std::string dir = regexReplaceWrap(origPath, reFile, ""); if (substMap.find(base) != substMap.end()) { const std::string &substWith = substMap[base]; path = dir + substWith; @@ -258,27 +252,31 @@ std::string MsgFilter::filterPath( } if (!forceFullPath && d->ignorePath) - return regexReplaceWrap(path, d->reDir, ""); + return regexReplaceWrap(path, reDir, ""); - if (boost::regex_match(path, d->reTmpPath)) { + static const RE reTmpPath("^(/var)?/tmp/(.*)$"); + if (boost::regex_match(path, reTmpPath)) { // filter random numbers in names of temporary generated files - std::string tmpPath = boost::regex_replace(path, d->reTmpCleaner, "/tmp/tmp.c"); + static const RE reTmpCleaner("(.*)"); + std::string tmpPath = boost::regex_replace(path, reTmpCleaner, "/tmp/tmp.c"); return tmpPath; } // "/usr/src/kernels/4.18.0-552.el8.x86_64+debug/..." // -> "/usr/src/kernels/VERSION-RELEASE+debug/..." - const RE reKrnUsrSrc("^(/usr/src/kernels/)[^/-]+-[^/-]+((?:\\+debug)?/.*)$"); + static const RE reKrnUsrSrc("^(/usr/src/kernels/)[^/-]+-[^/-]+((?:\\+debug)?/.*)$"); path = regexReplaceWrap(path, reKrnUsrSrc, "\\1VERSION-RELEASE\\2"); boost::smatch sm; - if (boost::regex_match(path, sm, d->rePyBuild)) { + static const RE rePyBuild("^((?:/builddir/build/BUILD/)?[^/]+/)build/lib/(.*)$"); + if (boost::regex_match(path, sm, rePyBuild)) { // %{_builddir}/build/lib/setuptools/glob.py -> // %{_builddir}/setuptools/glob.py path = sm[1] + sm[2]; } - if (!boost::regex_match(path, sm, d->rePath)) + static const RE rePath("^(?:/builddir/build/BUILD/)?([^/]+)/(.*)(\\.[ly])?$"); + if (!boost::regex_match(path, sm, rePath)) // no match return path; @@ -286,8 +284,10 @@ std::string MsgFilter::filterPath( path = sm[/* core */ 2]; // try to kill the multiple version strings in paths (kernel, OpenLDAP, ...) - const std::string ver = boost::regex_replace(nvr, d->reKrn, ""); - const std::string krnPattern = d->strKrn + ver + "[^/]*/"; + static const std::string strKrn = "^[a-zA-Z+]+"; + static const RE reKrn(strKrn + /* convert el8_9 -> el8 */ "|_[0-9]+$"); + const std::string ver = boost::regex_replace(nvr, reKrn, ""); + const std::string krnPattern = strKrn + ver + "[^/]*/"; #if DEBUG_SUBST > 2 std::cerr << "nvr: " << nvr << "\n"; From 7642174b692241816824a8f13a345cb267e72874 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Thu, 23 May 2024 13:29:36 +0200 Subject: [PATCH 2/2] msg-filter: adapt paths from llvm-17 source tree ... to match the llvm-19 source tree Resolves: https://issues.redhat.com/browse/OSH-663 Closes: https://github.com/csutils/csdiff/pull/183 --- src/lib/msg-filter.cc | 6 + tests/csdiff/CMakeLists.txt | 1 + .../25-llvm-17-path-filter-add-z.err | 17092 +++++++++ .../diff-misc/25-llvm-17-path-filter-add.err | 17178 +++++++++ .../25-llvm-17-path-filter-fix-z.err | 9498 +++++ .../diff-misc/25-llvm-17-path-filter-fix.err | 9584 +++++ .../diff-misc/25-llvm-17-path-filter-new.err | 30492 ++++++++++++++++ .../diff-misc/25-llvm-17-path-filter-old.err | 22898 ++++++++++++ 8 files changed, 106749 insertions(+) create mode 100644 tests/csdiff/diff-misc/25-llvm-17-path-filter-add-z.err create mode 100644 tests/csdiff/diff-misc/25-llvm-17-path-filter-add.err create mode 100644 tests/csdiff/diff-misc/25-llvm-17-path-filter-fix-z.err create mode 100644 tests/csdiff/diff-misc/25-llvm-17-path-filter-fix.err create mode 100644 tests/csdiff/diff-misc/25-llvm-17-path-filter-new.err create mode 100644 tests/csdiff/diff-misc/25-llvm-17-path-filter-old.err diff --git a/src/lib/msg-filter.cc b/src/lib/msg-filter.cc index cccc2831..3cab49f7 100644 --- a/src/lib/msg-filter.cc +++ b/src/lib/msg-filter.cc @@ -254,6 +254,12 @@ std::string MsgFilter::filterPath( if (!forceFullPath && d->ignorePath) return regexReplaceWrap(path, reDir, ""); + // adapt paths from llvm-17 source tree to match the llvm-19 source tree + static const RE reLLVM17("^(llvm-17\\.[^/]*)" + "((?:/redhat-linux-build)?)/" + "(include|lib|tools|unittests|utils)"); + path = boost::regex_replace(path, reLLVM17, "\\1/llvm\\2/\\3"); + static const RE reTmpPath("^(/var)?/tmp/(.*)$"); if (boost::regex_match(path, reTmpPath)) { // filter random numbers in names of temporary generated files diff --git a/tests/csdiff/CMakeLists.txt b/tests/csdiff/CMakeLists.txt index 41e94c75..f2425d4b 100644 --- a/tests/csdiff/CMakeLists.txt +++ b/tests/csdiff/CMakeLists.txt @@ -89,5 +89,6 @@ test_csdiff(diff-misc 21-kernel-shell-code) test_csdiff(diff-misc 22-kernel-zstream-path) test_csdiff(diff-misc 23-cov-parser-key-event) test_csdiff(diff-misc 24-shellcheck-line-content) +test_csdiff(diff-misc 25-llvm-17-path-filter) add_subdirectory(filter-file) diff --git a/tests/csdiff/diff-misc/25-llvm-17-path-filter-add-z.err b/tests/csdiff/diff-misc/25-llvm-17-path-filter-add-z.err new file mode 100644 index 00000000..0daccc1a --- /dev/null +++ b/tests/csdiff/diff-misc/25-llvm-17-path-filter-add-z.err @@ -0,0 +1,17092 @@ +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:30:29: constructor_uses_global_object: The constructor of global object "Directory[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Directory[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace clang::replace; +# 29| +# 30|-> static cl::opt Directory(cl::Positional, cl::Required, +# 31| cl::desc("")); +# 32| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "Allocator" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "GlobalParser" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "fuzzer::TPC" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "Allocator" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "GlobalParser" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "fuzzer::TPC" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "Allocator" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "fuzzer::TPC" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "scudo::RegionPageMap::Buffers" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "Allocator" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "fuzzer::TPC" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "scudo::RegionPageMap::Buffers" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "Allocator" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "fuzzer::TPC" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "scudo::RegionPageMap::Buffers" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "Allocator" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "Allocator" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "Allocator" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "GlobalParser" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "fuzzer::TPC" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "Allocator" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "Allocator" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "Allocator" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "Allocator" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "fuzzer::TPC" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "scudo::RegionPageMap::Buffers" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "Allocator" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "fuzzer::TPC" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "scudo::RegionPageMap::Buffers" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "Allocator" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "Allocator" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/HTMLGenerator.cpp:569:3: var_decl: Declaring variable "Idx". +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/HTMLGenerator.cpp:573:3: uninit_use: Using uninitialized value "Idx". Field "Idx.Path.InlineElts" is uninitialized. +# 571| Idx.Children.emplace_back(C.extractName(), +# 572| llvm::toHex(llvm::toStringRef(C.USR))); +# 573|-> return Idx; +# 574| } +# 575| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/Serialize.cpp:50:3: var_decl: Declaring variable "Path". +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/Serialize.cpp:53:3: uninit_use: Using uninitialized value "Path". Field "Path.InlineElts" is uninitialized. +# 51| for (auto R = Namespaces.rbegin(), E = Namespaces.rend(); R != E; ++R) +# 52| llvm::sys::path::append(Path, R->Name); +# 53|-> return Path; +# 54| } +# 55| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/YAMLGenerator.cpp:100:5: var_decl: Declaring variable "USR" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/YAMLGenerator.cpp:103:5: uninit_use: Using uninitialized value "USR". +# 101| std::string HexString = fromHex(Value); +# 102| std::copy(HexString.begin(), HexString.end(), USR.begin()); +# 103|-> return SymbolID(USR); +# 104| } +# 105| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:53:28: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 51| using namespace clang; +# 52| +# 53|-> static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54| static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "Allocator" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "GlobalParser" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "fuzzer::TPC" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "Allocator" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "Allocator" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "fuzzer::TPC" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "scudo::RegionPageMap::Buffers" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "Allocator" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "Allocator" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "fuzzer::TPC" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "scudo::RegionPageMap::Buffers" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "Allocator" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "fuzzer::TPC" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "scudo::RegionPageMap::Buffers" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "Allocator" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "Allocator" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "Allocator" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "Allocator" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "fuzzer::TPC" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "scudo::RegionPageMap::Buffers" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp:286:5: var_decl: Declaring variable "Correction". +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp:296:7: uninit_use: Using uninitialized value "Correction". Field "Correction.CorrectionDecls.InlineElts" is uninitialized. +# 294| MatchedSymbols), +# 295| Code, StartOfFile, CI->getASTContext())) +# 296|-> return Correction; +# 297| } +# 298| return TypoCorrection(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixerContext.cpp:20:3: var_decl: Declaring variable "Qualifiers". +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixerContext.cpp:22:3: uninit_use: Using uninitialized value "Qualifiers". Field "Qualifiers.InlineElts" is uninitialized. +# 20| llvm::SmallVector Qualifiers; +# 21| StringQualifiers.split(Qualifiers, "::"); +# 22|-> return Qualifiers; +# 23| } +# 24| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "Allocator" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "GlobalParser" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "fuzzer::TPC" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:47:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 45| // command-line options related to the compilation database and input files. +# 46| // It's nice to have this help message in all tools. +# 47|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 48| +# 49| // A help message for this specific tool can be added afterwards. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "MoreHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "MoreHelp" might be created before "GlobalParser" is available. +# 48| +# 49| // A help message for this specific tool can be added afterwards. +# 50|-> static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52| static cl::opt OutputDir("output-dir", cl::desc(R"( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "Allocator" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "Allocator" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "Allocator" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "GlobalParser" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "fuzzer::TPC" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "Allocator" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "fuzzer::TPC" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "scudo::RegionPageMap::Buffers" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "Allocator" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "Allocator" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "Allocator" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "fuzzer::TPC" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "scudo::RegionPageMap::Buffers" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "Allocator" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "fuzzer::TPC" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "scudo::RegionPageMap::Buffers" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "Allocator" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "fuzzer::TPC" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "scudo::RegionPageMap::Buffers" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "Allocator" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "fuzzer::TPC" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "scudo::RegionPageMap::Buffers" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "Allocator" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "Allocator" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "Allocator" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "GlobalParser" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "fuzzer::TPC" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "Allocator" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "Allocator" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "Allocator" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "Allocator" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "Allocator" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "Allocator" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "fuzzer::TPC" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "scudo::RegionPageMap::Buffers" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "Allocator" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "fuzzer::TPC" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "scudo::RegionPageMap::Buffers" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "Allocator" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "Allocator" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "fuzzer::TPC" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "Allocator" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "fuzzer::TPC" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:50:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 48| using namespace llvm; +# 49| +# 50|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51| static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "Allocator" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "GlobalParser" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "fuzzer::TPC" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "Allocator" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "fuzzer::TPC" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "scudo::RegionPageMap::Buffers" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "Allocator" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "Allocator" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "Allocator" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp:102:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp:116:3: uninit_use: Using uninitialized value "Results". Field "Results.vector_.InlineElts" is uninitialized. +# 114| if (auto *FD = dyn_cast(MemExpr->getMemberDecl())) +# 115| Results.insert(FD); +# 116|-> return Results; +# 117| } +# 118| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "Allocator" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "GlobalParser" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "fuzzer::TPC" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "Allocator" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "Allocator" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "Allocator" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "fuzzer::TPC" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "scudo::RegionPageMap::Buffers" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:114:3: var_decl: Declaring variable "NoLints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:148:3: uninit_use: Using uninitialized value "NoLints". Field "NoLints.InlineElts" is uninitialized. +# 146| } +# 147| +# 148|-> return NoLints; +# 149| } +# 150| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:188:3: var_decl: Declaring variable "CompletedBlocks". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:211:3: uninit_use: Using uninitialized value "CompletedBlocks". Field "CompletedBlocks.InlineElts" is uninitialized. +# 209| +# 210| llvm::move(Stack, std::back_inserter(UnmatchedTokens)); +# 211|-> return CompletedBlocks; +# 212| } +# 213| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:366:3: var_decl: Declaring variable "Error". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:377:3: uninit_use: Using uninitialized value "Error". Field "Error.Notes.InlineElts" is uninitialized. +# 375| SourceLocation Loc = SrcMgr.getComposedLoc(File, NoLint.Pos); +# 376| Error.Message = tooling::DiagnosticMessage(Message, SrcMgr, Loc); +# 377|-> return Error; +# 378| } +# 379| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp:236:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp:242:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 240| RHS->EvaluateAsRValue(Result, *Context); +# 241| else +# 242|-> return false; // Cannot evaluate either side. +# 243| if (!Result.Val.isInt()) +# 244| return false; // Cannot check number of iterations, return false to be + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1419:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1495:3: uninit_use: Using uninitialized value "Ret". Field "Ret.Mixes.InlineElts" is uninitialized. +# 1493| } +# 1494| +# 1495|-> return Ret; +# 1496| } +# 1497| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1917:3: var_decl: Declaring variable "Name". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1920:3: uninit_use: Using uninitialized value "Name". Field "Name.InlineElts" is uninitialized. +# 1918| llvm::raw_svector_ostream OS{Name}; +# 1919| ND->getNameForDiagnostic(OS, ND->getASTContext().getPrintingPolicy(), false); +# 1920|-> return Name; +# 1921| } +# 1922| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp:21:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Semantics, 1UL)". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp:21:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 19| +# 20| static llvm::APFloat getHalf(const llvm::fltSemantics &Semantics) { +# 21|-> return llvm::APFloat(Semantics, 1U) / llvm::APFloat(Semantics, 2U); +# 22| } +# 23| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp:67:3: var_decl: Declaring variable "Length". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp:90:3: uninit_use_in_call: Using uninitialized value "Length.Val.Data" when calling "~EvalResult". +# 88| return SrcSL->getLength(); +# 89| +# 90|-> return 0; +# 91| } +# 92| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp:39:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp:56:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 54| } +# 55| +# 56|-> return Result; +# 57| } +# 58| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp:44:3: var_decl: Declaring variable "AllowedIdentifiers". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp:55:3: uninit_use: Using uninitialized value "AllowedIdentifiers". Field "AllowedIdentifiers.InlineElts" is uninitialized. +# 53| } +# 54| +# 55|-> return AllowedIdentifiers; +# 56| } +# 57| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:145:5: var_decl: Declaring variable "EVResult". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:156:3: uninit_use_in_call: Using uninitialized value "EVResult.Val.Data" when calling "~EvalResult". +# 154| diag(Comparison->getBeginLoc(), +# 155| "comparison between 'signed char' and 'unsigned char'"); +# 156|-> } else if (Result.Nodes.getNodeAs("arraySubscript")) { +# 157| diag(SignedCastExpression->getBeginLoc(), +# 158| "'signed char' to %0 conversion in array subscript; " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:131:3: var_decl: Declaring variable "EVResult". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:167:1: uninit_use_in_call: Using uninitialized value "EVResult.Val.Data" when calling "~EvalResult". +# 165| << *IntegerType; +# 166| } +# 167|-> } +# 168| +# 169| } // namespace clang::tidy::bugprone + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp:168:5: var_decl: Declaring variable "ConstPtr". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp:181:3: uninit_use_in_call: Using uninitialized value "ConstPtr.Val.Data" when calling "~EvalResult". +# 179| diag(Loc, "constructing string from nullptr is undefined behaviour"); +# 180| } +# 181|-> } +# 182| } +# 183| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp:102:5: var_decl: Declaring variable "Value2". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp:106:7: uninit_use_in_call: Using uninitialized value "Value2.Val.Data" when calling "~EvalResult". +# 104| !ByteCount->EvaluateAsInt(Value2, *Result.Context) || +# 105| Value2.Val.getInt() != 0) +# 106|-> return; +# 107| +# 108| // Return if `fill_char` is known to be zero or negative at compile + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp:305:3: var_decl: Declaring variable "Str". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp:316:3: uninit_use: Using uninitialized value "Str". Field "Str.InlineElts" is uninitialized. +# 314| Str.append(")"); +# 315| } +# 316|-> return Str; +# 317| } +# 318| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp:202:3: var_decl: Declaring variable "Insertions". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp:237:3: uninit_use: Using uninitialized value "Insertions". Field "Insertions.InlineElts" is uninitialized. +# 235| } +# 236| } +# 237|-> return Insertions; +# 238| } +# 239| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp:39:32: constructor_uses_global_object: The constructor of global object "clang::tidy::llvm_libc::IgnoredFunctions" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::llvm_libc::IgnoredFunctions" might be created before "Allocator" is available. +# 37| // functions are specifically allowed to be external so that they can be +# 38| // intercepted. +# 39|-> static const llvm::StringSet<> IgnoredFunctions = { +# 40| "__errno_location", "malloc", "calloc", "realloc", "free", "aligned_alloc"}; +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp:39:32: constructor_uses_global_object: The constructor of global object "clang::tidy::llvm_libc::IgnoredFunctions" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::llvm_libc::IgnoredFunctions" might be created before "fuzzer::TPC" is available. +# 37| // functions are specifically allowed to be external so that they can be +# 38| // intercepted. +# 39|-> static const llvm::StringSet<> IgnoredFunctions = { +# 40| "__errno_location", "malloc", "calloc", "realloc", "free", "aligned_alloc"}; +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp:39:32: constructor_uses_global_object: The constructor of global object "clang::tidy::llvm_libc::IgnoredFunctions" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::llvm_libc::IgnoredFunctions" might be created before "scudo::RegionPageMap::Buffers" is available. +# 37| // functions are specifically allowed to be external so that they can be +# 38| // intercepted. +# 39|-> static const llvm::StringSet<> IgnoredFunctions = { +# 40| "__errno_location", "malloc", "calloc", "realloc", "free", "aligned_alloc"}; +# 41| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp:51:3: var_decl: Declaring variable "Skeleton". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp:89:3: uninit_use: Using uninitialized value "Skeleton". Field "Skeleton.InlineElts" is uninitialized. +# 87| } +# 88| } +# 89|-> return Skeleton; +# 90| } +# 91| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp:257:3: var_decl: Declaring variable "BindArguments". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp:318:3: uninit_use: Using uninitialized value "BindArguments". Field "BindArguments.InlineElts" is uninitialized. +# 316| } +# 317| } +# 318|-> return BindArguments; +# 319| } +# 320| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:71:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::MemberNames" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::MemberNames" might be created before "Allocator" is available. +# 69| static const char DerefByValueResultName[] = "derefByValueResult"; +# 70| static const char DerefByRefResultName[] = "derefByRefResult"; +# 71|-> static const llvm::StringSet<> MemberNames{"begin", "cbegin", "rbegin", +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:71:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::MemberNames" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::MemberNames" might be created before "fuzzer::TPC" is available. +# 69| static const char DerefByValueResultName[] = "derefByValueResult"; +# 70| static const char DerefByRefResultName[] = "derefByRefResult"; +# 71|-> static const llvm::StringSet<> MemberNames{"begin", "cbegin", "rbegin", +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:71:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::MemberNames" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::MemberNames" might be created before "scudo::RegionPageMap::Buffers" is available. +# 69| static const char DerefByValueResultName[] = "derefByValueResult"; +# 70| static const char DerefByRefResultName[] = "derefByRefResult"; +# 71|-> static const llvm::StringSet<> MemberNames{"begin", "cbegin", "rbegin", +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:74:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ADLNames" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ADLNames" might be created before "Allocator" is available. +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; +# 74|-> static const llvm::StringSet<> ADLNames{"begin", "cbegin", "rbegin", +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:74:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ADLNames" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ADLNames" might be created before "fuzzer::TPC" is available. +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; +# 74|-> static const llvm::StringSet<> ADLNames{"begin", "cbegin", "rbegin", +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:74:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ADLNames" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ADLNames" might be created before "scudo::RegionPageMap::Buffers" is available. +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; +# 74|-> static const llvm::StringSet<> ADLNames{"begin", "cbegin", "rbegin", +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:77:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::StdNames" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::StdNames" might be created before "Allocator" is available. +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; +# 77|-> static const llvm::StringSet<> StdNames{ +# 78| "std::begin", "std::cbegin", "std::rbegin", "std::crbegin", "std::end", +# 79| "std::cend", "std::rend", "std::crend", "std::size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:77:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::StdNames" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::StdNames" might be created before "fuzzer::TPC" is available. +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; +# 77|-> static const llvm::StringSet<> StdNames{ +# 78| "std::begin", "std::cbegin", "std::rbegin", "std::crbegin", "std::end", +# 79| "std::cend", "std::rend", "std::crend", "std::size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:77:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::StdNames" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::StdNames" might be created before "scudo::RegionPageMap::Buffers" is available. +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; +# 77|-> static const llvm::StringSet<> StdNames{ +# 78| "std::begin", "std::cbegin", "std::rbegin", "std::crbegin", "std::end", +# 79| "std::cend", "std::rend", "std::crend", "std::size"}; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:34:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:61:7: uninit_use: Using uninitialized value "Result". Field "Result.Args.InlineElts" is uninitialized. +# 59| Result.Compare = *ArgIterator; +# 60| +# 61|-> return Result; +# 62| } +# 63| Result.Args = SmallVector(Call->arguments()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:80:3: var_decl: Declaring variable "FixItHints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:94:5: uninit_use: Using uninitialized value "FixItHints". Field "FixItHints.InlineElts" is uninitialized. +# 92| +# 93| if ((!IsResultTypeTrivial && IgnoreNonTrivialTypes)) +# 94|-> return FixItHints; +# 95| +# 96| if (IsResultTypeTrivial && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:80:3: var_decl: Declaring variable "FixItHints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:100:5: uninit_use: Using uninitialized value "FixItHints". Field "FixItHints.InlineElts" is uninitialized. +# 98| Match.Context->getTypeSizeInChars(ResultType).getQuantity()) > +# 99| IgnoreTrivialTypesOfSizeAbove) +# 100|-> return FixItHints; +# 101| +# 102| for (const Expr *Arg : Result.Args) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:80:3: var_decl: Declaring variable "FixItHints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:192:3: uninit_use: Using uninitialized value "FixItHints". Field "FixItHints.InlineElts" is uninitialized. +# 190| } +# 191| +# 192|-> return FixItHints; +# 193| } +# 194| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp:181:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp:186:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 184| for (const FunctionDecl *Redecl : Ctor->redecls()) +# 185| Results.push_back(Redecl->getParamDecl(ParamIdx)); +# 186|-> return Results; +# 187| } +# 188| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp:36:3: return_constant: Function call "Text.find('"', 0UL)" may return 18446744073709551615. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp:36:3: assignment: Assigning: "QuotePos" = "Text.find('"', 0UL)". The value of "QuotePos" is now 18446744073709551615. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp:38:3: overrun-buffer-arg: Calling "operator []" with "Text.Data" and "QuotePos - 1UL" is suspicious because of the very large index, 18446744073709551614. The index may be due to a negative parameter being interpreted as unsigned. +# 36| const size_t QuotePos = Text.find('"'); +# 37| assert(QuotePos != StringRef::npos); +# 38|-> return (QuotePos > 0) && (Text[QuotePos - 1] == 'R'); +# 39| } +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:18:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ValueTraits" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ValueTraits" might be created before "Allocator" is available. +# 16| namespace clang::tidy::modernize { +# 17| +# 18|-> static const llvm::StringSet<> ValueTraits = { +# 19| "alignment_of", +# 20| "conjunction", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:18:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ValueTraits" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ValueTraits" might be created before "fuzzer::TPC" is available. +# 16| namespace clang::tidy::modernize { +# 17| +# 18|-> static const llvm::StringSet<> ValueTraits = { +# 19| "alignment_of", +# 20| "conjunction", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:18:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ValueTraits" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ValueTraits" might be created before "scudo::RegionPageMap::Buffers" is available. +# 16| namespace clang::tidy::modernize { +# 17| +# 18|-> static const llvm::StringSet<> ValueTraits = { +# 19| "alignment_of", +# 20| "conjunction", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:105:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::TypeTraits" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::TypeTraits" might be created before "Allocator" is available. +# 103| }; +# 104| +# 105|-> static const llvm::StringSet<> TypeTraits = { +# 106| "remove_cv", +# 107| "remove_const", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:105:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::TypeTraits" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::TypeTraits" might be created before "fuzzer::TPC" is available. +# 103| }; +# 104| +# 105|-> static const llvm::StringSet<> TypeTraits = { +# 106| "remove_cv", +# 107| "remove_const", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:105:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::TypeTraits" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::TypeTraits" might be created before "scudo::RegionPageMap::Buffers" is available. +# 103| }; +# 104| +# 105|-> static const llvm::StringSet<> TypeTraits = { +# 106| "remove_cv", +# 107| "remove_const", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp:74:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp:77:5: uninit_use: Using uninitialized value "Result". Field "Result.Hints.InlineElts" is uninitialized. +# 75| std::optional Tok = findConstToRemove(Def, MatchResult); +# 76| if (!Tok) +# 77|-> return Result; +# 78| +# 79| Result.ConstRange = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:103:3: var_decl: Declaring variable "DifferingParams". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:132:3: uninit_use: Using uninitialized value "DifferingParams". Field "DifferingParams.InlineElts" is uninitialized. +# 130| } +# 131| +# 132|-> return DifferingParams; +# 133| } +# 134| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:139:3: var_decl: Declaring variable "InconsistentDeclarations". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:165:3: uninit_use: Using uninitialized value "InconsistentDeclarations". Field "InconsistentDeclarations.InlineElts" is uninitialized. +# 163| Info2.DeclarationLocation); +# 164| }); +# 165|-> return InconsistentDeclarations; +# 166| } +# 167| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:109:7: var_decl: Declaring variable "FloatValue". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:110:7: uninit_use_in_call: Using uninitialized value "FloatValue.U" when calling "convertFromString". +# 108| for (const auto &InputValue : IgnoredFloatingPointValuesInput) { +# 109| llvm::APFloat FloatValue(llvm::APFloat::IEEEsingle()); +# 110|-> auto StatusOrErr = +# 111| FloatValue.convertFromString(InputValue, DefaultRoundingMode); +# 112| assert(StatusOrErr && "Invalid floating point representation"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:116:7: var_decl: Declaring variable "DoubleValue". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:117:7: uninit_use_in_call: Using uninitialized value "DoubleValue.U" when calling "convertFromString". +# 115| +# 116| llvm::APFloat DoubleValue(llvm::APFloat::IEEEdouble()); +# 117|-> StatusOrErr = +# 118| DoubleValue.convertFromString(InputValue, DefaultRoundingMode); +# 119| assert(StatusOrErr && "Invalid floating point representation"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "Allocator" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "GlobalParser" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "fuzzer::TPC" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:38:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 36| static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 39| static cl::extrahelp ClangTidyHelp(R"( +# 40| Configuration files: + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "ClangTidyHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyHelp" might be created before "GlobalParser" is available. +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 39|-> static cl::extrahelp ClangTidyHelp(R"( +# 40| Configuration files: +# 41| clang-tidy attempts to read configuration for each source file from a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "Allocator" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "Allocator" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "Allocator" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "Allocator" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "fuzzer::TPC" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "scudo::RegionPageMap::Buffers" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "Allocator" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "Allocator" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "fuzzer::TPC" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "scudo::RegionPageMap::Buffers" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "Allocator" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "fuzzer::TPC" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "scudo::RegionPageMap::Buffers" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "Allocator" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "fuzzer::TPC" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "scudo::RegionPageMap::Buffers" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "Allocator" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "Allocator" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "fuzzer::TPC" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "scudo::RegionPageMap::Buffers" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "Allocator" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "fuzzer::TPC" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "Allocator" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "Allocator" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "Allocator" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "fuzzer::TPC" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "Allocator" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "fuzzer::TPC" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "scudo::RegionPageMap::Buffers" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "Allocator" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "Allocator" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "fuzzer::TPC" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "scudo::RegionPageMap::Buffers" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "Allocator" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "fuzzer::TPC" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "scudo::RegionPageMap::Buffers" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "Allocator" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "Allocator" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "fuzzer::TPC" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "scudo::RegionPageMap::Buffers" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "Allocator" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "Allocator" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "fuzzer::TPC" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "scudo::RegionPageMap::Buffers" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "Allocator" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "fuzzer::TPC" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:20:3: var_decl: Declaring variable "Token" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:25:5: uninit_use_in_call: Using uninitialized value "Token". Field "Token.Loc" is uninitialized when calling "pair". +# 23| Location = Location.getLocWithOffset(-1); +# 24| if (Location.isInvalid()) +# 25|-> return {Token, Location}; +# 26| +# 27| auto StartOfFile = SM.getLocForStartOfFile(SM.getFileID(Location)); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:278:3: zero_return: Function call "FuncDecl->getNumParams()" returns 0. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:278:3: overrun-buffer-arg: Calling "getParamDecl" with "FuncDecl->ParamInfo" and "FuncDecl->getNumParams() - 1U" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 276| +# 277| // FunctionDecl with parameters +# 278|-> const SourceLocation NoexceptLoc = +# 279| FuncDecl->getParamDecl(FuncDecl->getNumParams() - 1)->getEndLoc(); +# 280| if (NoexceptLoc.isValid()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/ClangdServer.cpp:196:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/clang-tools-extra/clangd/ClangdServer.cpp:200:3: uninit_use: Using uninitialized value "Opts". Field "Opts.ClangTidyProvider.callable" is uninitialized. +# 198| Opts.StorePreamblesInMemory = true; +# 199| Opts.AsyncThreadsCount = 4; // Consistent! +# 200|-> return Opts; +# 201| } +# 202| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/CodeComplete.cpp:2191:5: var_decl: Declaring variable "Item". +llvm-project-19.0.0.src/clang-tools-extra/clangd/CodeComplete.cpp:2197:5: uninit_use_in_call: Using uninitialized value "Item". Field "Item.Includes.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 2195| Item.CompletionTokenRange = CompletionRange; +# 2196| Item.Origin = SymbolOrigin::AST; +# 2197|-> Result.Completions.push_back(Item); +# 2198| } +# 2199| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/CompileCommands.cpp:190:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/CompileCommands.cpp:194:3: uninit_use: Using uninitialized value "Result". Field "Result.SystemIncludeExtractor.StorageUnion" is uninitialized. +# 192| Result.ResourceDir = detectStandardResourceDir(); +# 193| Result.Sysroot = detectSysroot(); +# 194|-> return Result; +# 195| } +# 196| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Compiler.cpp:163:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang-tools-extra/clangd/Compiler.cpp:163:3: leaked_storage: Ignoring storage allocated by "Buffer.release()" leaks it. +# 161| // RemappedFileBuffers will handle the lifetime of the Buffer pointer, +# 162| // release it. +# 163|-> Buffer.release(); +# 164| return Clang; +# 165| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:160:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:164:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 162| for (const auto &Elem : Decls) +# 163| Result[Elem.second.second] = {Elem.first, Elem.second.first}; +# 164|-> return Result; +# 165| } +# 166| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:584:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:589:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 587| Result.push_back(Entry.first); +# 588| } +# 589|-> return Result; +# 590| } +# 591| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:605:3: var_decl: Declaring variable "Targets". +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:621:3: uninit_use: Using uninitialized value "Targets". Field "Targets.InlineElts" is uninitialized. +# 619| Targets.insert(Targets.end(), TemplatePatterns.begin(), +# 620| TemplatePatterns.end()); +# 621|-> return Targets; +# 622| } +# 623| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:486:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:501:7: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:501:7: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 499| Queue.pop_front(); +# 500| +# 501|-> Lock.unlock(); +# 502| { +# 503| WithContext WithCtx(std::move(ActiveTask->Ctx)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:172:3: var_decl: Declaring variable "Headers". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:175:3: uninit_use: Using uninitialized value "Headers". Field "Headers.InlineElts" is uninitialized. +# 173| for (const auto &Include : Includes) +# 174| Headers.push_back({Include.IncludeHeader, Include.supportedDirectives()}); +# 175|-> return Headers; +# 176| } +# 177| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:257:3: var_decl: Declaring variable "Includes". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:260:3: uninit_use: Using uninitialized value "Includes". Field "Includes.InlineElts" is uninitialized. +# 258| for (auto Idx : MainFileIncludesBySpelling.lookup(Spelling)) +# 259| Includes.push_back(&MainFileIncludes[Idx]); +# 260|-> return Includes; +# 261| } +# 262| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/IncludeCleaner.cpp:257:3: var_decl: Declaring variable "FixAll". +llvm-project-19.0.0.src/clang-tools-extra/clangd/IncludeCleaner.cpp:264:3: uninit_use: Using uninitialized value "FixAll". Field "FixAll.Edits.InlineElts" is uninitialized. +# 262| for (const auto &F : AddAllMissing.Edits) +# 263| FixAll.Edits.push_back(F); +# 264|-> return FixAll; +# 265| } +# 266| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/InlayHints.cpp:897:5: var_decl: Declaring variable "ParameterNames". +llvm-project-19.0.0.src/clang-tools-extra/clangd/InlayHints.cpp:922:5: uninit_use: Using uninitialized value "ParameterNames". Field "ParameterNames.InlineElts" is uninitialized. +# 920| stripLeadingUnderscores(Name); +# 921| +# 922|-> return ParameterNames; +# 923| } +# 924| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:112:5: var_decl: Declaring variable "Out". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:114:7: uninit_use: Using uninitialized value "Out". Field "Out.InlineElts" is uninitialized. +# 112| llvm::SmallVector> Out; +# 113| if (Claim.empty()) +# 114|-> return Out; +# 115| +# 116| // General case: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:112:5: var_decl: Declaring variable "Out". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:132:7: uninit_use: Using uninitialized value "Out". Field "Out.InlineElts" is uninitialized. +# 130| } +# 131| if (Overlap.first == Overlap.second) +# 132|-> return Out; +# 133| +# 134| // First, copy all overlapping ranges into the output. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:112:5: var_decl: Declaring variable "Out". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:157:5: uninit_use: Using uninitialized value "Out". Field "Out.InlineElts" is uninitialized. +# 155| UnclaimedRanges.insert(RemainingTail); +# 156| +# 157|-> return Out; +# 158| } +# 159| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:998:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:1010:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1008| Result.append(" …"); +# 1009| } +# 1010|-> return Result; +# 1011| } +# 1012| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:1041:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:1052:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1050| if (Result.empty()) +# 1051| Result.emplace_back(Offset, Offset); +# 1052|-> return Result; +# 1053| } +# 1054| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:159:5: extract: Calling "get" which extracts wrapped state from "Tail->parent". +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:159:5: assign: Assigning: "Tail" = "Tail->parent.get()". +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:158:5: invalidate: Calling "operator =" invalidates the internal representation of "Tail->parent". +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:159:5: use_after_free: Using invalidated internal representation of "Tail->parent". +# 157| llvm::MutableArrayRef(Ranges.data(), Ranges.size()).drop_front()) { +# 158| Tail->parent = std::make_unique(); +# 159|-> Tail = Tail->parent.get(); +# 160| Tail->range = std::move(Range); +# 161| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/TUScheduler.cpp:170:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/TUScheduler.cpp:180:5: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/TUScheduler.cpp:180:5: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 178| LRU.pop_back(); +# 179| // Run the expensive destructor outside the lock. +# 180|-> Lock.unlock(); +# 181| ForCleanup.reset(); +# 182| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp:33:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/clang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp:38:3: uninit_use_in_call: Using uninitialized value "Opts.ClangTidyProvider". Field "Opts.ClangTidyProvider.callable" is uninitialized when calling "ClangdLSPServer". +# 36| +# 37| // Initialize and run ClangdLSPServer. +# 38|-> ClangdLSPServer LSPServer(*Transport, FS, Opts); +# 39| LSPServer.run(); +# 40| return 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/BackgroundQueue.cpp:48:7: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/BackgroundQueue.cpp:55:11: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/BackgroundQueue.cpp:55:11: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 53| Stat.LastIdle = Stat.Completed; +# 54| if (OnIdle) { +# 55|-> Lock.unlock(); +# 56| OnIdle(); +# 57| Lock.lock(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/StdLib.cpp:214:3: var_decl: Declaring variable "Symbols". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/StdLib.cpp:224:5: uninit_use: Using uninitialized value "Symbols". Field "Symbols.Arena.Slabs.InlineElts" is uninitialized. +# 222| if (!Clang) { +# 223| elog("Standard Library Index: Couldn't build compiler instance"); +# 224|-> return Symbols; +# 225| } +# 226| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:216:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:219:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 217| for (auto &H : Headers) +# 218| Result.emplace_back(H.IncludeHeader, H.References, H.SupportedDirectives); +# 219|-> return Result; +# 220| } +# 221| llvm::SmallVector Headers; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:373:5: var_decl: Declaring variable "Digest" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:380:5: uninit_use: Using uninitialized value "Digest". +# 378| I.setError(std::string("Bad hex file digest: ") + HexString); +# 379| } +# 380|-> return Digest; +# 381| } +# 382| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp:30:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexLocation[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexLocation[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| namespace { +# 29| +# 30|-> llvm::cl::opt IndexLocation( +# 31| llvm::cl::desc(""), +# 32| llvm::cl::Positional); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp:35:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::ExecCommand[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ExecCommand[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| llvm::cl::opt +# 35|-> ExecCommand("c", llvm::cl::desc("Command to execute and then exit.")); +# 36| +# 37| llvm::cl::opt ProjectRoot( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp:37:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::ProjectRoot[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ProjectRoot[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| ExecCommand("c", llvm::cl::desc("Command to execute and then exit.")); +# 36| +# 37|-> llvm::cl::opt ProjectRoot( +# 38| "project-root", +# 39| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "Allocator" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "fuzzer::TPC" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "scudo::RegionPageMap::Buffers" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:41:36: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| llvm::cl::init(IndexFileFormat::RIFF)); +# 40| +# 41|-> static llvm::cl::list QueryDriverGlobs{ +# 42| "query-driver", +# 43| llvm::cl::desc( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/refactor/tweaks/ObjCMemberwiseInitializer.cpp:104:3: var_decl: Declaring variable "Params". +llvm-project-19.0.0.src/clang-tools-extra/clangd/refactor/tweaks/ObjCMemberwiseInitializer.cpp:120:3: uninit_use: Using uninitialized value "Params". Field "Params.InlineElts" is uninitialized. +# 118| Params.push_back(P); +# 119| } +# 120|-> return Params; +# 121| } +# 122| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/support/Threading.cpp:66:3: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/support/Threading.cpp:68:3: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/support/Threading.cpp:68:3: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 66| std::unique_lock Lock(Mutex); +# 67| ++FreeSlots; +# 68|-> Lock.unlock(); +# 69| +# 70| SlotsChanged.notify_one(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:86:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckTidyTime[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckTidyTime[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| // These will never be shown in --help, ClangdMain doesn't list the category. +# 86|-> llvm::cl::opt CheckTidyTime{ +# 87| "check-tidy-time", +# 88| llvm::cl::desc("Print the overhead of checks matching this glob"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:90:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFileLines[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFileLines[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| llvm::cl::desc("Print the overhead of checks matching this glob"), +# 89| llvm::cl::init("")}; +# 90|-> llvm::cl::opt CheckFileLines{ +# 91| "check-lines", +# 92| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:98:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| "to one line. Default is testing entire file."), +# 97| llvm::cl::init("")}; +# 98|-> llvm::cl::opt CheckLocations{ +# 99| "check-locations", +# 100| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:104:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckCompletion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckCompletion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| "Somewhat slow."), +# 103| llvm::cl::init(true)}; +# 104|-> llvm::cl::opt CheckCompletion{ +# 105| "check-completion", +# 106| llvm::cl::desc("Run code-completion at each point (slow)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:108:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckWarnings" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckWarnings" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| llvm::cl::desc("Run code-completion at each point (slow)"), +# 107| llvm::cl::init(false)}; +# 108|-> llvm::cl::opt CheckWarnings{ +# 109| "check-warnings", +# 110| llvm::cl::desc("Print warnings as well as errors"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "Allocator" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "GlobalParser" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "fuzzer::TPC" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "scudo::RegionPageMap::Buffers" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "Allocator" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "GlobalParser" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "fuzzer::TPC" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "scudo::RegionPageMap::Buffers" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "Allocator" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "GlobalParser" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "fuzzer::TPC" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "scudo::RegionPageMap::Buffers" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "Allocator" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "GlobalParser" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "fuzzer::TPC" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "Allocator" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "GlobalParser" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "fuzzer::TPC" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "scudo::RegionPageMap::Buffers" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "Allocator" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "fuzzer::TPC" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "scudo::RegionPageMap::Buffers" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "Allocator" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "Allocator" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "Allocator" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "Allocator" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "fuzzer::TPC" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "scudo::RegionPageMap::Buffers" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "Allocator" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "fuzzer::TPC" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "scudo::RegionPageMap::Buffers" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "Allocator" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "fuzzer::TPC" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "scudo::RegionPageMap::Buffers" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "Allocator" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "fuzzer::TPC" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "scudo::RegionPageMap::Buffers" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "Allocator" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "fuzzer::TPC" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "scudo::RegionPageMap::Buffers" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "Allocator" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "fuzzer::TPC" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "scudo::RegionPageMap::Buffers" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "Allocator" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "fuzzer::TPC" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "scudo::RegionPageMap::Buffers" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "Allocator" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "fuzzer::TPC" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "scudo::RegionPageMap::Buffers" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "Allocator" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "Allocator" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "fuzzer::TPC" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "scudo::RegionPageMap::Buffers" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "Allocator" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "fuzzer::TPC" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "scudo::RegionPageMap::Buffers" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "Allocator" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "fuzzer::TPC" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "scudo::RegionPageMap::Buffers" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "Allocator" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "fuzzer::TPC" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "scudo::RegionPageMap::Buffers" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "Allocator" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "fuzzer::TPC" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "scudo::RegionPageMap::Buffers" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "Allocator" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "fuzzer::TPC" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "scudo::RegionPageMap::Buffers" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "Allocator" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "fuzzer::TPC" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "scudo::RegionPageMap::Buffers" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "Allocator" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "fuzzer::TPC" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "Allocator" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "fuzzer::TPC" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "Allocator" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "Allocator" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "fuzzer::TPC" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "scudo::RegionPageMap::Buffers" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "Allocator" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "Allocator" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "fuzzer::TPC" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "scudo::RegionPageMap::Buffers" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "Allocator" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "fuzzer::TPC" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "scudo::RegionPageMap::Buffers" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "Allocator" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "Allocator" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "fuzzer::TPC" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "scudo::RegionPageMap::Buffers" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "Allocator" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "fuzzer::TPC" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "scudo::RegionPageMap::Buffers" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "Allocator" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "fuzzer::TPC" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "scudo::RegionPageMap::Buffers" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "Allocator" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "fuzzer::TPC" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "scudo::RegionPageMap::Buffers" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "Allocator" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "Allocator" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "Allocator" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "fuzzer::TPC" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "scudo::RegionPageMap::Buffers" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "Allocator" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "fuzzer::TPC" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "scudo::RegionPageMap::Buffers" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "Allocator" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "fuzzer::TPC" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "scudo::RegionPageMap::Buffers" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "Allocator" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "fuzzer::TPC" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "Allocator" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "fuzzer::TPC" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "scudo::RegionPageMap::Buffers" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "Allocator" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "fuzzer::TPC" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "scudo::RegionPageMap::Buffers" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "Allocator" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "fuzzer::TPC" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "scudo::RegionPageMap::Buffers" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:453:5: var_decl: Declaring variable "TargetDecl" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:469:9: uninit_use_in_call: Using uninitialized value "TargetDecl" when calling "getQualification". +# 467| const Decl *D = InsertionPoints[I]; +# 468| if (Case.VisibleNamespaces.empty()) { +# 469|-> EXPECT_EQ(getQualification(AST.getASTContext(), +# 470| D->getLexicalDeclContext(), D->getBeginLoc(), +# 471| TargetDecl), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:453:5: var_decl: Declaring variable "TargetDecl" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:474:9: uninit_use_in_call: Using uninitialized value "TargetDecl" when calling "getQualification". +# 472| Case.Qualifications[I]); +# 473| } else { +# 474|-> EXPECT_EQ(getQualification(AST.getASTContext(), +# 475| D->getLexicalDeclContext(), TargetDecl, +# 476| Case.VisibleNamespaces), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:94:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_NoCrashOnErrorFile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_NoCrashOnErrorFile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 92| }; +# 93| +# 94|-> TEST_F(BackgroundIndexTest, NoCrashOnErrorFile) { +# 95| MockFS FS; +# 96| FS.Files[testPath("root/A.cc")] = "error file"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:113:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_Config_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_Config_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 111| } +# 112| +# 113|-> TEST_F(BackgroundIndexTest, Config) { +# 114| MockFS FS; +# 115| // Set up two identical TUs, foo and bar. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:165:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_IndexTwoFiles_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_IndexTwoFiles_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 163| } +# 164| +# 165|-> TEST_F(BackgroundIndexTest, IndexTwoFiles) { +# 166| MockFS FS; +# 167| // a.h yields different symbols when included by A.cc vs B.cc. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:236:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_MainFileRefs_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_MainFileRefs_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 234| } +# 235| +# 236|-> TEST_F(BackgroundIndexTest, MainFileRefs) { +# 237| MockFS FS; +# 238| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:265:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_ShardStorageTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_ShardStorageTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 263| } +# 264| +# 265|-> TEST_F(BackgroundIndexTest, ShardStorageTest) { +# 266| MockFS FS; +# 267| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:336:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_DirectIncludesTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_DirectIncludesTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 334| } +# 335| +# 336|-> TEST_F(BackgroundIndexTest, DirectIncludesTest) { +# 337| MockFS FS; +# 338| FS.Files[testPath("root/B.h")] = ""; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:387:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_ShardStorageLoad_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_ShardStorageLoad_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 385| } +# 386| +# 387|-> TEST_F(BackgroundIndexTest, ShardStorageLoad) { +# 388| MockFS FS; +# 389| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:458:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_ShardStorageEmptyFile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_ShardStorageEmptyFile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 456| } +# 457| +# 458|-> TEST_F(BackgroundIndexTest, ShardStorageEmptyFile) { +# 459| MockFS FS; +# 460| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:526:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_NoDotsInAbsPath_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_NoDotsInAbsPath_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 524| } +# 525| +# 526|-> TEST_F(BackgroundIndexTest, NoDotsInAbsPath) { +# 527| MockFS FS; +# 528| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:557:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_UncompilableFiles_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_UncompilableFiles_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 555| } +# 556| +# 557|-> TEST_F(BackgroundIndexTest, UncompilableFiles) { +# 558| MockFS FS; +# 559| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:621:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_CmdLineHash_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_CmdLineHash_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 619| } +# 620| +# 621|-> TEST_F(BackgroundIndexTest, CmdLineHash) { +# 622| MockFS FS; +# 623| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:649:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_Reindex_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_Reindex_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 647| } +# 648| +# 649|-> TEST_F(BackgroundIndexTest, Reindex) { +# 650| MockFS FS; +# 651| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:724:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexRebuilderTest_IndexingTUs_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexRebuilderTest_IndexingTUs_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 722| }; +# 723| +# 724|-> TEST_F(BackgroundIndexRebuilderTest, IndexingTUs) { +# 725| for (unsigned I = 0; I < Rebuilder.TUsBeforeFirstBuild - 1; ++I) +# 726| EXPECT_FALSE(checkRebuild([&] { Rebuilder.indexedTU(); })); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:733:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexRebuilderTest_LoadingShards_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexRebuilderTest_LoadingShards_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 731| } +# 732| +# 733|-> TEST_F(BackgroundIndexRebuilderTest, LoadingShards) { +# 734| Rebuilder.startLoading(); +# 735| Rebuilder.loadedShard(10); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:760:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Priority_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Priority_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 758| } +# 759| +# 760|-> TEST(BackgroundQueueTest, Priority) { +# 761| // Create high and low priority tasks. +# 762| // Once a bunch of high priority tasks have run, the queue is stopped. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:792:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Boost_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Boost_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 790| } +# 791| +# 792|-> TEST(BackgroundQueueTest, Boost) { +# 793| std::string Sequence; +# 794| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:827:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Duplicates_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Duplicates_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 825| } +# 826| +# 827|-> TEST(BackgroundQueueTest, Duplicates) { +# 828| std::string Sequence; +# 829| BackgroundQueue::Task A([&] { Sequence.push_back('A'); }); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:852:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Progress_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Progress_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 850| } +# 851| +# 852|-> TEST(BackgroundQueueTest, Progress) { +# 853| using testing::AnyOf; +# 854| BackgroundQueue::Stats S; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:900:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndex_Profile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndex_Profile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 898| } +# 899| +# 900|-> TEST(BackgroundIndex, Profile) { +# 901| MockFS FS; +# 902| MockCompilationDatabase CDB; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp:294:3: extract: Calling "get" which extracts wrapped state from local "CfgProvider". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp:294:3: escape: The internal representation of local "CfgProvider" escapes into "this->Opts.ConfigProvider", but is destroyed when it exits scope. +# 292| auto CfgProvider = +# 293| config::Provider::fromAncestorRelativeYAMLFiles(".clangd", FS); +# 294|-> Opts.ConfigProvider = CfgProvider.get(); +# 295| +# 296| // Map bar.cpp to a different compilation database which defines FOO->BAR. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:298:3: var_decl: Declaring variable "FS". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:323:3: uninit_use_in_call: Using uninitialized value "FS.Got" when calling "Compare". +# 321| } +# 322| ASSERT_TRUE(Server.blockUntilIdleForTest()); +# 323|-> EXPECT_EQ(FS.Got, 42); +# 324| EXPECT_EQ(Callbacks.Got, 42); +# 325| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:307:3: var_decl: Declaring variable "Callbacks". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:324:3: uninit_use_in_call: Using uninitialized value "Callbacks.Got" when calling "Compare". +# 322| ASSERT_TRUE(Server.blockUntilIdleForTest()); +# 323| EXPECT_EQ(FS.Got, 42); +# 324|-> EXPECT_EQ(Callbacks.Got, 42); +# 325| } +# 326| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/DecisionForestTests.cpp:8:1: constructor_uses_global_object: The constructor of global object "clang::clangd::DecisionForestRuntime_Evaluate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::DecisionForestRuntime_Evaluate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 6| namespace clangd { +# 7| +# 8|-> TEST(DecisionForestRuntime, Evaluate) { +# 9| using Example = ::ns1::ns2::test::Example; +# 10| using Cat = ::ns1::ns2::TestEnum; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp:1150:3: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp:1152:3: uninit_use_in_call: Using uninitialized value "F". Field "F.Edits.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1150| clangd::Fix F; +# 1151| F.Message = "do something"; +# 1152|-> D.Fixes.push_back(F); +# 1153| +# 1154| // Diagnostics should turn into these: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FileIndexTests.cpp:77:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FileIndexTests.cpp:80:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 78| Sym.ID = SymbolID(ID); +# 79| Sym.Name = ID; +# 80|-> return Sym; +# 81| } +# 82| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FindTargetTests.cpp:1281:5: var_decl: Declaring variable "TU". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FindTargetTests.cpp:1289:5: uninit_use: Using uninitialized value "TU". Field "TU.ClangTidyProvider.StorageUnion" is uninitialized. +# 1287| TU.ExtraArgs.push_back("-xobjective-c++"); +# 1288| +# 1289|-> return TU; +# 1290| } +# 1291| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FuzzyMatchTests.cpp:202:5: var_decl: Declaring variable "LastMatch" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FuzzyMatchTests.cpp:221:11: uninit_use: Using uninitialized value "LastMatch". +# 219| Ok = false; +# 220| } else if (LastScore && *LastScore < *Score) { +# 221|-> *OS << "\nRanks '" << Str.Word << "'=" << *Score << " above '" +# 222| << LastMatch->Word << "'=" << *LastScore << "\n" +# 223| << Info.str(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp:517:1: constructor_uses_global_object: The constructor of global object "clang::clangd::DirectoryBasedGlobalCompilationDatabaseCacheTest_Cacheable_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::DirectoryBasedGlobalCompilationDatabaseCacheTest_Cacheable_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 515| } +# 516| +# 517|-> TEST_F(DirectoryBasedGlobalCompilationDatabaseCacheTest, Cacheable) { +# 518| MockFS FS; +# 519| auto Stale = std::chrono::steady_clock::now() - std::chrono::minutes(1); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:344:3: var_decl: Declaring variable "Inc". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:347:3: uninit_use_in_call: Using uninitialized value "Inc.Directive" when calling "Inclusion". +# 345| Inc.Written = "\"bar.h\""; +# 346| Inc.Resolved = ""; +# 347|-> EXPECT_EQ(calculate(testPath("sub/bar.h"), "\"bar.h\"", {Inc}), ""); +# 348| EXPECT_EQ(calculate("\"x.h\"", "\"bar.h\"", {Inc}), ""); +# 349| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:352:3: var_decl: Declaring variable "Inc". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:355:3: uninit_use_in_call: Using uninitialized value "Inc.Directive" when calling "Inclusion". +# 353| Inc.Written = "fake-bar.h"; +# 354| Inc.Resolved = testPath("sub/bar.h"); +# 355|-> EXPECT_EQ(calculate(Inc.Resolved, "", {Inc}), ""); +# 356| // Do not insert preferred. +# 357| EXPECT_EQ(calculate(Inc.Resolved, "\"BAR.h\"", {Inc}), ""); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:528:3: move: "StaticRefs" is moved (indicated by "std::move(StaticRefs)"). +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:531:3: use_after_move: "StaticRefs" is used after it has been already moved. +# 529| std::make_pair(std::move(StaticSymbols), std::move(StaticRefs)); +# 530| llvm::StringSet<> StaticFiles = {"unittest:///foo.cc", "unittest:///bar.cc"}; +# 531|-> MemIndex StaticIndex( +# 532| std::move(StaticData.first), std::move(StaticData.second), RelationSlab(), +# 533| std::move(StaticFiles), IndexContents::References, std::move(StaticData), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:528:3: move: "StaticSymbols" is moved (indicated by "std::move(StaticSymbols)"). +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:531:3: use_after_move: "StaticSymbols" is used after it has been already moved. +# 529| std::make_pair(std::move(StaticSymbols), std::move(StaticRefs)); +# 530| llvm::StringSet<> StaticFiles = {"unittest:///foo.cc", "unittest:///bar.cc"}; +# 531|-> MemIndex StaticIndex( +# 532| std::move(StaticData.first), std::move(StaticData.second), RelationSlab(), +# 533| std::move(StaticFiles), IndexContents::References, std::move(StaticData), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/LSPClient.cpp:156:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/LSPClient.cpp:163:7: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/LSPClient.cpp:163:7: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 161| auto Action = std::move(Actions.front()); +# 162| Actions.pop(); +# 163|-> Lock.unlock(); +# 164| Action(H); +# 165| Lock.lock(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ProjectAwareIndexTests.cpp:35:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ProjectAware_Test_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ProjectAware_Test_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 33| } +# 34| +# 35|-> TEST(ProjectAware, Test) { +# 36| IndexFactory Gen = [](const Config::ExternalIndexSpec &, AsyncTaskRunner *) { +# 37| return createIndex(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ProjectAwareIndexTests.cpp:55:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ProjectAware_CreatedOnce_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ProjectAware_CreatedOnce_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 53| } +# 54| +# 55|-> TEST(ProjectAware, CreatedOnce) { +# 56| unsigned InvocationCount = 0; +# 57| IndexFactory Gen = [&](const Config::ExternalIndexSpec &, AsyncTaskRunner *) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp:98:5: var_decl: Declaring variable "Inputs". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp:103:5: uninit_use: Using uninitialized value "Inputs". Field "Inputs.ClangTidyProvider.callable" is uninitialized. +# 101| Inputs.Contents = std::move(Contents); +# 102| Inputs.Opts = ParseOptions(); +# 103|-> return Inputs; +# 104| } +# 105| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:18:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:28:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 26| Sym.Scope = QName.substr(0, Pos + 2); +# 27| } +# 28|-> return Sym; +# 29| } +# 30| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:42:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:59:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 57| Sym.Origin = SymbolOrigin::Static; +# 58| Sym.Signature = Signature; +# 59|-> return Sym; +# 60| } +# 61| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:96:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:105:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 103| Sym.Flags |= Symbol::IndexedForCodeCompletion; +# 104| Sym.Origin = SymbolOrigin::Static; +# 105|-> return Sym; +# 106| } +# 107| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:37:5: var_decl: Declaring variable "TU". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:39:5: uninit_use: Using uninitialized value "TU". Field "TU.ClangTidyProvider.StorageUnion" is uninitialized. +# 37| TestTU TU; +# 38| TU.Code = std::string(Code); +# 39|-> return TU; +# 40| } +# 41| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:43:5: var_decl: Declaring variable "TU". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:45:5: uninit_use: Using uninitialized value "TU". Field "TU.ClangTidyProvider.StorageUnion" is uninitialized. +# 43| TestTU TU; +# 44| TU.HeaderCode = std::string(HeaderCode); +# 45|-> return TU; +# 46| } +# 47| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ContextTests.cpp:16:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ContextTests_Simple_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ContextTests_Simple_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 14| namespace clangd { +# 15| +# 16|-> TEST(ContextTests, Simple) { +# 17| Key IntParam; +# 18| Key ExtraIntParam; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ContextTests.cpp:26:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ContextTests_MoveOps_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ContextTests_MoveOps_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 24| } +# 25| +# 26|-> TEST(ContextTests, MoveOps) { +# 27| Key> Param; +# 28| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ContextTests.cpp:36:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ContextTests_Builders_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ContextTests_Builders_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 34| } +# 35| +# 36|-> TEST(ContextTests, Builders) { +# 37| Key ParentParam; +# 38| Key ParentAndChildParam; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:20:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ThreadingTest_TaskRunner_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ThreadingTest_TaskRunner_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 18| class ThreadingTest : public ::testing::Test {}; +# 19| +# 20|-> TEST_F(ThreadingTest, TaskRunner) { +# 21| const int TasksCnt = 100; +# 22| // This should be const, but MSVC does not allow to use const vars in lambdas + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:67:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ThreadingTest_Memoize_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ThreadingTest_Memoize_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 65| } +# 66| +# 67|-> TEST_F(ThreadingTest, Memoize) { +# 68| const unsigned NumThreads = 5; +# 69| const unsigned NumKeys = 100; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ThreadingTest_MemoizeDeterministic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ThreadingTest_MemoizeDeterministic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST_F(ThreadingTest, MemoizeDeterministic) { +# 97| Memoize> Cache; +# 98| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:127:1: constructor_uses_global_object: The constructor of global object "clang::clangd::PeriodicThrottlerTest_Minimal_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::PeriodicThrottlerTest_Minimal_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 125| // It's hard to write a real test of this class, std::chrono is awkward to mock. +# 126| // But test some degenerate cases at least. +# 127|-> TEST(PeriodicThrottlerTest, Minimal) { +# 128| PeriodicThrottler Once(std::chrono::hours(24)); +# 129| EXPECT_TRUE(Once()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/FindHeaders.cpp:99:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/FindHeaders.cpp:111:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 109| if (!Results.empty()) +# 110| Results.front().Hint |= Hints::PreferredHeader; +# 111|-> return Results; +# 112| } +# 113| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Record.cpp:392:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Record.cpp:399:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 397| Results.push_back(*FE); +# 398| } +# 399|-> return Results; +# 400| } +# 401| llvm::SmallVector + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Types.cpp:157:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Types.cpp:177:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 175| } +# 176| } +# 177|-> return Result; +# 178| } +# 179| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "Allocator" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "GlobalParser" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "fuzzer::TPC" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "scudo::RegionPageMap::Buffers" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "Allocator" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "Allocator" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "Allocator" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "Allocator" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "fuzzer::TPC" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "scudo::RegionPageMap::Buffers" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "Allocator" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "fuzzer::TPC" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "Allocator" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "fuzzer::TPC" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "scudo::RegionPageMap::Buffers" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "Allocator" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "fuzzer::TPC" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "scudo::RegionPageMap::Buffers" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:265:5: constructor_uses_global_object: The constructor of global object "ListFileNames[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ListFileNames[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 263| // Option to specify a file name for a list of header files to check. +# 264| static cl::list +# 265|-> ListFileNames(cl::Positional, cl::value_desc("list"), +# 266| cl::desc(""), +# 267| cl::CommaSeparated); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:271:5: constructor_uses_global_object: The constructor of global object "CC1Arguments[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CC1Arguments[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 269| // Collect all other arguments, which will be passed to the front end. +# 270| static cl::list +# 271|-> CC1Arguments(cl::ConsumeAfter, +# 272| cl::desc("...")); +# 273| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:275:29: constructor_uses_global_object: The constructor of global object "HeaderPrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HeaderPrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 273| +# 274| // Option to specify a prefix to be prepended to the header names. +# 275|-> static cl::opt HeaderPrefix( +# 276| "prefix", cl::init(""), +# 277| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:284:29: constructor_uses_global_object: The constructor of global object "ModuleMapPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ModuleMapPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 282| // Option for assistant mode, telling modularize to output a module map +# 283| // based on the headers list, and where to put it. +# 284|-> static cl::opt ModuleMapPath( +# 285| "module-map-path", cl::init(""), +# 286| cl::desc("Turn on module map output and specify output path or file name." + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:292:29: constructor_uses_global_object: The constructor of global object "ProblemFilesList[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProblemFilesList[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 290| // Option to specify list of problem files for assistant. +# 291| // This will cause assistant to exclude these files. +# 292|-> static cl::opt ProblemFilesList( +# 293| "problem-files-list", cl::init(""), +# 294| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:300:1: constructor_uses_global_object: The constructor of global object "RootModule[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RootModule[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 298| // Option for assistant mode, telling modularize the name of the root module. +# 299| static cl::opt +# 300|-> RootModule("root-module", cl::init(""), +# 301| cl::desc("Specify the name of the root module.")); +# 302| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:308:1: constructor_uses_global_object: The constructor of global object "BlockCheckHeaderListOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockCheckHeaderListOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 306| // included inside blocks. +# 307| static cl::opt +# 308|-> BlockCheckHeaderListOnly("block-check-header-list-only", cl::init(false), +# 309| cl::desc("Only warn if #include directives are inside extern or namespace" +# 310| " blocks if the included header is in the header list.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:314:5: constructor_uses_global_object: The constructor of global object "IncludePaths[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IncludePaths[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 312| // Option for include paths for coverage check. +# 313| static cl::list +# 314|-> IncludePaths("I", cl::desc("Include path for coverage check."), +# 315| cl::value_desc("path")); +# 316| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:318:22: constructor_uses_global_object: The constructor of global object "NoCoverageCheck" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoCoverageCheck" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 316| +# 317| // Option for disabling the coverage check. +# 318|-> static cl::opt NoCoverageCheck("no-coverage-check", +# 319| cl::desc("Don't do the coverage check.")); +# 320| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:323:1: constructor_uses_global_object: The constructor of global object "CoverageCheckOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CoverageCheckOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 321| // Option for just doing the coverage check. +# 322| static cl::opt +# 323|-> CoverageCheckOnly("coverage-check-only", cl::init(false), +# 324| cl::desc("Only do the coverage check.")); +# 325| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:328:1: constructor_uses_global_object: The constructor of global object "DisplayFileLists" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisplayFileLists" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 326| // Option for displaying lists of good, bad, and mixed files. +# 327| static cl::opt +# 328|-> DisplayFileLists("display-file-lists", cl::init(false), +# 329| cl::desc("Display lists of good files (no compile errors), problem files," +# 330| " and a combined list with problem files preceded by a '#'.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "Allocator" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "GlobalParser" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "fuzzer::TPC" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "Allocator" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "Allocator" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:37:18: constructor_uses_global_object: The constructor of global object "::Grammar[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Grammar[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| }; +# 36| +# 37|-> opt Grammar("grammar", desc("Parse a BNF grammar file."), +# 38| Required); +# 39| opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "Allocator" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "fuzzer::TPC" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:46:18: constructor_uses_global_object: The constructor of global object "::OutputFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OutputFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| "Print the BNF grammar content as a string"))); +# 45| +# 46|-> opt OutputFilename("o", init("-"), desc("Output"), +# 47| value_desc("file")); +# 48| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/lib/Token.cpp:98:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/clang-tools-extra/pseudo/lib/Token.cpp:115:3: uninit_use: Using uninitialized value "Opts". Field "Opts.GPUDefaultStream" is uninitialized. +# 113| Opts.WChar = true; +# 114| +# 115|-> return Opts; +# 116| } +# 117| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/lib/cli/CLI.cpp:16:35: constructor_uses_global_object: The constructor of global object "Grammar[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Grammar[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 14| #include "llvm/Support/MemoryBuffer.h" +# 15| +# 16|-> static llvm::cl::opt Grammar( +# 17| "grammar", +# 18| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:36:18: constructor_uses_global_object: The constructor of global object "PrintGrammar" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintGrammar" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| using llvm::cl::opt; +# 35| +# 36|-> static opt PrintGrammar("print-grammar", desc("Print the grammar")); +# 37| static opt PrintGraph("print-graph", +# 38| desc("Print the LR graph for the grammar")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:37:18: constructor_uses_global_object: The constructor of global object "PrintGraph" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintGraph" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static opt PrintGrammar("print-grammar", desc("Print the grammar")); +# 37|-> static opt PrintGraph("print-graph", +# 38| desc("Print the LR graph for the grammar")); +# 39| static opt PrintTable("print-table", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:39:18: constructor_uses_global_object: The constructor of global object "PrintTable" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintTable" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| static opt PrintGraph("print-graph", +# 38| desc("Print the LR graph for the grammar")); +# 39|-> static opt PrintTable("print-table", +# 40| desc("Print the LR table for the grammar")); +# 41| static opt Source("source", desc("Source file")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:41:25: constructor_uses_global_object: The constructor of global object "Source[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Source[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| static opt PrintTable("print-table", +# 40| desc("Print the LR table for the grammar")); +# 41|-> static opt Source("source", desc("Source file")); +# 42| static opt PrintSource("print-source", desc("Print token stream")); +# 43| static opt PrintTokens("print-tokens", desc("Print detailed token info")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:42:18: constructor_uses_global_object: The constructor of global object "PrintSource" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintSource" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| desc("Print the LR table for the grammar")); +# 41| static opt Source("source", desc("Source file")); +# 42|-> static opt PrintSource("print-source", desc("Print token stream")); +# 43| static opt PrintTokens("print-tokens", desc("Print detailed token info")); +# 44| static opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:43:18: constructor_uses_global_object: The constructor of global object "PrintTokens" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintTokens" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| static opt Source("source", desc("Source file")); +# 42| static opt PrintSource("print-source", desc("Print token stream")); +# 43|-> static opt PrintTokens("print-tokens", desc("Print detailed token info")); +# 44| static opt +# 45| PrintDirectiveTree("print-directive-tree", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:45:5: constructor_uses_global_object: The constructor of global object "PrintDirectiveTree" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintDirectiveTree" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| static opt PrintTokens("print-tokens", desc("Print detailed token info")); +# 44| static opt +# 45|-> PrintDirectiveTree("print-directive-tree", +# 46| desc("Print directive structure of source code")); +# 47| static opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:48:5: constructor_uses_global_object: The constructor of global object "StripDirectives" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StripDirectives" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| desc("Print directive structure of source code")); +# 47| static opt +# 48|-> StripDirectives("strip-directives", +# 49| desc("Strip directives and select conditional sections")); +# 50| static opt Disambiguate("disambiguate", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:50:18: constructor_uses_global_object: The constructor of global object "Disambiguate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Disambiguate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| StripDirectives("strip-directives", +# 49| desc("Strip directives and select conditional sections")); +# 50|-> static opt Disambiguate("disambiguate", +# 51| desc("Choose best tree from parse forest")); +# 52| static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:52:18: constructor_uses_global_object: The constructor of global object "PrintStatistics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintStatistics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| static opt Disambiguate("disambiguate", +# 51| desc("Choose best tree from parse forest")); +# 52|-> static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); +# 53| static opt PrintForest("print-forest", desc("Print parse forest")); +# 54| static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:53:18: constructor_uses_global_object: The constructor of global object "PrintForest" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintForest" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| desc("Choose best tree from parse forest")); +# 52| static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); +# 53|-> static opt PrintForest("print-forest", desc("Print parse forest")); +# 54| static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), +# 55| init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:54:18: constructor_uses_global_object: The constructor of global object "ForestAbbrev" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForestAbbrev" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); +# 53| static opt PrintForest("print-forest", desc("Print parse forest")); +# 54|-> static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), +# 55| init(true)); +# 56| static opt HTMLForest("html-forest", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:56:25: constructor_uses_global_object: The constructor of global object "HTMLForest[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HTMLForest[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), +# 55| init(true)); +# 56|-> static opt HTMLForest("html-forest", +# 57| desc("output file for HTML forest")); +# 58| static opt StartSymbol("start-symbol", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:58:25: constructor_uses_global_object: The constructor of global object "StartSymbol[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StartSymbol[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| static opt HTMLForest("html-forest", +# 57| desc("output file for HTML forest")); +# 58|-> static opt StartSymbol("start-symbol", +# 59| desc("Specify the start symbol to parse"), +# 60| init("translation-unit")); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:45:8: address_of: Taking address with "*__begin2" yields a singleton pointer. +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:45:8: assign: Assigning: "Tok" = "*__begin2". +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:50:7: callee_ptr_arith: Passing "Tok" to function "pair" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 48| else if (Tok.Pair < 0) { +# 49| ASSERT_FALSE(Stack.empty()) << Tok; +# 50|-> ASSERT_EQ(Stack.back(), Tok.pair()) +# 51| << *Stack.back() << " != " << *Tok.pair() << " = pair of " << Tok; +# 52| Stack.pop_back(); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:60:8: address_of: Taking address with "*__begin2" yields a singleton pointer. +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:60:8: assign: Assigning: "Tok" = "*__begin2". +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:83:5: callee_ptr_arith: Passing "Tok" to function "pair" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 81| }(); +# 82| EXPECT_EQ(Tok.Pair > 0, Want.first) << Tok; +# 83|-> EXPECT_EQ(Tok.pair()->Kind, Want.second) << Tok; +# 84| } +# 85| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:110:1: constructor_uses_global_object: The constructor of global object "clang::pseudo::Bracket_SimplePair_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pseudo::Bracket_SimplePair_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 108| } +# 109| +# 110|-> TEST(Bracket, SimplePair) { +# 111| verifyBrackets("^{ ^[ ^( ^) ^( ^) ^] ^}"); +# 112| verifyBrackets(") ^{ ^[ ^] ^} ("); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:87:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 85| +# 86| // Set up the command line options +# 87|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88| static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "Allocator" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "GlobalParser" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "fuzzer::TPC" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-apply-replacements/ApplyReplacementsTest.cpp:34:1: constructor_uses_global_object: The constructor of global object "clang::tooling::ApplyReplacementsTest_mergeDiagnosticsWithNoFixes_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::ApplyReplacementsTest_mergeDiagnosticsWithNoFixes_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 32| // Test to ensure diagnostics with no fixes, will be merged correctly +# 33| // before applying. +# 34|-> TEST(ApplyReplacementsTest, mergeDiagnosticsWithNoFixes) { +# 35| IntrusiveRefCntPtr DiagOpts(new DiagnosticOptions()); +# 36| DiagnosticsEngine Diagnostics( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:57:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitNamespaceInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitNamespaceInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 55| } +# 56| +# 57|-> TEST(BitcodeTest, emitNamespaceInfoBitcode) { +# 58| NamespaceInfo I; +# 59| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:75:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitRecordInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitRecordInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 73| } +# 74| +# 75|-> TEST(BitcodeTest, emitRecordInfoBitcode) { +# 76| RecordInfo I; +# 77| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:117:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitFunctionInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitFunctionInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 115| } +# 116| +# 117|-> TEST(BitcodeTest, emitFunctionInfoBitcode) { +# 118| FunctionInfo I; +# 119| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:137:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitMethodInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitMethodInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 135| } +# 136| +# 137|-> TEST(BitcodeTest, emitMethodInfoBitcode) { +# 138| FunctionInfo I; +# 139| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:159:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitEnumInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitEnumInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 157| } +# 158| +# 159|-> TEST(BitcodeTest, emitEnumInfoBitcode) { +# 160| EnumInfo I; +# 161| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:177:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitTypedefInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitTypedefInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 175| } +# 176| +# 177|-> TEST(BitcodeTest, emitTypedefInfoBitcode) { +# 178| TypedefInfo I; +# 179| I.Name = "MyInt"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:215:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInfoWithCommentBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInfoWithCommentBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 213| } +# 214| +# 215|-> TEST(SerializeTest, emitInfoWithCommentBitcode) { +# 216| FunctionInfo F; +# 217| F.Name = "F"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/GeneratorTest.cpp:18:1: constructor_uses_global_object: The constructor of global object "clang::doc::GeneratorTest_emitIndex_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::GeneratorTest_emitIndex_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 16| namespace doc { +# 17| +# 18|-> TEST(GeneratorTest, emitIndex) { +# 19| Index Idx; +# 20| auto InfoA = std::make_unique(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/GeneratorTest.cpp:73:1: constructor_uses_global_object: The constructor of global object "clang::doc::GeneratorTest_sortIndex_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::GeneratorTest_sortIndex_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 71| } +# 72| +# 73|-> TEST(GeneratorTest, sortIndex) { +# 74| Index Idx; +# 75| Idx.Children.emplace_back("b"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:32:3: var_decl: Declaring variable "CDCtx". +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:38:3: uninit_use: Using uninitialized value "CDCtx". Field "CDCtx.Idx.Path.InlineElts" is uninitialized. +# 36| "../share/clang/clang-doc-default-stylesheet.css"); +# 37| CDCtx.JsScripts.emplace_back("index.js"); +# 38|-> return CDCtx; +# 39| } +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:41:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitNamespaceHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitNamespaceHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 39| } +# 40| +# 41|-> TEST(HTMLGeneratorTest, emitNamespaceHTML) { +# 42| NamespaceInfo I; +# 43| I.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:145:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitRecordHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitRecordHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 143| } +# 144| +# 145|-> TEST(HTMLGeneratorTest, emitRecordHTML) { +# 146| RecordInfo I; +# 147| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:264:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitFunctionHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitFunctionHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 262| } +# 263| +# 264|-> TEST(HTMLGeneratorTest, emitFunctionHTML) { +# 265| FunctionInfo I; +# 266| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:318:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitEnumHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitEnumHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 316| } +# 317| +# 318|-> TEST(HTMLGeneratorTest, emitEnumHTML) { +# 319| EnumInfo I; +# 320| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:367:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitCommentHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitCommentHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 365| } +# 366| +# 367|-> TEST(HTMLGeneratorTest, emitCommentHTML) { +# 368| FunctionInfo I; +# 369| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:24:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitNamespaceMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitNamespaceMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 22| } +# 23| +# 24|-> TEST(MDGeneratorTest, emitNamespaceMD) { +# 25| NamespaceInfo I; +# 26| I.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:80:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitRecordMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitRecordMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 78| } +# 79| +# 80|-> TEST(MDGeneratorTest, emitRecordMD) { +# 81| RecordInfo I; +# 82| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:147:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitFunctionMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitFunctionMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 145| } +# 146| +# 147|-> TEST(MDGeneratorTest, emitFunctionMD) { +# 148| FunctionInfo I; +# 149| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:179:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitEnumMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitEnumMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 177| } +# 178| +# 179|-> TEST(MDGeneratorTest, emitEnumMD) { +# 180| EnumInfo I; +# 181| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:210:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitCommentMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitCommentMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 208| } +# 209| +# 210|-> TEST(MDGeneratorTest, emitCommentMD) { +# 211| FunctionInfo I; +# 212| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:16:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeNamespaceInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeNamespaceInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 14| namespace doc { +# 15| +# 16|-> TEST(MergeTest, mergeNamespaceInfos) { +# 17| NamespaceInfo One; +# 18| One.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:78:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeRecordInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeRecordInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 76| } +# 77| +# 78|-> TEST(MergeTest, mergeRecordInfos) { +# 79| RecordInfo One; +# 80| One.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:156:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeFunctionInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeFunctionInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 154| } +# 155| +# 156|-> TEST(MergeTest, mergeFunctionInfos) { +# 157| FunctionInfo One; +# 158| One.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:231:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeEnumInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeEnumInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 229| } +# 230| +# 231|-> TEST(MergeTest, mergeEnumInfos) { +# 232| EnumInfo One; +# 233| One.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:108:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitNamespaceInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitNamespaceInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 106| +# 107| // Test serialization of namespace declarations. +# 108|-> TEST(SerializeTest, emitNamespaceInfo) { +# 109| EmittedInfoList Infos; +# 110| ExtractInfosFromCode("namespace A { namespace B { void f() {} } }", 5, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:135:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitAnonymousNamespaceInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitAnonymousNamespaceInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 133| } +# 134| +# 135|-> TEST(SerializeTest, emitAnonymousNamespaceInfo) { +# 136| EmittedInfoList Infos; +# 137| ExtractInfosFromCode("namespace { }", 2, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:146:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 144| +# 145| // Test serialization of record declarations. +# 146|-> TEST(SerializeTest, emitRecordInfo) { +# 147| EmittedInfoList Infos; +# 148| ExtractInfosFromCode(R"raw(class E { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:263:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitEnumInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitEnumInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 261| +# 262| // Test serialization of enum declarations. +# 263|-> TEST(SerializeTest, emitEnumInfo) { +# 264| EmittedInfoList Infos; +# 265| ExtractInfosFromCode("enum E { X, Y }; enum class G { A, B };", 2, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:290:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitUndefinedRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitUndefinedRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 288| } +# 289| +# 290|-> TEST(SerializeTest, emitUndefinedRecordInfo) { +# 291| EmittedInfoList Infos; +# 292| ExtractInfosFromCode("class E;", 2, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:303:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitRecordMemberInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitRecordMemberInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 301| } +# 302| +# 303|-> TEST(SerializeTest, emitRecordMemberInfo) { +# 304| EmittedInfoList Infos; +# 305| ExtractInfosFromCode("struct E { int I; };", 2, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:318:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInternalRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInternalRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 316| } +# 317| +# 318|-> TEST(SerializeTest, emitInternalRecordInfo) { +# 319| EmittedInfoList Infos; +# 320| ExtractInfosFromCode("class E { class G {}; };", 4, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:342:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitPublicAnonymousNamespaceInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitPublicAnonymousNamespaceInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 340| } +# 341| +# 342|-> TEST(SerializeTest, emitPublicAnonymousNamespaceInfo) { +# 343| EmittedInfoList Infos; +# 344| ExtractInfosFromCode("namespace { class A; }", 0, /*Public=*/true, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:347:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitPublicFunctionInternalInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitPublicFunctionInternalInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 345| } +# 346| +# 347|-> TEST(SerializeTest, emitPublicFunctionInternalInfo) { +# 348| EmittedInfoList Infos; +# 349| ExtractInfosFromCode("int F() { class G {}; return 0; };", 1, /*Public=*/true, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:363:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInlinedFunctionInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInlinedFunctionInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 361| } +# 362| +# 363|-> TEST(SerializeTest, emitInlinedFunctionInfo) { +# 364| EmittedInfoList Infos; +# 365| ExtractInfosFromCode("inline void F(int I) { };", 1, /*Public=*/true, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:379:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInheritedRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInheritedRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 377| } +# 378| +# 379|-> TEST(SerializeTest, emitInheritedRecordInfo) { +# 380| EmittedInfoList Infos; +# 381| ExtractInfosFromCode(R"raw(class F { protected: void set(int N); }; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:521:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitModulePublicLFunctions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitModulePublicLFunctions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 519| } +# 520| +# 521|-> TEST(SerializeTest, emitModulePublicLFunctions) { +# 522| EmittedInfoList Infos; +# 523| std::vector Args; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:559:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitChildRecords_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitChildRecords_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 557| +# 558| // Test serialization of child records in namespaces and other records +# 559|-> TEST(SerializeTest, emitChildRecords) { +# 560| EmittedInfoList Infos; +# 561| ExtractInfosFromCode("class A { class B {}; }; namespace { class C {}; } ", 8, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:586:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitChildNamespaces_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitChildNamespaces_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 584| +# 585| // Test serialization of child namespaces +# 586|-> TEST(SerializeTest, emitChildNamespaces) { +# 587| EmittedInfoList Infos; +# 588| ExtractInfosFromCode("namespace A { namespace B { } }", 4, /*Public=*/false, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:604:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTests_emitTypedefs_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTests_emitTypedefs_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 602| } +# 603| +# 604|-> TEST(SerializeTests, emitTypedefs) { +# 605| EmittedInfoList Infos; +# 606| ExtractInfosFromCode("typedef int MyInt; using MyDouble = double;", 2, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:631:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTests_emitFunctionTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTests_emitFunctionTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 629| } +# 630| +# 631|-> TEST(SerializeTests, emitFunctionTemplate) { +# 632| EmittedInfoList Infos; +# 633| // A template and a specialization. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:671:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTests_emitClassTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTests_emitClassTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 669| } +# 670| +# 671|-> TEST(SerializeTests, emitClassTemplate) { +# 672| EmittedInfoList Infos; +# 673| // This will generate 2x the number of infos: each Record will be followed by + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:25:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitNamespaceYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitNamespaceYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 23| } +# 24| +# 25|-> TEST(YAMLGeneratorTest, emitNamespaceYAML) { +# 26| NamespaceInfo I; +# 27| I.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:80:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitRecordYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitRecordYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 78| } +# 79| +# 80|-> TEST(YAMLGeneratorTest, emitRecordYAML) { +# 81| RecordInfo I; +# 82| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:205:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitFunctionYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitFunctionYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 203| } +# 204| +# 205|-> TEST(YAMLGeneratorTest, emitFunctionYAML) { +# 206| FunctionInfo I; +# 207| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:270:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitSimpleEnumYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitSimpleEnumYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 268| // enum e { X }; +# 269| // } +# 270|-> TEST(YAMLGeneratorTest, emitSimpleEnumYAML) { +# 271| EnumInfo I; +# 272| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:311:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_enumTypedScopedEnumYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_enumTypedScopedEnumYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 309| // Tests the equivalent of: +# 310| // enum class e : short { X = FOO_BAR + 2 }; +# 311|-> TEST(YAMLGeneratorTest, enumTypedScopedEnumYAML) { +# 312| EnumInfo I; +# 313| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:343:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_enumTypedefYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_enumTypedefYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 341| } +# 342| +# 343|-> TEST(YAMLGeneratorTest, enumTypedefYAML) { +# 344| TypedefInfo I; +# 345| I.Name = "MyUsing"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:368:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitCommentYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitCommentYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 366| } +# 367| +# 368|-> TEST(YAMLGeneratorTest, emitCommentYAML) { +# 369| FunctionInfo I; +# 370| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:141:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_VariableSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_VariableSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 139| }; +# 140| +# 141|-> TEST_F(FindAllSymbolsTest, VariableSymbols) { +# 142| static const char Header[] = R"( +# 143| extern int xargc; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:171:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_ExternCSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_ExternCSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 169| } +# 170| +# 171|-> TEST_F(FindAllSymbolsTest, ExternCSymbols) { +# 172| static const char Header[] = R"( +# 173| extern "C" { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:198:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 196| } +# 197| +# 198|-> TEST_F(FindAllSymbolsTest, CXXRecordSymbols) { +# 199| static const char Header[] = R"( +# 200| struct Glob {}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:235:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbolsTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbolsTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 233| } +# 234| +# 235|-> TEST_F(FindAllSymbolsTest, CXXRecordSymbolsTemplate) { +# 236| static const char Header[] = R"( +# 237| template + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:262:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_DontIgnoreTemplatePartialSpecialization_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_DontIgnoreTemplatePartialSpecialization_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 260| } +# 261| +# 262|-> TEST_F(FindAllSymbolsTest, DontIgnoreTemplatePartialSpecialization) { +# 263| static const char Code[] = R"( +# 264| template class Class; // undefined + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:280:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_FunctionSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_FunctionSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 278| } +# 279| +# 280|-> TEST_F(FindAllSymbolsTest, FunctionSymbols) { +# 281| static const char Header[] = R"( +# 282| namespace na { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:327:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_NamespaceTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_NamespaceTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 325| } +# 326| +# 327|-> TEST_F(FindAllSymbolsTest, NamespaceTest) { +# 328| static const char Header[] = R"( +# 329| int X1; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:373:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_DecayedTypeTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_DecayedTypeTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 371| } +# 372| +# 373|-> TEST_F(FindAllSymbolsTest, DecayedTypeTest) { +# 374| static const char Header[] = "void DecayedFunc(int x[], int y[10]) {}"; +# 375| static const char Main[] = R"(int main() { DecayedFunc(nullptr, nullptr); })"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:383:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_CTypedefTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_CTypedefTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 381| } +# 382| +# 383|-> TEST_F(FindAllSymbolsTest, CTypedefTest) { +# 384| static const char Header[] = R"( +# 385| typedef unsigned size_t_; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:412:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_EnumTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_EnumTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 410| } +# 411| +# 412|-> TEST_F(FindAllSymbolsTest, EnumTest) { +# 413| static const char Header[] = R"( +# 414| enum Glob_E { G1, G2 }; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:485:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_IWYUPrivatePragmaTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_IWYUPrivatePragmaTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 483| } +# 484| +# 485|-> TEST_F(FindAllSymbolsTest, IWYUPrivatePragmaTest) { +# 486| static const char Header[] = R"( +# 487| // IWYU pragma: private, include "bar.h" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:502:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_MacroTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_MacroTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 500| } +# 501| +# 502|-> TEST_F(FindAllSymbolsTest, MacroTest) { +# 503| static const char Header[] = R"( +# 504| #define X + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:528:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_MacroTestWithIWYU_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_MacroTestWithIWYU_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 526| } +# 527| +# 528|-> TEST_F(FindAllSymbolsTest, MacroTestWithIWYU) { +# 529| static const char Header[] = R"( +# 530| // IWYU pragma: private, include "bar.h" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:555:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_NoFriendTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_NoFriendTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 553| } +# 554| +# 555|-> TEST_F(FindAllSymbolsTest, NoFriendTest) { +# 556| static const char Header[] = R"( +# 557| class WorstFriend { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryEngineTest.cpp:50:1: constructor_uses_global_object: The constructor of global object "QueryEngineTest_Basic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryEngineTest_Basic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 48| }; +# 49| +# 50|-> TEST_F(QueryEngineTest, Basic) { +# 51| DynTypedMatcher FnMatcher = functionDecl(); +# 52| DynTypedMatcher FooMatcher = functionDecl(hasName("foo1")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryEngineTest.cpp:138:1: constructor_uses_global_object: The constructor of global object "QueryEngineTest_LetAndMatch_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryEngineTest_LetAndMatch_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 136| } +# 137| +# 138|-> TEST_F(QueryEngineTest, LetAndMatch) { +# 139| EXPECT_TRUE(QueryParser::parse("let x \"foo1\"", S)->run(OS, S)); +# 140| EXPECT_EQ("", OS.str()); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:27:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_NoOp_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_NoOp_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 25| }; +# 26| +# 27|-> TEST_F(QueryParserTest, NoOp) { +# 28| QueryRef Q = parse(""); +# 29| EXPECT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:35:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Invalid_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Invalid_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 33| } +# 34| +# 35|-> TEST_F(QueryParserTest, Invalid) { +# 36| QueryRef Q = parse("foo"); +# 37| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:41:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Help_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Help_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 39| } +# 40| +# 41|-> TEST_F(QueryParserTest, Help) { +# 42| QueryRef Q = parse("help"); +# 43| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:50:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Quit_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Quit_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 48| } +# 49| +# 50|-> TEST_F(QueryParserTest, Quit) { +# 51| QueryRef Q = parse("quit"); +# 52| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:62:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Set_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Set_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 60| } +# 61| +# 62|-> TEST_F(QueryParserTest, Set) { +# 63| +# 64| bool HasIntrospection = tooling::NodeIntrospection::hasIntrospectionSupport(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:99:3: overrun-local: Overrunning array of 8 bytes at byte offset 15 by dereferencing pointer "llvm::cast(Q)->Var". +# 97| Q = parse("set output dump"); +# 98| ASSERT_TRUE(isa(Q)); +# 99|-> EXPECT_EQ(&QuerySession::DetailedASTOutput, cast(Q)->Var); +# 100| +# 101| Q = parse("set output detailed-ast"); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:103:3: overrun-local: Overrunning array of 8 bytes at byte offset 15 by dereferencing pointer "llvm::cast(Q)->Var". +# 101| Q = parse("set output detailed-ast"); +# 102| ASSERT_TRUE(isa(Q)); +# 103|-> EXPECT_EQ(&QuerySession::DetailedASTOutput, cast(Q)->Var); +# 104| +# 105| Q = parse("enable output detailed-ast"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:138:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Match_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Match_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 136| } +# 137| +# 138|-> TEST_F(QueryParserTest, Match) { +# 139| QueryRef Q = parse("match decl()"); +# 140| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:148:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_LetUnlet_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_LetUnlet_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 146| } +# 147| +# 148|-> TEST_F(QueryParserTest, LetUnlet) { +# 149| QueryRef Q = parse("let foo decl()"); +# 150| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:186:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Comment_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Comment_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 184| } +# 185| +# 186|-> TEST_F(QueryParserTest, Comment) { +# 187| QueryRef Q = parse("# let foo decl()"); +# 188| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:197:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Complete_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Complete_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 195| } +# 196| +# 197|-> TEST_F(QueryParserTest, Complete) { +# 198| std::vector Comps = +# 199| QueryParser::complete("", 0, QS); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:276:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Multiline_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Multiline_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 274| } +# 275| +# 276|-> TEST_F(QueryParserTest, Multiline) { +# 277| +# 278| // Single string with multiple commands + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:54:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_Builtin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_Builtin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 52| // ---------------------------------------------------------------------------- +# 53| +# 54|-> TEST(Values, Builtin) { +# 55| StringRef Snippet = "int target = 0;"; +# 56| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:65:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_TypedefBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_TypedefBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 63| runCheckOnCode(Snippet)); +# 64| } +# 65|-> TEST(Values, TypedefBuiltin) { +# 66| StringRef T = "typedef int MyInt;"; +# 67| StringRef S = "MyInt target = 0;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:80:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_TypedefBuiltinPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_TypedefBuiltinPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 78| runCheckOnCode(Cat(S))); +# 79| } +# 80|-> TEST(Values, TypedefBuiltinPointer) { +# 81| StringRef T = "typedef int* MyInt;"; +# 82| StringRef S = "MyInt target = nullptr;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:95:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_UsingBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_UsingBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 93| runCheckOnCode(Cat(S))); +# 94| } +# 95|-> TEST(Values, UsingBuiltin) { +# 96| StringRef T = "using MyInt = int;"; +# 97| StringRef S = "MyInt target = 0;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:110:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_UsingBuiltinPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_UsingBuiltinPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 108| runCheckOnCode(Cat(S))); +# 109| } +# 110|-> TEST(Values, UsingBuiltinPointer) { +# 111| StringRef T = "using MyInt = int*;"; +# 112| StringRef S = "MyInt target = nullptr;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:125:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_AutoValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_AutoValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 123| runCheckOnCode(Cat(S))); +# 124| } +# 125|-> TEST(Values, AutoValue) { +# 126| StringRef T = "int f() { return 42; }\n"; +# 127| StringRef S = "auto target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:140:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_AutoPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_AutoPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 138| runCheckOnCode(Cat(S))); +# 139| } +# 140|-> TEST(Values, AutoPointer) { +# 141| StringRef T = "int* f() { return nullptr; }\n"; +# 142| StringRef S = "auto target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:155:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_AutoReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_AutoReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 153| runCheckOnCode(Cat(S))); +# 154| } +# 155|-> TEST(Values, AutoReference) { +# 156| StringRef T = "static int global = 42; int& f() { return global; }\n"; +# 157| StringRef S = "auto target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:170:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_DeclTypeValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_DeclTypeValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 168| runCheckOnCode(Cat(S))); +# 169| } +# 170|-> TEST(Values, DeclTypeValue) { +# 171| StringRef T = "int f() { return 42; }\n"; +# 172| StringRef S = "decltype(f()) target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:185:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_DeclTypePointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_DeclTypePointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 183| runCheckOnCode(Cat(S))); +# 184| } +# 185|-> TEST(Values, DeclTypePointer) { +# 186| // The pointer itself will be changed to 'const'. There is no +# 187| // way to make the pointee 'const' with this syntax. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:202:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_DeclTypeReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_DeclTypeReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 200| runCheckOnCode(Cat(S))); +# 201| } +# 202|-> TEST(Values, DeclTypeReference) { +# 203| // Same as pointer, but the reference itself will be marked 'const'. +# 204| // This has no effect and will result in a warning afterwards. The + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:220:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_Parens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_Parens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 218| runCheckOnCode(Cat(S))); +# 219| } +# 220|-> TEST(Values, Parens) { +# 221| StringRef Snippet = "int ((target)) = 0;"; +# 222| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:238:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_Builtin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_Builtin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 236| // ---------------------------------------------------------------------------- +# 237| +# 238|-> TEST(Arrays, Builtin) { +# 239| StringRef Snippet = "int target[][1] = {{1}, {2}, {3}};"; +# 240| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:251:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_BuiltinParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_BuiltinParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 249| runCheckOnCode(Snippet)); +# 250| } +# 251|-> TEST(Arrays, BuiltinParens) { +# 252| StringRef Snippet = "int ((target))[][1] = {{1}, {2}, {3}};"; +# 253| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:264:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_Pointers_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_Pointers_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 262| runCheckOnCode(Snippet)); +# 263| } +# 264|-> TEST(Arrays, Pointers) { +# 265| StringRef Snippet = "int x; int* target[] = {&x, &x, &x};"; +# 266| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:277:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_PointerPointers_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_PointerPointers_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 275| runCheckOnCode(Snippet)); +# 276| } +# 277|-> TEST(Arrays, PointerPointers) { +# 278| StringRef Snippet = "int* x = nullptr; int** target[] = {&x, &x, &x};"; +# 279| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:290:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_PointersParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_PointersParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 288| runCheckOnCode(Snippet)); +# 289| } +# 290|-> TEST(Arrays, PointersParens) { +# 291| StringRef Snippet = "int x; int* (target)[] = {&x, &x, &x};"; +# 292| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:308:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_LValueBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_LValueBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 306| // ---------------------------------------------------------------------------- +# 307| +# 308|-> TEST(Reference, LValueBuiltin) { +# 309| StringRef Snippet = "int x = 42; int& target = x;"; +# 310| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:321:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_RValueBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_RValueBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 319| runCheckOnCode(Snippet)); +# 320| } +# 321|-> TEST(Reference, RValueBuiltin) { +# 322| StringRef Snippet = "int&& target = 42;"; +# 323| EXPECT_EQ("const int&& target = 42;", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:333:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_LValueToPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_LValueToPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 331| runCheckOnCode(Snippet)); +# 332| } +# 333|-> TEST(Reference, LValueToPointer) { +# 334| StringRef Snippet = "int* p; int *& target = p;"; +# 335| EXPECT_EQ("int* p; int * const& target = p;", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:345:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_LValueParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_LValueParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 343| runCheckOnCode(Snippet)); +# 344| } +# 345|-> TEST(Reference, LValueParens) { +# 346| StringRef Snippet = "int x = 42; int ((& target)) = x;"; +# 347| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:358:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_ToArray_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_ToArray_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 356| runCheckOnCode(Snippet)); +# 357| } +# 358|-> TEST(Reference, ToArray) { +# 359| StringRef ArraySnippet = "int a[4] = {1, 2, 3, 4};"; +# 360| StringRef Snippet = "int (&target)[4] = a;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:373:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_Auto_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_Auto_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 371| runCheckOnCode(Cat(Snippet))); +# 372| } +# 373|-> TEST(Reference, Auto) { +# 374| StringRef T = "static int global = 42; int& f() { return global; }\n"; +# 375| StringRef S = "auto& target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:393:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_SingleBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_SingleBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 391| // ---------------------------------------------------------------------------- +# 392| +# 393|-> TEST(Pointers, SingleBuiltin) { +# 394| StringRef Snippet = "int* target = nullptr;"; +# 395| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:406:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_MultiBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_MultiBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 404| runCheckOnCode(Snippet)); +# 405| } +# 406|-> TEST(Pointers, MultiBuiltin) { +# 407| StringRef Snippet = "int** target = nullptr;"; +# 408| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:419:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_ToArray_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_ToArray_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 417| runCheckOnCode(Snippet)); +# 418| } +# 419|-> TEST(Pointers, ToArray) { +# 420| StringRef ArraySnippet = "int a[4] = {1, 2, 3, 4};"; +# 421| StringRef Snippet = "int (*target)[4] = &a;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:434:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_Parens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_Parens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 432| runCheckOnCode(Cat(Snippet))); +# 433| } +# 434|-> TEST(Pointers, Parens) { +# 435| StringRef Snippet = "int ((**target)) = nullptr;"; +# 436| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:447:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_Auto_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_Auto_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 445| runCheckOnCode(Snippet)); +# 446| } +# 447|-> TEST(Pointers, Auto) { +# 448| StringRef T = "int* f() { return nullptr; }\n"; +# 449| StringRef S = "auto* target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:462:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_AutoParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_AutoParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 460| runCheckOnCode(Cat(S))); +# 461| } +# 462|-> TEST(Pointers, AutoParens) { +# 463| StringRef T = "int* f() { return nullptr; }\n"; +# 464| StringRef S = "auto (((* target))) = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:477:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_FunctionPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_FunctionPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 475| runCheckOnCode(Cat(S))); +# 476| } +# 477|-> TEST(Pointers, FunctionPointer) { +# 478| StringRef S = "int (*target)(float, int, double) = nullptr;"; +# 479| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:494:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_MemberFunctionPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_MemberFunctionPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 492| runCheckOnCode(S)); +# 493| } +# 494|-> TEST(Pointers, MemberFunctionPointer) { +# 495| StringRef T = "struct A { int f() { return 1; } };"; +# 496| StringRef S = "int (A::*target)() = &A::f;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:513:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_MemberDataPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_MemberDataPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 511| runCheckOnCode(Cat(S))); +# 512| } +# 513|-> TEST(Pointers, MemberDataPointer) { +# 514| StringRef T = "struct A { int member = 0; };"; +# 515| StringRef S = "int A::*target = &A::member;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:537:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Struct_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Struct_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 535| // ---------------------------------------------------------------------------- +# 536| +# 537|-> TEST(TagTypes, Struct) { +# 538| StringRef T = "struct Foo { int data; int method(); };\n"; +# 539| StringRef S = "struct Foo target{0};"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:596:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Class_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Class_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 594| runCheckOnCode(S)); +# 595| } +# 596|-> TEST(TagTypes, Class) { +# 597| StringRef T = "class Foo { int data; int method(); };\n"; +# 598| StringRef S = "class Foo target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:631:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Enum_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Enum_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 629| runCheckOnCode(Cat(S))); +# 630| } +# 631|-> TEST(TagTypes, Enum) { +# 632| StringRef T = "enum Foo { N_ONE, N_TWO, N_THREE };\n"; +# 633| StringRef S = "enum Foo target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:666:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Union_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Union_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 664| runCheckOnCode(Cat(S))); +# 665| } +# 666|-> TEST(TagTypes, Union) { +# 667| StringRef T = "union Foo { int yay; float nej; };\n"; +# 668| StringRef S = "union Foo target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:706:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_AllInMacro_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_AllInMacro_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 704| // ---------------------------------------------------------------------------- +# 705| +# 706|-> TEST(Macro, AllInMacro) { +# 707| StringRef T = "#define DEFINE_VARIABLE int target = 42\n"; +# 708| StringRef S = "DEFINE_VARIABLE;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:717:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroParameter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroParameter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 715| EXPECT_EQ(Cat("DEFINE_VARIABLE;"), runCheckOnCode(Cat(S))); +# 716| } +# 717|-> TEST(Macro, MacroParameter) { +# 718| StringRef T = "#define DEFINE_VARIABLE(X) int X = 42\n"; +# 719| StringRef S = "DEFINE_VARIABLE(target);"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:732:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroTypeValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroTypeValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 730| runCheckOnCode(Cat(S))); +# 731| } +# 732|-> TEST(Macro, MacroTypeValue) { +# 733| StringRef T = "#define BAD_TYPEDEF int\n"; +# 734| StringRef S = "BAD_TYPEDEF target = 42;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:747:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroTypePointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroTypePointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 745| runCheckOnCode(Cat(S))); +# 746| } +# 747|-> TEST(Macro, MacroTypePointer) { +# 748| StringRef T = "#define BAD_TYPEDEF int *\n"; +# 749| StringRef S = "BAD_TYPEDEF target = nullptr;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:764:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroTypeReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroTypeReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 762| runCheckOnCode(Cat(S))); +# 763| } +# 764|-> TEST(Macro, MacroTypeReference) { +# 765| StringRef T = "static int g = 42;\n#define BAD_TYPEDEF int&\n"; +# 766| StringRef S = "BAD_TYPEDEF target = g;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:782:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_Variable_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_Variable_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 780| } +# 781| // This failed in LLVM. +# 782|-> TEST(Macro, Variable) { +# 783| StringRef M = "#define DEBUG(X) do { if (1) { X; } } while (0)\n"; +# 784| StringRef F = "void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:794:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_RangeLoop_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_RangeLoop_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 792| runCheckOnCode(Cat(V))); +# 793| } +# 794|-> TEST(Macro, RangeLoop) { +# 795| StringRef M = "#define DEBUG(X) do { if (1) { X; }} while (false)\n"; +# 796| StringRef F = "void foo() { char array[] = {'a', 'b', 'c'}; "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:812:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_TemplateVariable_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_TemplateVariable_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 810| // ---------------------------------------------------------------------------- +# 811| +# 812|-> TEST(Template, TemplateVariable) { +# 813| StringRef T = "template T target = 3.1415;"; +# 814| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:825:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_FunctionValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_FunctionValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 823| runCheckOnCode(T)); +# 824| } +# 825|-> TEST(Template, FunctionValue) { +# 826| StringRef T = "template void f(T v) \n"; +# 827| StringRef S = "{ T target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:840:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_FunctionPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_FunctionPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 838| runCheckOnCode(Cat(S))); +# 839| } +# 840|-> TEST(Template, FunctionPointer) { +# 841| StringRef T = "template void f(T* v) \n"; +# 842| StringRef S = "{ T* target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:855:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_FunctionReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_FunctionReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 853| runCheckOnCode(Cat(S))); +# 854| } +# 855|-> TEST(Template, FunctionReference) { +# 856| StringRef T = "template void f(T& v) \n"; +# 857| StringRef S = "{ T& target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:870:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_MultiInstantiationsFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_MultiInstantiationsFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 868| runCheckOnCode(Cat(S))); +# 869| } +# 870|-> TEST(Template, MultiInstantiationsFunction) { +# 871| StringRef T = "template void f(T v) \n"; +# 872| StringRef S = "{ T target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:901:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_StructValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_StructValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 899| } +# 900| +# 901|-> TEST(Template, StructValue) { +# 902| StringRef T = "template struct S { void f(T& v) \n"; +# 903| StringRef S = "{ T target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:917:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_StructPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_StructPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 915| runCheckOnCode(Cat(S))); +# 916| } +# 917|-> TEST(Template, StructPointer) { +# 918| StringRef T = "template struct S { void f(T* v) \n"; +# 919| StringRef S = "{ T* target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:933:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_StructReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_StructReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 931| runCheckOnCode(Cat(S))); +# 932| } +# 933|-> TEST(Template, StructReference) { +# 934| StringRef T = "template struct S { void f(T& v) \n"; +# 935| StringRef S = "{ T& target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:949:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_DependentReturnFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_DependentReturnFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 947| runCheckOnCode(Cat(S))); +# 948| } +# 949|-> TEST(Template, DependentReturnFunction) { +# 950| StringRef TS = "template struct TS { using value_type = T; };"; +# 951| StringRef T = "template void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:965:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_DependentReturnPointerFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_DependentReturnPointerFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 963| runCheckOnCode(Cat(S))); +# 964| } +# 965|-> TEST(Template, DependentReturnPointerFunction) { +# 966| StringRef TS = "template struct TS { using value_type = T; };"; +# 967| StringRef T = "template void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:981:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_DependentReturnReferenceFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_DependentReturnReferenceFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 979| runCheckOnCode(Cat(S))); +# 980| } +# 981|-> TEST(Template, DependentReturnReferenceFunction) { +# 982| StringRef TS = "template struct TS { using value_type = T; };"; +# 983| StringRef T = "template void foo(T& f) "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:997:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_VectorLikeType_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_VectorLikeType_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 995| runCheckOnCode(Cat(S))); +# 996| } +# 997|-> TEST(Template, VectorLikeType) { +# 998| StringRef TS = "template struct TS { TS(const T&) {} }; "; +# 999| StringRef T = "void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1013:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_SpecializedTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_SpecializedTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1011| runCheckOnCode(Cat(S))); +# 1012| } +# 1013|-> TEST(Template, SpecializedTemplate) { +# 1014| StringRef TS = "template struct TS { TS(const T&) {} }; "; +# 1015| StringRef TS2 = "template <> struct TS { TS(const double&) {} }; "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1035:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjC_SimplePointers_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjC_SimplePointers_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1033| // ----------------------------------------------------------------------------- +# 1034| +# 1035|-> TEST(ObjC, SimplePointers) { +# 1036| StringRef S = "int * target = 0;"; +# 1037| EXPECT_EQ(runCheckOnCode(S, nullptr, "input.m"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1046:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjC_ClassPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjC_ClassPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1044| "int * const target = 0;"); +# 1045| } +# 1046|-> TEST(ObjC, ClassPointer) { +# 1047| StringRef TB = "@class Object;\nint main() {\n"; +# 1048| StringRef S = "Object *target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1062:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjC_InterfacePointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjC_InterfacePointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1060| Cat("Object *const target;")); +# 1061| } +# 1062|-> TEST(ObjC, InterfacePointer) { +# 1063| StringRef TB = "@interface I\n"; +# 1064| StringRef S = "- (void) foo: (int *) target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:69:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyDiagnosticConsumer_SortsErrors_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyDiagnosticConsumer_SortsErrors_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 67| } // namespace +# 68| +# 69|-> TEST(ClangTidyDiagnosticConsumer, SortsErrors) { +# 70| std::vector Errors; +# 71| runCheckOnCode("int a;", &Errors); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:78:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyDiagnosticConsumer_HandlesSourceRangeHighlight_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyDiagnosticConsumer_HandlesSourceRangeHighlight_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 76| } +# 77| +# 78|-> TEST(ClangTidyDiagnosticConsumer, HandlesSourceRangeHighlight) { +# 79| std::vector Errors; +# 80| runCheckOnCode("int abc;", &Errors); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyDiagnosticConsumer_InvalidSourceLocationRangesIgnored_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyDiagnosticConsumer_InvalidSourceLocationRangesIgnored_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST(ClangTidyDiagnosticConsumer, InvalidSourceLocationRangesIgnored) { +# 97| std::vector Errors; +# 98| runCheckOnCode("int x;", &Errors); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:29:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseLineFilter_EmptyFilter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseLineFilter_EmptyFilter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 27| namespace test { +# 28| +# 29|-> TEST(ParseLineFilter, EmptyFilter) { +# 30| ClangTidyGlobalOptions Options; +# 31| EXPECT_FALSE(parseLineFilter("", Options)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:37:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseLineFilter_InvalidFilter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseLineFilter_InvalidFilter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 35| } +# 36| +# 37|-> TEST(ParseLineFilter, InvalidFilter) { +# 38| ClangTidyGlobalOptions Options; +# 39| EXPECT_TRUE(!!parseLineFilter("asdf", Options)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:52:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseLineFilter_ValidFilter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseLineFilter_ValidFilter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 50| } +# 51| +# 52|-> TEST(ParseLineFilter, ValidFilter) { +# 53| ClangTidyGlobalOptions Options; +# 54| std::error_code Error = parseLineFilter( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:77:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_ValidConfiguration_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_ValidConfiguration_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 75| } +# 76| +# 77|-> TEST(ParseConfiguration, ValidConfiguration) { +# 78| llvm::ErrorOr Options = +# 79| parseConfiguration(llvm::MemoryBufferRef( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_ChecksSeparatedByNewlines_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_ChecksSeparatedByNewlines_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST(ParseConfiguration, ChecksSeparatedByNewlines) { +# 97| auto MemoryBuffer = llvm::MemoryBufferRef("Checks: |\n" +# 98| " -*,misc-*\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:110:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_MergeConfigurations_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_MergeConfigurations_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 108| } +# 109| +# 110|-> TEST(ParseConfiguration, MergeConfigurations) { +# 111| llvm::ErrorOr Options1 = +# 112| parseConfiguration(llvm::MemoryBufferRef(R"( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:227:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_CollectDiags_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_CollectDiags_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 225| using ::testing::UnorderedElementsAre; +# 226| +# 227|-> TEST(ParseConfiguration, CollectDiags) { +# 228| DiagCollecter Collector; +# 229| auto ParseWithDiags = [&](llvm::StringRef Buffer) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:315:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::CheckOptionsValidation_MissingOptions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::CheckOptionsValidation_MissingOptions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 313| namespace test { +# 314| +# 315|-> TEST(CheckOptionsValidation, MissingOptions) { +# 316| ClangTidyOptions Options; +# 317| ClangTidyContext Context(std::make_unique( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:330:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::CheckOptionsValidation_ValidIntOptions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::CheckOptionsValidation_ValidIntOptions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 328| } +# 329| +# 330|-> TEST(CheckOptionsValidation, ValidIntOptions) { +# 331| ClangTidyOptions Options; +# 332| auto &CheckOptions = Options.CheckOptions; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:395:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ValidConfiguration_ValidEnumOptions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ValidConfiguration_ValidEnumOptions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 393| } +# 394| +# 395|-> TEST(ValidConfiguration, ValidEnumOptions) { +# 396| +# 397| ClangTidyOptions Options; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:106:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstValueVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstValueVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 104| } +# 105| +# 106|-> TEST(ConstReferenceDeclRefExprsTest, ConstValueVar) { +# 107| RunTest<0>(R"( +# 108| void f(const S target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:139:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstRefVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstRefVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 137| } +# 138| +# 139|-> TEST(ConstReferenceDeclRefExprsTest, ConstRefVar) { +# 140| RunTest<0>(R"( +# 141| void f(const S& target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:171:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_DEBUGREMOVEME_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_DEBUGREMOVEME_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 169| } +# 170| +# 171|-> TEST(ConstReferenceDeclRefExprsTest, DEBUGREMOVEME) { +# 172| RunTest<0>(R"( +# 173| void f(S target, const S& other) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:179:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ValueVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ValueVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 177| } +# 178| +# 179|-> TEST(ConstReferenceDeclRefExprsTest, ValueVar) { +# 180| RunTest<0>(R"( +# 181| void f(S target, const S& other) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:218:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_RefVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_RefVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 216| } +# 217| +# 218|-> TEST(ConstReferenceDeclRefExprsTest, RefVar) { +# 219| RunTest<0>(R"( +# 220| void f(S& target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:256:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_PtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_PtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 254| } +# 255| +# 256|-> TEST(ConstReferenceDeclRefExprsTest, PtrVar) { +# 257| RunTest<1>(R"( +# 258| void f(S* target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:292:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 290| } +# 291| +# 292|-> TEST(ConstReferenceDeclRefExprsTest, ConstPtrVar) { +# 293| RunTest<1>(R"( +# 294| void f(const S* target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:326:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrPtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrPtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 324| } +# 325| +# 326|-> TEST(ConstReferenceDeclRefExprsTest, ConstPtrPtrVar) { +# 327| RunTest<2>(R"( +# 328| void f(const S** target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:356:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrConstPtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrConstPtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 354| } +# 355| +# 356|-> TEST(ConstReferenceDeclRefExprsTest, ConstPtrConstPtrVar) { +# 357| RunTest<2>(R"( +# 358| void f(const S* const* target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:12:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_SingleArgumentConstructorsOnly_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_SingleArgumentConstructorsOnly_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 10| namespace test { +# 11| +# 12|-> TEST(ExplicitConstructorCheckTest, SingleArgumentConstructorsOnly) { +# 13| EXPECT_NO_CHANGES(ExplicitConstructorCheck, "class C { C(); };"); +# 14| EXPECT_NO_CHANGES(ExplicitConstructorCheck, "class C { C(int i, int j); };"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:23:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_Basic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_Basic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 21| } +# 22| +# 23|-> TEST(ExplicitConstructorCheckTest, Basic) { +# 24| EXPECT_EQ("class C { explicit C(int i); };", +# 25| runCheckOnCode("class C { C(int i); };")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:28:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_DefaultParameters_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_DefaultParameters_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 26| } +# 27| +# 28|-> TEST(ExplicitConstructorCheckTest, DefaultParameters) { +# 29| EXPECT_EQ("class C { explicit C(int i, int j = 0); };", +# 30| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:34:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_OutOfLineDefinitions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_OutOfLineDefinitions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 32| } +# 33| +# 34|-> TEST(ExplicitConstructorCheckTest, OutOfLineDefinitions) { +# 35| EXPECT_EQ("class C { explicit C(int i); }; C::C(int i) {}", +# 36| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:40:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicit_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicit_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 38| } +# 39| +# 40|-> TEST(ExplicitConstructorCheckTest, RemoveExplicit) { +# 41| EXPECT_EQ("class A { A(const A&); };\n" +# 42| "class B { /*asdf*/ B(B&&); };\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:50:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicitWithMacros_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicitWithMacros_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 48| } +# 49| +# 50|-> TEST(ExplicitConstructorCheckTest, RemoveExplicitWithMacros) { +# 51| EXPECT_EQ( +# 52| "#define A(T) class T##Bar { explicit T##Bar(const T##Bar &b) {} };\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:84:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDeclarations_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDeclarations_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 82| }; +# 83| +# 84|-> TEST_F(GlobalNamesInHeadersCheckTest, UsingDeclarations) { +# 85| EXPECT_TRUE(runCheckOnCode("using std::string;", "foo.h")); +# 86| EXPECT_FALSE(runCheckOnCode("using std::string;", "foo.cpp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:94:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDirectives_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDirectives_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 92| } +# 93| +# 94|-> TEST_F(GlobalNamesInHeadersCheckTest, UsingDirectives) { +# 95| EXPECT_TRUE(runCheckOnCode("using namespace std;", "foo.h")); +# 96| EXPECT_FALSE(runCheckOnCode("using namespace std;", "foo.cpp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:104:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::GlobalNamesInHeadersCheckTest_RegressionAnonymousNamespace_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::GlobalNamesInHeadersCheckTest_RegressionAnonymousNamespace_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 102| } +# 103| +# 104|-> TEST_F(GlobalNamesInHeadersCheckTest, RegressionAnonymousNamespace) { +# 105| EXPECT_FALSE(runCheckOnCode("namespace {}", "foo.h")); +# 106| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/LLVMModuleTest.cpp:65:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::LLVMHeaderGuardCheckTest_FixHeaderGuards_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::LLVMHeaderGuardCheckTest_FixHeaderGuards_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 63| } // namespace +# 64| +# 65|-> TEST(LLVMHeaderGuardCheckTest, FixHeaderGuards) { +# 66| EXPECT_EQ("#ifndef LLVM_ADT_FOO_H\n" +# 67| "#define LLVM_ADT_FOO_H\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/LLVMModuleTest.cpp:302:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::IncludeOrderCheck_GTestHeaders_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::IncludeOrderCheck_GTestHeaders_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 300| } +# 301| +# 302|-> TEST(IncludeOrderCheck, GTestHeaders) { +# 303| EXPECT_EQ( +# 304| R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:67:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_AddNewAlias_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_AddNewAlias_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 65| } +# 66| +# 67|-> TEST(NamespaceAliaserTest, AddNewAlias) { +# 68| EXPECT_EQ("#include \"foo.h\"\n" +# 69| "void f() {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:77:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_ReuseAlias_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_ReuseAlias_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 75| } +# 76| +# 77|-> TEST(NamespaceAliaserTest, ReuseAlias) { +# 78| EXPECT_EQ( +# 79| "#include \"foo.h\"\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:86:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_AddsOnlyOneAlias_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_AddsOnlyOneAlias_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 84| } +# 85| +# 86|-> TEST(NamespaceAliaserTest, AddsOnlyOneAlias) { +# 87| EXPECT_EQ("#include \"foo.h\"\n" +# 88| "void f() {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_LocalConflict_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_LocalConflict_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST(NamespaceAliaserTest, LocalConflict) { +# 97| EXPECT_EQ("#include \"foo.h\"\n" +# 98| "void f() {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:106:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_GlobalConflict_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_GlobalConflict_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 104| } +# 105| +# 106|-> TEST(NamespaceAliaserTest, GlobalConflict) { +# 107| EXPECT_EQ("#include \"foo.h\"\n" +# 108| "namespace b = foo;\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ObjCModuleTest.cpp:19:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjCForbiddenSubclassing_AllowedSubclass_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjCForbiddenSubclassing_AllowedSubclass_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 17| namespace test { +# 18| +# 19|-> TEST(ObjCForbiddenSubclassing, AllowedSubclass) { +# 20| std::vector Errors; +# 21| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ObjCModuleTest.cpp:31:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjCForbiddenSubclassing_ForbiddenSubclass_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjCForbiddenSubclassing_ForbiddenSubclass_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 29| } +# 30| +# 31|-> TEST(ObjCForbiddenSubclassing, ForbiddenSubclass) { +# 32| std::vector Errors; +# 33| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OptionsProviderTest.cpp:19:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyOptionsProvider_InMemoryFileSystems_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyOptionsProvider_InMemoryFileSystems_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 17| namespace test { +# 18| +# 19|-> TEST(ClangTidyOptionsProvider, InMemoryFileSystems) { +# 20| llvm::IntrusiveRefCntPtr FileSystem( +# 21| new llvm::vfs::InMemoryFileSystem); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:137:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_UseCharCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_UseCharCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 135| } // namespace +# 136| +# 137|-> TEST(OverlappingReplacementsTest, UseCharCheckTest) { +# 138| const char Code[] = +# 139| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:156:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_IfFalseCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_IfFalseCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 154| } +# 155| +# 156|-> TEST(OverlappingReplacementsTest, IfFalseCheckTest) { +# 157| const char Code[] = +# 158| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:179:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_StartsWithCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_StartsWithCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 177| } +# 178| +# 179|-> TEST(OverlappingReplacementsTest, StartsWithCheckTest) { +# 180| const char Code[] = +# 181| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:204:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_EndsWithCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_EndsWithCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 202| } +# 203| +# 204|-> TEST(OverlappingReplacementsTest, EndsWithCheckTest) { +# 205| const char Code[] = +# 206| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:229:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementTest_ReplacementsDoNotOverlap_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementTest_ReplacementsDoNotOverlap_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 227| } +# 228| +# 229|-> TEST(OverlappingReplacementTest, ReplacementsDoNotOverlap) { +# 230| std::string Res; +# 231| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:271:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_ReplacementInsideOtherReplacement_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_ReplacementInsideOtherReplacement_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 269| } +# 270| +# 271|-> TEST(OverlappingReplacementsTest, ReplacementInsideOtherReplacement) { +# 272| std::string Res; +# 273| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:328:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacements_TwoReplacementsInsideOne_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacements_TwoReplacementsInsideOne_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 326| } +# 327| +# 328|-> TEST(OverlappingReplacements, TwoReplacementsInsideOne) { +# 329| std::string Res; +# 330| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:357:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_ApplyAtMostOneOfTheChangesWhenPartialOverlapping_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_ApplyAtMostOneOfTheChangesWhenPartialOverlapping_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 355| } +# 356| +# 357|-> TEST(OverlappingReplacementsTest, +# 358| ApplyAtMostOneOfTheChangesWhenPartialOverlapping) { +# 359| std::string Res; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:387:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_TwoErrorsHavePerfectOverlapping_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_TwoErrorsHavePerfectOverlapping_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 385| } +# 386| +# 387|-> TEST(OverlappingReplacementsTest, TwoErrorsHavePerfectOverlapping) { +# 388| std::string Res; +# 389| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:15:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_Basic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_Basic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 13| using readability::SimplifyBooleanExprCheck; +# 14| +# 15|-> TEST(NamespaceCommentCheckTest, Basic) { +# 16| EXPECT_EQ("namespace i {\n} // namespace i", +# 17| runCheckOnCode("namespace i {\n}")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:25:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_SingleLineNamespaces_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_SingleLineNamespaces_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 23| } +# 24| +# 25|-> TEST(NamespaceCommentCheckTest, SingleLineNamespaces) { +# 26| EXPECT_EQ( +# 27| "namespace i { namespace j { } }", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:31:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_CheckExistingComments_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_CheckExistingComments_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 29| } +# 30| +# 31|-> TEST(NamespaceCommentCheckTest, CheckExistingComments) { +# 32| EXPECT_EQ("namespace i { namespace j {\n" +# 33| "} /* namespace j */ } // namespace i\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:83:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_FixWrongComments_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_FixWrongComments_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 81| } +# 82| +# 83|-> TEST(NamespaceCommentCheckTest, FixWrongComments) { +# 84| EXPECT_EQ("namespace i { namespace jJ0_ {\n" +# 85| "} // namespace jJ0_\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:103:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_IfWithComments_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_IfWithComments_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 101| } +# 102| +# 103|-> TEST(BracesAroundStatementsCheckTest, IfWithComments) { +# 104| EXPECT_EQ("int main() {\n" +# 105| " if (false /*dummy token*/) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:140:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_If_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_If_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 138| } +# 139| +# 140|-> TEST(BracesAroundStatementsCheckTest, If) { +# 141| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 142| " if (false) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:241:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_IfElseWithShortStatements_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_IfElseWithShortStatements_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 239| } +# 240| +# 241|-> TEST(BracesAroundStatementsCheckTest, IfElseWithShortStatements) { +# 242| ClangTidyOptions Options; +# 243| Options.CheckOptions["test-check-0.ShortStatementLines"] = "1"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:275:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_For_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_For_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 273| } +# 274| +# 275|-> TEST(BracesAroundStatementsCheckTest, For) { +# 276| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 277| " for (;;) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:310:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_ForRange_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_ForRange_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 308| } +# 309| +# 310|-> TEST(BracesAroundStatementsCheckTest, ForRange) { +# 311| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 312| " int arr[4];\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:335:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_DoWhile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_DoWhile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 333| } +# 334| +# 335|-> TEST(BracesAroundStatementsCheckTest, DoWhile) { +# 336| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 337| " do {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:353:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_While_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_While_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 351| } +# 352| +# 353|-> TEST(BracesAroundStatementsCheckTest, While) { +# 354| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 355| " while (false) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:417:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_Nested_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_Nested_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 415| } +# 416| +# 417|-> TEST(BracesAroundStatementsCheckTest, Nested) { +# 418| EXPECT_EQ("int main() {\n" +# 419| " do { if (true) {}} while (false);\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:452:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_Macros_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_Macros_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 450| } +# 451| +# 452|-> TEST(BracesAroundStatementsCheckTest, Macros) { +# 453| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, +# 454| "#define IF(COND) if (COND) return -1;\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:489:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_ImplicitCastInReturn_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_ImplicitCastInReturn_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 487| EXPECT_EQ(Code, runCheckOnCode(Code, nullptr, "input.cc", \ +# 488| std::nullopt, Opts)) +# 489|-> TEST(BracesAroundStatementsCheckTest, ImplicitCastInReturn) { +# 490| ClangTidyOptions Opts; +# 491| Opts.CheckOptions["test-check-0.ShortStatementLines"] = "1"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:506:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::SimplifyBooleanExprCheckTest_CodeWithError_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::SimplifyBooleanExprCheckTest_CodeWithError_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 504| } +# 505| +# 506|-> TEST(SimplifyBooleanExprCheckTest, CodeWithError) { +# 507| // Fixes PR55557 +# 508| // Need to downgrade Wreturn-type from error as runCheckOnCode will fatal_exit + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/UsingInserterTest.cpp:71:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::UsingInserterTest_ReusesExisting_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::UsingInserterTest_ReusesExisting_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 69| } +# 70| +# 71|-> TEST(UsingInserterTest, ReusesExisting) { +# 72| EXPECT_EQ("#include \"foo.h\"\n" +# 73| "namespace {" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/UsingInserterTest.cpp:85:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::UsingInserterTest_ReusesExistingGlobal_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::UsingInserterTest_ReusesExistingGlobal_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 83| } +# 84| +# 85|-> TEST(UsingInserterTest, ReusesExistingGlobal) { +# 86| EXPECT_EQ("#include \"foo.h\"\n" +# 87| "using ::foo::func;\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/UsingInserterTest.cpp:99:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::UsingInserterTest_AvoidsConflict_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::UsingInserterTest_AvoidsConflict_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 97| } +# 98| +# 99|-> TEST(UsingInserterTest, AvoidsConflict) { +# 100| EXPECT_EQ("#include \"foo.h\"\n" +# 101| "namespace {" + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/APValue.h:367:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/include/clang/AST/APValue.h:369:5: uninit_use: Using uninitialized value "Result". Field "Result.Data" is uninitialized. +# 367| APValue Result; +# 368| Result.Kind = Indeterminate; +# 369|-> return Result; +# 370| } +# 371| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:376:7: var_decl: Declaring variable "Node". +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:378:7: uninit_use: Using uninitialized value "Node". Field "Node.Storage" is uninitialized. +# 376| DynTypedNode Node; +# 377| Node.NodeKind = ASTNodeKind::DenseMapInfo::getEmptyKey(); +# 378|-> return Node; +# 379| } +# 380| static inline DynTypedNode getTombstoneKey() { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:381:7: var_decl: Declaring variable "Node". +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:383:7: uninit_use: Using uninitialized value "Node". Field "Node.Storage" is uninitialized. +# 381| DynTypedNode Node; +# 382| Node.NodeKind = ASTNodeKind::DenseMapInfo::getTombstoneKey(); +# 383|-> return Node; +# 384| } +# 385| static unsigned getHashValue(const DynTypedNode &Val) { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclCXX.h:3288:5: address_of: Taking address with "&this->ExprWithTemporary" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/DeclCXX.h:3288:5: ptr_arith: Using "&this->ExprWithTemporary" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3286| // Iterators +# 3287| Stmt::child_range childrenExpr() { +# 3288|-> return Stmt::child_range(&ExprWithTemporary, &ExprWithTemporary + 1); +# 3289| } +# 3290| + +Error: RETURN_LOCAL (CWE-562): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclContextInternals.h:54:5: local_ptr_assign_local: Assigning: "NewTail" = "&NewHead" (address of local variable "NewHead"). +llvm-project-19.0.0.src/clang/include/clang/AST/DeclContextInternals.h:57:9: local_ptr_assign_ptr: Assigning: "NewLast" = "NewTail". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclContextInternals.h:92:7: return_local_addr_alias: Returning pointer "NewLast" which points to local variable "NewHead". +# 90| else { +# 91| assert(NewLast && NewLast->is() && "Not the tail?"); +# 92|-> return NewLast; +# 93| } +# 94| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:107:7: address_of: Taking address with "&this->D" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:107:7: ptr_arith: Using "&this->D" as an array. This might corrupt or misinterpret adjacent memory locations. +# 105| iterator end() { +# 106| if (isSingleDecl()) +# 107|-> return D ? &D+1 : nullptr; +# 108| DeclGroup &G = getDeclGroup(); +# 109| return &G[0] + G.size(); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:120:7: address_of: Taking address with "&this->D" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:120:7: ptr_arith: Using "&this->D" as an array. This might corrupt or misinterpret adjacent memory locations. +# 118| const_iterator end() const { +# 119| if (isSingleDecl()) +# 120|-> return D ? &D+1 : nullptr; +# 121| const DeclGroup &G = getDeclGroup(); +# 122| return &G[0] + G.size(); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:53:5: new_object: Calling single-object form of 'new': "new (C, DC, clang::OMPDeclarativeDirective::size(Clauses.size(), NumChildren)) clang::OMPAllocateDecl(DC, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:53:5: assign: Assigning: "Inst" = "new (C, DC, clang::OMPDeclarativeDirective::size(Clauses.size(), NumChildren)) clang::OMPAllocateDecl(DC, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:55:5: ptr_arith: Using "Inst" as an array. This might corrupt or misinterpret adjacent memory locations. +# 53| auto *Inst = new (C, DC, size(Clauses.size(), NumChildren)) +# 54| T(DC, std::forward(P)...); +# 55|-> Inst->Data = OMPChildren::Create(Inst + 1, Clauses, +# 56| /*AssociatedStmt=*/nullptr, NumChildren); +# 57| Inst->Data->setClauses(Clauses); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:65:5: new_object: Calling single-object form of 'new': "new (C, ID, clang::OMPDeclarativeDirective::size(NumClauses, NumChildren)) clang::OMPAllocateDecl(NULL, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:65:5: assign: Assigning: "Inst" = "new (C, ID, clang::OMPDeclarativeDirective::size(NumClauses, NumChildren)) clang::OMPAllocateDecl(NULL, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:67:5: ptr_arith: Using "Inst" as an array. This might corrupt or misinterpret adjacent memory locations. +# 65| auto *Inst = new (C, ID, size(NumClauses, NumChildren)) +# 66| T(nullptr, std::forward(P)...); +# 67|-> Inst->Data = OMPChildren::CreateEmpty( +# 68| Inst + 1, NumClauses, /*HasAssociatedStmt=*/false, NumChildren); +# 69| return Inst; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1153:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1153:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1151| llvm::APSInt getResultAsAPSInt() const; +# 1152| // Iterators +# 1153|-> child_range children() { return child_range(&SubExpr, &SubExpr+1); } +# 1154| const_child_range children() const { +# 1155| return const_child_range(&SubExpr, &SubExpr + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1738:28: address_of: Taking address with "&this->Val" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1738:28: ptr_arith: Using "&this->Val" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1736| +# 1737| // Iterators +# 1738|-> child_range children() { return child_range(&Val, &Val+1); } +# 1739| const_child_range children() const { +# 1740| return const_child_range(&Val, &Val + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:2318:28: address_of: Taking address with "&this->Val" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:2318:28: ptr_arith: Using "&this->Val" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2316| +# 2317| // Iterators +# 2318|-> child_range children() { return child_range(&Val, &Val+1); } +# 2319| const_child_range children() const { +# 2320| return const_child_range(&Val, &Val + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3405:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3405:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3403| +# 3404| // Iterators +# 3405|-> child_range children() { return child_range(&Base, &Base+1); } +# 3406| const_child_range children() const { +# 3407| return const_child_range(&Base, &Base + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3628:28: address_of: Taking address with "&this->Op" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3628:28: ptr_arith: Using "&this->Op" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3626| +# 3627| // Iterators +# 3628|-> child_range children() { return child_range(&Op, &Op+1); } +# 3629| const_child_range children() const { return const_child_range(&Op, &Op + 1); } +# 3630| }; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4419:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4419:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4417| +# 4418| // Iterators +# 4419|-> child_range children() { return child_range(&SubStmt, &SubStmt+1); } +# 4420| const_child_range children() const { +# 4421| return const_child_range(&SubStmt, &SubStmt + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4543:28: address_of: Taking address with "&this->SrcExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4543:28: ptr_arith: Using "&this->SrcExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4541| +# 4542| // Iterators +# 4543|-> child_range children() { return child_range(&SrcExpr, &SrcExpr+1); } +# 4544| const_child_range children() const { +# 4545| return const_child_range(&SrcExpr, &SrcExpr + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4708:28: address_of: Taking address with "&this->Val" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4708:28: ptr_arith: Using "&this->Val" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4706| +# 4707| // Iterators +# 4708|-> child_range children() { return child_range(&Val, &Val+1); } +# 4709| const_child_range children() const { +# 4710| return const_child_range(&Val, &Val + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6165:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6165:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 6163| +# 6164| // Iterators +# 6165|-> child_range children() { return child_range(&Base, &Base+1); } +# 6166| const_child_range children() const { +# 6167| return const_child_range(&Base, &Base + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6269:28: address_of: Taking address with "&this->SrcExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6269:28: ptr_arith: Using "&this->SrcExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 6267| +# 6268| // Iterators +# 6269|-> child_range children() { return child_range(&SrcExpr, &SrcExpr+1); } +# 6270| const_child_range children() const { +# 6271| return const_child_range(&SrcExpr, &SrcExpr + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:357:5: address_of: Taking address with "&this->SemanticForm" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:357:5: ptr_arith: Using "&this->SemanticForm" as an array. This might corrupt or misinterpret adjacent memory locations. +# 355| +# 356| child_range children() { +# 357|-> return child_range(&SemanticForm, &SemanticForm + 1); +# 358| } +# 359| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:833:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:833:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 831| } +# 832| +# 833|-> child_range children() { return child_range(&SubExpr, &SubExpr + 1); } +# 834| +# 835| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:910:5: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:910:5: assign: Assigning: "begin" = "reinterpret_cast(&this->Operand)". +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:911:5: ptr_arith: Using "begin" as an array. This might corrupt or misinterpret adjacent memory locations. +# 909| return child_range(child_iterator(), child_iterator()); +# 910| auto **begin = reinterpret_cast(&Operand); +# 911|-> return child_range(begin, begin + 1); +# 912| } +# 913| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1123:5: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1123:5: assign: Assigning: "begin" = "reinterpret_cast(&this->Operand)". +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1124:5: ptr_arith: Using "begin" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1122| return child_range(child_iterator(), child_iterator()); +# 1123| auto **begin = reinterpret_cast(&Operand); +# 1124|-> return child_range(begin, begin + 1); +# 1125| } +# 1126| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1249:5: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1249:5: ptr_arith: Using "&this->Operand" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1247| // Iterators +# 1248| child_range children() { +# 1249|-> return child_range(&Operand, Operand ? &Operand + 1 : &Operand); +# 1250| } +# 1251| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:2746:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:2746:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2744| +# 2745| // Iterators +# 2746|-> child_range children() { return child_range(&Base, &Base + 1); } +# 2747| +# 2748| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3520:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3520:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3518| +# 3519| // Iterators +# 3520|-> child_range children() { return child_range(&SubExpr, &SubExpr + 1); } +# 3521| +# 3522| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3907:5: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3907:5: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3905| if (isImplicitAccess()) +# 3906| return child_range(child_iterator(), child_iterator()); +# 3907|-> return child_range(&Base, &Base + 1); +# 3908| } +# 3909| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4076:5: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4076:5: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4074| if (isImplicitAccess()) +# 4075| return child_range(child_iterator(), child_iterator()); +# 4076|-> return child_range(&Base, &Base + 1); +# 4077| } +# 4078| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4149:28: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4149:28: ptr_arith: Using "&this->Operand" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4147| +# 4148| // Iterators +# 4149|-> child_range children() { return child_range(&Operand, &Operand + 1); } +# 4150| +# 4151| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4532:28: address_of: Taking address with "&this->Replacement" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4532:28: ptr_arith: Using "&this->Replacement" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4530| +# 4531| // Iterators +# 4532|-> child_range children() { return child_range(&Replacement, &Replacement + 1); } +# 4533| +# 4534| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:75:28: address_of: Taking address with "&this->String" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:75:28: ptr_arith: Using "&this->String" as an array. This might corrupt or misinterpret adjacent memory locations. +# 73| +# 74| // Iterators +# 75|-> child_range children() { return child_range(&String, &String+1); } +# 76| +# 77| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:166:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:166:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 164| +# 165| // Iterators +# 166|-> child_range children() { return child_range(&SubExpr, &SubExpr+1); } +# 167| +# 168| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:604:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:604:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 602| +# 603| // Iterators +# 604|-> child_range children() { return child_range(&Base, &Base+1); } +# 605| +# 606| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1542:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1542:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1540| +# 1541| // Iterators +# 1542|-> child_range children() { return child_range(&Base, &Base+1); } +# 1543| +# 1544| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1605:28: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1605:28: ptr_arith: Using "&this->Operand" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1603| bool shouldCopy() const { return ObjCIndirectCopyRestoreExprBits.ShouldCopy; } +# 1604| +# 1605|-> child_range children() { return child_range(&Operand, &Operand+1); } +# 1606| +# 1607| const_child_range children() const { + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/IgnoreExpr.h:38:5: move: "Fns" is moved (indicated by "std::forward(Fns)"). +llvm-project-19.0.0.src/clang/include/clang/AST/IgnoreExpr.h:38:5: use_after_move: "Fns" is used after it has been already moved. +# 36| while (E != LastE) { +# 37| LastE = E; +# 38|-> E = detail::IgnoreExprNodesImpl(E, std::forward(Fns)...); +# 39| } +# 40| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:604:28: address_of: Taking address with "&this->Condition" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:604:28: ptr_arith: Using "&this->Condition" as an array. This might corrupt or misinterpret adjacent memory locations. +# 602| SourceLocation getNameModifierLoc() const { return NameModifierLoc; } +# 603| +# 604|-> child_range children() { return child_range(&Condition, &Condition + 1); } +# 605| +# 606| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:1901:28: address_of: Taking address with "&this->NumForLoops" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:1901:28: ptr_arith: Using "&this->NumForLoops" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1899| const Expr *getLoopCounter(unsigned NumLoop) const; +# 1900| +# 1901|-> child_range children() { return child_range(&NumForLoops, &NumForLoops + 1); } +# 1902| +# 1903| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ParentMapContext.h:113:5: address_of: Taking address with "&(*this).SingleNode" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ParentMapContext.h:113:5: ptr_arith: Using "&(*this).SingleNode" as an array. This might corrupt or misinterpret adjacent memory locations. +# 111| +# 112| const DynTypedNode *end() const { +# 113|-> return !IsSingleNode ? Nodes.end() : &SingleNode + 1; +# 114| } +# 115| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:1983:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:1983:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1981| +# 1982| // Iterators +# 1983|-> child_range children() { return child_range(&SubStmt, &SubStmt + 1); } +# 1984| +# 1985| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2061:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2061:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2059| SourceLocation getEndLoc() const LLVM_READONLY { return SubStmt->getEndLoc();} +# 2060| +# 2061|-> child_range children() { return child_range(&SubStmt, &SubStmt + 1); } +# 2062| +# 2063| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2124:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2124:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2122| SourceLocation getEndLoc() const LLVM_READONLY { return SubStmt->getEndLoc();} +# 2123| +# 2124|-> child_range children() { return child_range(&SubStmt, &SubStmt + 1); } +# 2125| +# 2126| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:3088:7: address_of: Taking address with "&this->RetExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:3088:7: ptr_arith: Using "&this->RetExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3086| child_range children() { +# 3087| if (RetExpr) +# 3088|-> return child_range(&RetExpr, &RetExpr + 1); +# 3089| return child_range(child_iterator(), child_iterator()); +# 3090| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/StmtObjC.h:119:28: address_of: Taking address with "&this->Body" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/StmtObjC.h:119:28: ptr_arith: Using "&this->Body" as an array. This might corrupt or misinterpret adjacent memory locations. +# 117| } +# 118| +# 119|-> child_range children() { return child_range(&Body, &Body + 1); } +# 120| +# 121| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/StmtOpenACC.h:98:7: address_of: Taking address with "&this->AssociatedStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/StmtOpenACC.h:98:7: ptr_arith: Using "&this->AssociatedStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 96| child_range children() { +# 97| if (getAssociatedStmt()) +# 98|-> return child_range(&AssociatedStmt, &AssociatedStmt + 1); +# 99| return child_range(child_iterator(), child_iterator()); +# 100| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/ExtractAPI/ExtractAPIVisitor.h:172:5: var_decl: Declaring variable "Bases". +llvm-project-19.0.0.src/clang/include/clang/ExtractAPI/ExtractAPIVisitor.h:194:5: uninit_use: Using uninitialized value "Bases". Field "Bases.InlineElts" is uninitialized. +# 192| Bases.emplace_back(BaseClass); +# 193| } +# 194|-> return Bases; +# 195| } +# 196| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Frontend/CommandLineSourceLoc.h:34:5: var_decl: Declaring variable "PSL". +llvm-project-19.0.0.src/clang/include/clang/Frontend/CommandLineSourceLoc.h:50:5: uninit_use: Using uninitialized value "PSL". Field "PSL.Line" is uninitialized. +# 48| } +# 49| +# 50|-> return PSL; +# 51| } +# 52| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1670:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1680:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1678| I.Ptr.AtomicQualLoc = AtomicQualLoc; +# 1679| I.Ptr.UnalignedQualLoc = UnalignedQualLoc; +# 1680|-> return I; +# 1681| } +# 1682| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1686:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1691:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1689| I.Ref.HasRestrict = (TypeQuals & DeclSpec::TQ_restrict) != 0; +# 1690| I.Ref.LValueRef = lvalue; +# 1691|-> return I; +# 1692| } +# 1693| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1698:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1706:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1704| I.Arr.isStar = isStar; +# 1705| I.Arr.NumElts = NumElts; +# 1706|-> return I; +# 1707| } +# 1708| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1740:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1744:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1742| I.Loc = Loc; +# 1743| I.Cls.TypeQuals = TypeQuals; +# 1744|-> return I; +# 1745| } +# 1746| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1750:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1754:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1752| I.Loc = Loc; +# 1753| I.Cls.TypeQuals = TypeQuals; +# 1754|-> return I; +# 1755| } +# 1756| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1761:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1769:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1767| I.Mem.TypeQuals = TypeQuals; +# 1768| new (I.Mem.ScopeMem) CXXScopeSpec(SS); +# 1769|-> return I; +# 1770| } +# 1771| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1775:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1779:5: uninit_use: Using uninitialized value "I". Field "I" is uninitialized. +# 1777| I.Loc = LParenLoc; +# 1778| I.EndLoc = RParenLoc; +# 1779|-> return I; +# 1780| } +# 1781| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:225:3: var_decl: Declaring variable "APINotes". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:293:9: uninit_use: Using uninitialized value "APINotes". Field "APINotes.InlineElts" is uninitialized. +# 291| if (auto File = findAPINotesFile(*SearchDir, ModuleName)) { +# 292| APINotes.push_back(*File); +# 293|-> return APINotes; +# 294| } +# 295| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:225:3: var_decl: Declaring variable "APINotes". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:299:3: uninit_use: Using uninitialized value "APINotes". Field "APINotes.InlineElts" is uninitialized. +# 297| +# 298| // Didn't find any API notes. +# 299|-> return APINotes; +# 300| } +# 301| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:338:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 336| Results.append(getCurrentModuleReaders().begin(), +# 337| getCurrentModuleReaders().end()); +# 338|-> return Results; +# 339| } +# 340| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:343:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 341| // If we're not allowed to implicitly load API notes files, we're done. +# 342| if (!ImplicitAPINotes) +# 343|-> return Results; +# 344| +# 345| // If we don't have source location information, we're done. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:347:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 345| // If we don't have source location information, we're done. +# 346| if (Loc.isInvalid()) +# 347|-> return Results; +# 348| +# 349| // API notes are associated with the expansion location. Retrieve the + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:354:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 352| FileID ID = SM.getFileID(ExpansionLoc); +# 353| if (ID.isInvalid()) +# 354|-> return Results; +# 355| OptionalFileEntryRef File = SM.getFileEntryRefForID(ID); +# 356| if (!File) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:357:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 355| OptionalFileEntryRef File = SM.getFileEntryRefForID(ID); +# 356| if (!File) +# 357|-> return Results; +# 358| +# 359| // Look for API notes in the directory corresponding to this file, or one of + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:462:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 460| Readers[Visited] = Dir ? ReaderEntry(*Dir) : ReaderEntry(); +# 461| +# 462|-> return Results; +# 463| } +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:462:3: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:81:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:92:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 90| Result.push_back({version, UnversionedData}); +# 91| } +# 92|-> return Result; +# 93| } +# 94| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:414:5: var_decl: Declaring variable "Key". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:421:5: uninit_use: Using uninitialized value "Key". Field "Key.Identifiers.InlineElts" is uninitialized. +# 419| endian::readNext(Data)); +# 420| } +# 421|-> return Key; +# 422| } +# 423| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:167:60: uninit_use_in_call: Using uninitialized value "I.DGE" when calling "operator ++". +# 165| +# 166| for (Stmt::child_iterator +# 167|-> I = S->body_begin(), E = S->body_end(); I != E; ++I) { +# 168| Stmt *child = getEssential(*I); +# 169| if (DeclStmt *DclS = dyn_cast(child)) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:182:17: uninit_use: Using uninitialized value "I". Field "I.DGE" is uninitialized. +# 180| Scopes.back().PoolVar = VD; +# 181| Scopes.back().CompoundParent = S; +# 182|-> Scopes.back().Begin = I; +# 183| } +# 184| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:197:15: uninit_use: Using uninitialized value "I". Field "I.DGE" is uninitialized. +# 195| Scopes.back().PoolVar = VD; +# 196| Scopes.back().CompoundParent = S; +# 197|-> Scopes.back().Begin = I; +# 198| } +# 199| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:208:9: uninit_use: Using uninitialized value "I". Field "I.DGE" is uninitialized. +# 206| if (isPoolDrain(Scopes.back().PoolVar, child)) { +# 207| PoolScope &scope = Scopes.back(); +# 208|-> scope.End = I; +# 209| handlePoolScope(scope, S); +# 210| Scopes.pop_back(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:287:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:291:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 289| data.Loc = loc; +# 290| data.Text1 = text; +# 291|-> CachedActions.push_back(data); +# 292| } +# 293| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:297:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:301:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 299| data.Loc = loc; +# 300| data.Text1 = text; +# 301|-> CachedActions.push_back(data); +# 302| } +# 303| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:306:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:309:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 307| data.Kind = Act_Remove; +# 308| data.R1 = range; +# 309|-> CachedActions.push_back(data); +# 310| } +# 311| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:314:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:319:3: uninit_use_in_call: Using uninitialized value "data". Field "data.DiagIDs.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 317| S = E->IgnoreImplicit(); // important for uniquing +# 318| data.S = S; +# 319|-> CachedActions.push_back(data); +# 320| } +# 321| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:332:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:336:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 334| data.R1 = range; +# 335| data.R2 = replacementRange; +# 336|-> CachedActions.push_back(data); +# 337| } +# 338| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:343:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:348:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 346| data.Text1 = text; +# 347| data.Text2 = replacementText; +# 348|-> CachedActions.push_back(data); +# 349| } +# 350| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:362:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:366:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 364| data.R1 = range; +# 365| data.Loc = parentIndent; +# 366|-> CachedActions.push_back(data); +# 367| } +# 368| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:375:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:379:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 377| data.R1 = range; +# 378| data.DiagIDs.append(IDs.begin(), IDs.end()); +# 379|-> CachedActions.push_back(data); +# 380| return true; +# 381| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:311:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:355:7: uninit_use_in_call: Using uninitialized value "this->Data" when calling "getArrayInitializedElt". +# 353| MakeArray(RHS.getArrayInitializedElts(), RHS.getArraySize()); +# 354| for (unsigned I = 0, N = RHS.getArrayInitializedElts(); I != N; ++I) +# 355|-> getArrayInitializedElt(I) = RHS.getArrayInitializedElt(I); +# 356| if (RHS.hasArrayFiller()) +# 357| getArrayFiller() = RHS.getArrayFiller(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:311:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:362:7: uninit_use_in_call: Using uninitialized value "this->Data" when calling "getStructBase". +# 360| MakeStruct(RHS.getStructNumBases(), RHS.getStructNumFields()); +# 361| for (unsigned I = 0, N = RHS.getStructNumBases(); I != N; ++I) +# 362|-> getStructBase(I) = RHS.getStructBase(I); +# 363| for (unsigned I = 0, N = RHS.getStructNumFields(); I != N; ++I) +# 364| getStructField(I) = RHS.getStructField(I); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:171:3: var_decl: Declaring variable "Locations". +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:212:3: uninit_use: Using uninitialized value "Locations". Field "Locations.InlineElts" is uninitialized. +# 210| } +# 211| +# 212|-> return Locations; +# 213| } +# 214| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:12634:3: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:12638:3: uninit_use: Using uninitialized value "R". Field "R.InlineElts" is uninitialized. +#12636| assert(!Different); +#12637| (void)Different; +#12638|-> return R; +#12639| } +#12640| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:13349:3: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:13358:3: uninit_use: Using uninitialized value "R". Field "R.InlineElts" is uninitialized. +#13356| T = NT.split(); +#13357| } +#13358|-> return R; +#13359| } +#13360| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:111:5: var_decl: Declaring variable "Redecls". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:118:5: uninit_use: Using uninitialized value "Redecls". Field "Redecls.InlineElts" is uninitialized. +# 116| Redecls.push_back(D->getFirstDecl()); +# 117| std::reverse(Redecls.begin(), Redecls.end()); +# 118|-> return Redecls; +# 119| } +# 120| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10262:5: uninit_use_in_call: Using uninitialized value "((clang::APValue::Arr const *)(char const *)&Result.Data)->Elts" when calling "operator ()". +#10260| Result.MakeArray(FromValue.getArrayInitializedElts(), +#10261| FromValue.getArraySize()); +#10262|-> ImportLoop(((const APValue::Arr *)(const char *)&FromValue.Data)->Elts, +#10263| ((const APValue::Arr *)(const char *)&Result.Data)->Elts, +#10264| FromValue.getArrayInitializedElts()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10269:5: uninit_use_in_call: Using uninitialized value "((clang::APValue::StructData const *)(char const *)&Result.Data)->Elts" when calling "operator ()". +#10267| Result.MakeStruct(FromValue.getStructNumBases(), +#10268| FromValue.getStructNumFields()); +#10269|-> ImportLoop( +#10270| ((const APValue::StructData *)(const char *)&FromValue.Data)->Elts, +#10271| ((const APValue::StructData *)(const char *)&Result.Data)->Elts, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10279:7: uninit_use_in_call: Using uninitialized value "Result.Data" when calling "~APValue". +#10277| APValue ImpValue = importChecked(Err, FromValue.getUnionValue()); +#10278| if (Err) +#10279|-> return std::move(Err); +#10280| Result.setUnion(cast(ImpFDecl), ImpValue); +#10281| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10389:3: uninit_use_in_call: Using uninitialized value "Result.Data" when calling "Expected". +#10387| if (Err) +#10388| return std::move(Err); +#10389|-> return Result; +#10390| } +#10391| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Availability.cpp:24:3: var_decl: Declaring variable "Availability". +llvm-project-19.0.0.src/clang/lib/AST/Availability.cpp:45:3: uninit_use: Using uninitialized value "Availability". Field "Availability.Domain.InlineElts" is uninitialized. +# 43| Availability.UnconditionallyDeprecated = true; +# 44| } +# 45|-> return Availability; +# 46| } +# 47| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:3105:3: new_object: Calling single-object form of 'new': "new (Context->Allocate(Size, 8U)) clang::FunctionDecl::DefaultedOrDeletedFunctionInfo". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:3105:3: assign: Assigning: "Info" = "new (Context->Allocate(Size, 8U)) clang::FunctionDecl::DefaultedOrDeletedFunctionInfo". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:3110:3: callee_ptr_arith: Passing "Info" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3108| Info->HasDeletedMessage = DeletedMessage != nullptr; +# 3109| +# 3110|-> std::uninitialized_copy(Lookups.begin(), Lookups.end(), +# 3111| Info->getTrailingObjects()); +# 3112| if (DeletedMessage) + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5292:3: new_object: Calling single-object form of 'new': "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(Arg.size() + 1UL)) clang::PragmaCommentDecl(DC, CommentLoc, CommentKind)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5292:3: assign: Assigning: "PCD" = "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(Arg.size() + 1UL)) clang::PragmaCommentDecl(DC, CommentLoc, CommentKind)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5295:3: callee_ptr_arith: Passing "PCD" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 5293| new (C, DC, additionalSizeToAlloc(Arg.size() + 1)) +# 5294| PragmaCommentDecl(DC, CommentLoc, CommentKind); +# 5295|-> memcpy(PCD->getTrailingObjects(), Arg.data(), Arg.size()); +# 5296| PCD->getTrailingObjects()[Arg.size()] = '\0'; +# 5297| return PCD; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5314:3: new_object: Calling single-object form of 'new': "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(ValueStart + Value.size() + 1UL)) clang::PragmaDetectMismatchDecl(DC, Loc, ValueStart)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5314:3: assign: Assigning: "PDMD" = "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(ValueStart + Value.size() + 1UL)) clang::PragmaDetectMismatchDecl(DC, Loc, ValueStart)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5317:3: callee_ptr_arith: Passing "PDMD" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 5315| new (C, DC, additionalSizeToAlloc(ValueStart + Value.size() + 1)) +# 5316| PragmaDetectMismatchDecl(DC, Loc, ValueStart); +# 5317|-> memcpy(PDMD->getTrailingObjects(), Name.data(), Name.size()); +# 5318| PDMD->getTrailingObjects()[Name.size()] = '\0'; +# 5319| memcpy(PDMD->getTrailingObjects() + ValueStart, Value.data(), + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/DeclBase.cpp:109:5: new_object: Calling single-object form of 'new': "new (Buffer) clang::Module *ParentModule". +llvm-project-19.0.0.src/clang/lib/AST/DeclBase.cpp:109:5: ptr_arith: Using "new (Buffer) clang::Module *ParentModule" as an array. This might corrupt or misinterpret adjacent memory locations. +# 107| auto *ParentModule = +# 108| Parent ? cast(Parent)->getOwningModule() : nullptr; +# 109|-> return new (Buffer) Module*(ParentModule) + 1; +# 110| } +# 111| return ::operator new(Size + Extra, Ctx); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3227:3: new_object: Calling single-object form of 'new': "new (C, ID, Extra) clang::UsingPackDecl(NULL, NULL, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3227:3: assign: Assigning: "Result" = "new (C, ID, Extra) clang::UsingPackDecl(NULL, NULL, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3230:3: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3228| new (C, ID, Extra) UsingPackDecl(nullptr, nullptr, std::nullopt); +# 3229| Result->NumExpansions = NumExpansions; +# 3230|-> auto *Trail = Result->getTrailingObjects(); +# 3231| for (unsigned I = 0; I != NumExpansions; ++I) +# 3232| new (Trail + I) NamedDecl*(nullptr); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3375:3: new_object: Calling single-object form of 'new': "new (C, ID, Extra) clang::DecompositionDecl(C, NULL, clang::SourceLocation(), clang::SourceLocation(), clang::QualType(), NULL, (clang::StorageClass)0, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3375:3: assign: Assigning: "Result" = "new (C, ID, Extra) clang::DecompositionDecl(C, NULL, clang::SourceLocation(), clang::SourceLocation(), clang::QualType(), NULL, (clang::StorageClass)0, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3380:3: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3378| // Set up and clean out the bindings array. +# 3379| Result->NumBindings = NumBindings; +# 3380|-> auto *Trail = Result->getTrailingObjects(); +# 3381| for (unsigned I = 0; I != NumBindings; ++I) +# 3382| new (Trail + I) BindingDecl*(nullptr); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3497:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), 0U, 4U)". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3497:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 3495| using llvm::APInt; +# 3496| using llvm::APSInt; +# 3497|-> APVal = APValue(APValue::UninitStruct(), 0, 4); +# 3498| APVal.getStructField(0) = APValue(APSInt(APInt(32, PartVal.Part1), true)); +# 3499| APVal.getStructField(1) = APValue(APSInt(APInt(16, PartVal.Part2), true)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3501:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 8U, 8U)". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3501:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 3499| APVal.getStructField(1) = APValue(APSInt(APInt(16, PartVal.Part2), true)); +# 3500| APVal.getStructField(2) = APValue(APSInt(APInt(16, PartVal.Part3), true)); +# 3501|-> APValue &Arr = APVal.getStructField(3) = +# 3502| APValue(APValue::UninitArray(), 8, 8); +# 3503| for (unsigned I = 0; I != 8; ++I) { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2088:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::ImplicitCastExpr(T, Kind, Operand, PathSize, FPO, VK)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2088:3: assign: Assigning: "E" = "new (Buffer) clang::ImplicitCastExpr(T, Kind, Operand, PathSize, FPO, VK)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2091:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2089| new (Buffer) ImplicitCastExpr(T, Kind, Operand, PathSize, FPO, VK); +# 2090| if (PathSize) +# 2091|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 2092| E->getTrailingObjects()); +# 2093| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2115:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CStyleCastExpr(T, VK, K, Op, PathSize, FPO, WrittenTy, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2115:3: assign: Assigning: "E" = "new (Buffer) clang::CStyleCastExpr(T, VK, K, Op, PathSize, FPO, WrittenTy, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2118:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2116| new (Buffer) CStyleCastExpr(T, VK, K, Op, PathSize, FPO, WrittenTy, L, R); +# 2117| if (PathSize) +# 2118|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 2119| E->getTrailingObjects()); +# 2120| return E; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2347:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2345| clang::Preprocessor::processPathForFileMacro(Path, Ctx.getLangOpts(), +# 2346| Ctx.getTargetInfo()); +# 2347|-> Value.getStructField(F->getFieldIndex()) = MakeStringLiteral(Path); +# 2348| } else if (Name == "_M_function_name") { +# 2349| // Note: this emits the PrettyFunction name -- different than what + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2352:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2350| // __builtin_FUNCTION() above returns! +# 2351| const auto *CurDecl = dyn_cast(Context); +# 2352|-> Value.getStructField(F->getFieldIndex()) = MakeStringLiteral( +# 2353| CurDecl && !isa(CurDecl) +# 2354| ? StringRef(PredefinedExpr::ComputeName( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2359:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2357| } else if (Name == "_M_line") { +# 2358| llvm::APSInt IntVal = Ctx.MakeIntValue(PLoc.getLine(), F->getType()); +# 2359|-> Value.getStructField(F->getFieldIndex()) = APValue(IntVal); +# 2360| } else if (Name == "_M_column") { +# 2361| llvm::APSInt IntVal = Ctx.MakeIntValue(PLoc.getColumn(), F->getType()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2362:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2360| } else if (Name == "_M_column") { +# 2361| llvm::APSInt IntVal = Ctx.MakeIntValue(PLoc.getColumn(), F->getType()); +# 2362|-> Value.getStructField(F->getFieldIndex()) = APValue(IntVal); +# 2363| } +# 2364| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:721:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXStaticCastExpr(T, VK, K, Op, PathSize, WrittenTy, FPO, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:721:3: assign: Assigning: "E" = "new (Buffer) clang::CXXStaticCastExpr(T, VK, K, Op, PathSize, WrittenTy, FPO, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:724:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 722| FPO, L, RParenLoc, AngleBrackets); +# 723| if (PathSize) +# 724|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 725| E->getTrailingObjects()); +# 726| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:748:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXDynamicCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:748:3: assign: Assigning: "E" = "new (Buffer) clang::CXXDynamicCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:752:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 750| RParenLoc, AngleBrackets); +# 751| if (PathSize) +# 752|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 753| E->getTrailingObjects()); +# 754| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:811:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXReinterpretCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:811:3: assign: Assigning: "E" = "new (Buffer) clang::CXXReinterpretCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:815:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 813| RParenLoc, AngleBrackets); +# 814| if (PathSize) +# 815|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 816| E->getTrailingObjects()); +# 817| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:860:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXFunctionalCastExpr(T, VK, Written, K, Op, PathSize, FPO, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:860:3: assign: Assigning: "E" = "new (Buffer) clang::CXXFunctionalCastExpr(T, VK, Written, K, Op, PathSize, FPO, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:863:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 861| CXXFunctionalCastExpr(T, VK, Written, K, Op, PathSize, FPO, L, R); +# 862| if (PathSize) +# 863|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 864| E->getTrailingObjects()); +# 865| return E; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:1789:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(this->getDecl(), this->isDerivedMember(), llvm::ArrayRef(this->Path))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:1789:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 1787| +# 1788| void moveInto(APValue &V) const { +# 1789|-> V = APValue(getDecl(), isDerivedMember(), Path); +# 1790| } +# 1791| void setFrom(const APValue &V) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:2739:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Info.Ctx->getFloatTypeSemantics(DestType), 1UL)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:2739:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2737| QualType SrcType, const APSInt &Value, +# 2738| QualType DestType, APFloat &Result) { +# 2739|-> Result = APFloat(Info.Ctx.getFloatTypeSemantics(DestType), 1); +# 2740| llvm::RoundingMode RM = getActiveRoundingMode(Info, E); +# 2741| APFloat::opStatus St = Result.convertFromAPInt(Value, Value.isSigned(), RM); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3484:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), std::min(unsigned int const(S->getLength()), Elts), Elts)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3484:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 3482| +# 3483| unsigned Elts = CAT->getZExtSize(); +# 3484|-> Result = APValue(APValue::UninitArray(), +# 3485| std::min(S->getLength(), Elts), Elts); +# 3486| APSInt Value(Info.Ctx.getTypeSize(CharType), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3507:3: var_decl: Declaring variable "NewValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3509:5: uninit_use_in_call: Using uninitialized value "NewValue.Data" when calling "getArrayInitializedElt". +# 3507| APValue NewValue(APValue::UninitArray(), NewElts, Size); +# 3508| for (unsigned I = 0; I != OldElts; ++I) +# 3509|-> NewValue.getArrayInitializedElt(I).swap(Array.getArrayInitializedElt(I)); +# 3510| for (unsigned I = OldElts; I != NewElts; ++I) +# 3511| NewValue.getArrayInitializedElt(I) = Array.getArrayFiller(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4894:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), RD->getNumBases(), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4894:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 4892| return true; +# 4893| } +# 4894|-> Result = APValue(APValue::UninitStruct(), RD->getNumBases(), +# 4895| std::distance(RD->field_begin(), RD->field_end())); +# 4896| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4915:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, AT->getZExtSize())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4915:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 4913| if (auto *AT = +# 4914| dyn_cast_or_null(T->getAsArrayTypeUnsafe())) { +# 4915|-> Result = APValue(APValue::UninitArray(), 0, AT->getZExtSize()); +# 4916| if (Result.hasArrayFiller()) +# 4917| Success &= + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:6412:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), RD->getNumBases(), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:6412:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 6410| if (!Result.hasValue()) { +# 6411| if (!RD->isUnion()) +# 6412|-> Result = APValue(APValue::UninitStruct(), RD->getNumBases(), +# 6413| std::distance(RD->field_begin(), RD->field_end())); +# 6414| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7332:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Semantics, Val)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7332:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7330| const llvm::fltSemantics &Semantics = +# 7331| Info.Ctx.getFloatTypeSemantics(QualType(T, 0)); +# 7332|-> return APValue(APFloat(Semantics, Val)); +# 7333| } +# 7334| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7358:11: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "~APValue". +# 7356| BS.getType(), Layout.getBaseClassOffset(BaseDecl) + Offset); +# 7357| if (!SubObj) +# 7358|-> return std::nullopt; +# 7359| ResultVal.getStructBase(I) = *SubObj; +# 7360| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7359:9: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "getStructBase". +# 7357| if (!SubObj) +# 7358| return std::nullopt; +# 7359|-> ResultVal.getStructBase(I) = *SubObj; +# 7360| } +# 7361| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7371:9: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "~APValue". +# 7369| Info.FFDiag(BCE->getBeginLoc(), +# 7370| diag::note_constexpr_bit_cast_unsupported_bitfield); +# 7371|-> return std::nullopt; +# 7372| } +# 7373| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7383:9: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "~APValue". +# 7381| std::optional SubObj = visitType(FieldTy, FieldOffset); +# 7382| if (!SubObj) +# 7383|-> return std::nullopt; +# 7384| ResultVal.getStructField(FieldIdx) = *SubObj; +# 7385| ++FieldIdx; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7384:7: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "getStructField". +# 7382| if (!SubObj) +# 7383| return std::nullopt; +# 7384|-> ResultVal.getStructField(FieldIdx) = *SubObj; +# 7385| ++FieldIdx; +# 7386| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7406:5: var_decl: Declaring variable "ArrayValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7411:9: uninit_use_in_call: Using uninitialized value "ArrayValue.Data" when calling "~APValue". +# 7409| visitType(Ty->getElementType(), Offset + I * ElementWidth); +# 7410| if (!ElementValue) +# 7411|-> return std::nullopt; +# 7412| ArrayValue.getArrayInitializedElt(I) = std::move(*ElementValue); +# 7413| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7406:5: var_decl: Declaring variable "ArrayValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7412:7: uninit_use_in_call: Using uninitialized value "ArrayValue.Data" when calling "getArrayInitializedElt". +# 7410| if (!ElementValue) +# 7411| return std::nullopt; +# 7412|-> ArrayValue.getArrayInitializedElt(I) = std::move(*ElementValue); +# 7413| } +# 7414| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10206:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), (CD ? CD->getNumBases() : 0U), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10206:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10204| assert(!RD->isUnion() && "Expected non-union class type"); +#10205| const CXXRecordDecl *CD = dyn_cast(RD); +#10206|-> Result = APValue(APValue::UninitStruct(), CD ? CD->getNumBases() : 0, +#10207| std::distance(RD->field_begin(), RD->field_end())); +#10208| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10367:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), (CXXRD ? CXXRD->getNumBases() : 0U), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10367:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10365| +#10366| if (!Result.hasValue()) +#10367|-> Result = APValue(APValue::UninitStruct(), CXXRD ? CXXRD->getNumBases() : 0, +#10368| std::distance(RD->field_begin(), RD->field_end())); +#10369| unsigned ElementNo = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10550:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), 0U, 2U)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10550:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10548| +#10549| // FIXME: What if the initializer_list type has base classes, etc? +#10550|-> Result = APValue(APValue::UninitStruct(), 0, 2); +#10551| Array.moveInto(Result.getStructField(0)); +#10552| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10590:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), 0U, NumFields)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10590:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10588| "fields within the closure type"); +#10589| +#10590|-> Result = APValue(APValue::UninitStruct(), /*NumBases*/0, NumFields); +#10591| // Iterate through all the lambda's closure object's fields and initialize +#10592| // them. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10978:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10978:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#10976| if (SourceTy->isIntegerType()) { +#10977| if (DestTy->isRealFloatingType()) { +#10978|-> Result = APValue(APFloat(0.0)); +#10979| return HandleIntToFloatCast(Info, E, FPO, SourceTy, Original.getInt(), +#10980| DestTy, Result.getFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11116:11: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, 0U)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11116:11: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11114| // is represented as an ImplicitValueInitExpr of incomplete array +#11115| // type. In this case, the array has zero elements. +#11116|-> Result = APValue(APValue::UninitArray(), 0, 0); +#11117| return true; +#11118| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11123:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, CAT->getZExtSize())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11123:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11121| } +#11122| +#11123|-> Result = APValue(APValue::UninitArray(), 0, CAT->getZExtSize()); +#11124| if (!Result.hasArrayFiller()) +#11125| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11258:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), NumEltsToInit, NumElts)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11258:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11256| << NumEltsToInit << ".\n"); +#11257| +#11258|-> Result = APValue(APValue::UninitArray(), NumEltsToInit, NumElts); +#11259| +#11260| // If the array was previously zero-initialized, preserve the + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11307:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), Elements, Elements)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11307:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11305| +#11306| uint64_t Elements = CAT->getZExtSize(); +#11307|-> Result = APValue(APValue::UninitArray(), Elements, Elements); +#11308| +#11309| LValue Subobject = This; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11358:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, FinalSize)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11358:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11356| : APValue(); +#11357| +#11358|-> *Value = APValue(APValue::UninitArray(), 0, FinalSize); +#11359| if (FinalSize == 0) +#11360| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11378:7: var_decl: Declaring variable "NewValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11380:9: uninit_use_in_call: Using uninitialized value "NewValue.Data" when calling "getArrayInitializedElt". +#11378| APValue NewValue(APValue::UninitArray(), N, FinalSize); +#11379| for (unsigned I = 0; I < OldElts; ++I) +#11380|-> NewValue.getArrayInitializedElt(I).swap( +#11381| Value->getArrayInitializedElt(I)); +#11382| Value->swap(NewValue); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11606:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::APFixedPoint(V))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11606:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11604| assert(V.getWidth() == Info.Ctx.getIntWidth(E->getType()) && +#11605| "Invalid evaluation result."); +#11606|-> Result = APValue(V); +#11607| return true; +#11608| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13409:7: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13410:7: uninit_use_in_call: Using uninitialized value "RHS.Val.Data" when calling "swap". +#13408| const BinaryOperator *Bop = cast(job.E); +#13409| EvalResult RHS; +#13410|-> RHS.swap(Result); +#13411| Result.Failed = !VisitBinOp(job.LHSResult, RHS, Bop, Result.Val); +#13412| Queue.pop_back(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13492:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(LHS.FloatReal.getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13492:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#13490| if (LHSOK) { +#13491| LHS.makeComplexFloat(); +#13492|-> LHS.FloatImag = APFloat(LHS.FloatReal.getSemantics()); +#13493| } +#13494| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "LHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "LHS.FloatImag.U" when calling "~ComplexValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "LHS.FloatReal.U" when calling "~ComplexValue". +#13496| } +#13497| if (!LHSOK && !Info.noteFailure()) +#13498|-> return false; +#13499| +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "RHS.FloatImag.U" when calling "~ComplexValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "RHS.FloatReal.U" when calling "~ComplexValue". +#13496| } +#13497| if (!LHSOK && !Info.noteFailure()) +#13498|-> return false; +#13499| +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "LHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13502:9: uninit_use_in_call: Using uninitialized value "LHS.FloatImag.U" when calling "~ComplexValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13502:9: uninit_use_in_call: Using uninitialized value "LHS.FloatReal.U" when calling "~ComplexValue". +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { +#13501| if (!EvaluateFloat(E->getRHS(), RHS.FloatReal, Info) || !LHSOK) +#13502|-> return false; +#13503| RHS.makeComplexFloat(); +#13504| RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13502:9: uninit_use_in_call: Using uninitialized value "RHS.FloatImag.U" when calling "~ComplexValue". +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { +#13501| if (!EvaluateFloat(E->getRHS(), RHS.FloatReal, Info) || !LHSOK) +#13502|-> return false; +#13503| RHS.makeComplexFloat(); +#13504| RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13504:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(RHS.FloatReal.getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13504:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#13502| return false; +#13503| RHS.makeComplexFloat(); +#13504|-> RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); +#13505| } else if (!EvaluateComplex(E->getRHS(), RHS, Info) || !LHSOK) +#13506| return false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13525:5: var_decl: Declaring variable "LHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13529:7: uninit_use_in_call: Using uninitialized value "LHS.U" when calling "~APFloat". +#13527| bool LHSOK = EvaluateFloat(E->getRHS(), RHS, Info); +#13528| if (!LHSOK && !Info.noteFailure()) +#13529|-> return false; +#13530| +#13531| if (!EvaluateFloat(E->getLHS(), LHS, Info) || !LHSOK) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14751:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14754:7: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14752| if (!EvaluateFloat(E->getArg(0), Result, Info) || +#14753| !EvaluateFloat(E->getArg(1), RHS, Info)) +#14754|-> return false; +#14755| Result.copySign(RHS); +#14756| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14765:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14768:7: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14766| if (!EvaluateFloat(E->getArg(0), Result, Info) || +#14767| !EvaluateFloat(E->getArg(1), RHS, Info)) +#14768|-> return false; +#14769| // When comparing zeroes, return +0.0 if one of the zeroes is positive. +#14770| if (Result.isZero() && RHS.isZero() && Result.isNegative()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14783:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14786:7: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14784| if (!EvaluateFloat(E->getArg(0), Result, Info) || +#14785| !EvaluateFloat(E->getArg(1), RHS, Info)) +#14786|-> return false; +#14787| // When comparing zeroes, return -0.0 if one of the zeroes is negative. +#14788| if (Result.isZero() && RHS.isZero() && RHS.isNegative()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14844:3: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14847:5: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14845| bool LHSOK = EvaluateFloat(E->getLHS(), Result, Info); +#14846| if (!LHSOK && !Info.noteFailure()) +#14847|-> return false; +#14848| return EvaluateFloat(E->getRHS(), RHS, Info) && LHSOK && +#14849| handleFloatFloatBinOp(Info, E, Result, E->getOpcode(), RHS); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14964:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Imag->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14964:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#14962| return false; +#14963| +#14964|-> Result.FloatReal = APFloat(Imag.getSemantics()); +#14965| return true; +#14966| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15056:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Real->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15056:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15054| +#15055| Result.makeComplexFloat(); +#15056|-> Result.FloatImag = APFloat(Real.getSemantics()); +#15057| return true; +#15058| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15144:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Real->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15144:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15142| if (LHSOK) { +#15143| Result.makeComplexFloat(); +#15144|-> Result.FloatImag = APFloat(Real.getSemantics()); +#15145| } +#15146| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15159:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Real->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15159:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15157| return false; +#15158| RHS.makeComplexFloat(); +#15159|-> RHS.FloatImag = APFloat(Real.getSemantics()); +#15160| } else if (!EvaluateComplex(E->getRHS(), RHS, Info) || !LHSOK) +#15161| return false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15317:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(A->getSemantics(), (A->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15317:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15315| } else if ((A.isInfinity() || B.isInfinity()) && C.isFinite() && +#15316| D.isFinite()) { +#15317|-> A = APFloat::copySign( +#15318| APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); +#15319| B = APFloat::copySign( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15319:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(B->getSemantics(), (B->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15319:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15317| A = APFloat::copySign( +#15318| APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); +#15319|-> B = APFloat::copySign( +#15320| APFloat(B.getSemantics(), B.isInfinity() ? 1 : 0), B); +#15321| ResR = APFloat::getInf(ResR.getSemantics()) * (A * C + B * D); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15324:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(C->getSemantics(), (C->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15324:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15322| ResI = APFloat::getInf(ResI.getSemantics()) * (B * C - A * D); +#15323| } else if (MaxCD.isInfinity() && A.isFinite() && B.isFinite()) { +#15324|-> C = APFloat::copySign( +#15325| APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); +#15326| D = APFloat::copySign( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15326:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(D->getSemantics(), (D->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15326:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15324| C = APFloat::copySign( +#15325| APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); +#15326|-> D = APFloat::copySign( +#15327| APFloat(D.getSemantics(), D.isInfinity() ? 1 : 0), D); +#15328| ResR = APFloat::getZero(ResR.getSemantics()) * (A * C + B * D); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:123:5: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:124:5: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromAPInt". +# 122| Floating &Result) { +# 123| APFloat F = APFloat(Sem); +# 124|-> APFloat::opStatus Status = F.convertFromAPInt(Val, Val.isSigned(), RM); +# 125| Result = Floating(F); +# 126| return Status; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:135:5: temporary: Creating temporary of type "clang::interp::APFloat" in "clang::interp::APFloat(Sem, API)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:135:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 133| llvm::LoadIntFromMemory(API, (const uint8_t *)Buff, Size / 8); +# 134| +# 135|-> return Floating(APFloat(Sem, API)); +# 136| } +# 137| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2162:3: extract: Calling "get" which extracts wrapped state from local "NewFrame". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2162:3: escape: The internal representation of local "NewFrame" escapes into "S.Current", but is destroyed when it exits scope. +# 2160| auto NewFrame = std::make_unique(S, Func, OpPC, VarArgSize); +# 2161| InterpFrame *FrameBefore = S.Current; +# 2162|-> S.Current = NewFrame.get(); +# 2163| +# 2164| APValue CallResult; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2169:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2169:5: leaked_storage: Ignoring storage allocated by "NewFrame.release()" leaks it. +# 2167| // have a caller set. +# 2168| if (Interpret(S, CallResult)) { +# 2169|-> NewFrame.release(); // Frame was delete'd already. +# 2170| assert(S.Current == FrameBefore); +# 2171| return true; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2213:3: extract: Calling "get" which extracts wrapped state from local "NewFrame". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2213:3: escape: The internal representation of local "NewFrame" escapes into "S.Current", but is destroyed when it exits scope. +# 2211| auto NewFrame = std::make_unique(S, Func, OpPC, VarArgSize); +# 2212| InterpFrame *FrameBefore = S.Current; +# 2213|-> S.Current = NewFrame.get(); +# 2214| +# 2215| APValue CallResult; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2220:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2220:5: leaked_storage: Ignoring storage allocated by "NewFrame.release()" leaks it. +# 2218| // have a caller set. +# 2219| if (Interpret(S, CallResult)) { +# 2220|-> NewFrame.release(); // Frame was delete'd already. +# 2221| assert(S.Current == FrameBefore); +# 2222| return true; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2279:3: extract: Calling "get" which extracts wrapped state from local "NewFrame". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2279:3: escape: The internal representation of local "NewFrame" escapes into "S.Current", but is destroyed when it exits scope. +# 2277| +# 2278| InterpFrame *FrameBefore = S.Current; +# 2279|-> S.Current = NewFrame.get(); +# 2280| +# 2281| if (InterpretBuiltin(S, PC, Func, CE)) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2282:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2282:5: leaked_storage: Ignoring storage allocated by "NewFrame.release()" leaks it. +# 2280| +# 2281| if (InterpretBuiltin(S, PC, Func, CE)) { +# 2282|-> NewFrame.release(); +# 2283| return true; +# 2284| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpShared.cpp:18:3: var_decl: Declaring variable "NonNullArgs". +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpShared.cpp:20:5: uninit_use: Using uninitialized value "NonNullArgs". Field "NonNullArgs.Bits.InlineElts" is uninitialized. +# 18| llvm::BitVector NonNullArgs; +# 19| if (!F) +# 20|-> return NonNullArgs; +# 21| +# 22| assert(F); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpStack.h:49:5: move: "*Ptr" is moved (indicated by "std::move(Ptr)"). +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpStack.h:50:5: use_after_move: "*Ptr" is used after it has been already moved. +# 48| T *Ptr = &peekInternal(); +# 49| T Value = std::move(*Ptr); +# 50|-> Ptr->~T(); +# 51| shrink(aligned_size()); +# 52| return Value; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:358:9: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), NB, NF)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:358:9: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 356| unsigned NV = Ptr.isBaseClass() ? 0 : Record->getNumVirtualBases(); +# 357| +# 358|-> R = APValue(APValue::UninitStruct(), NB, NF); +# 359| +# 360| for (unsigned I = 0; I < NF; ++I) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:391:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, 0U)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:391:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 389| +# 390| if (Ty->isIncompleteArrayType()) { +# 391|-> R = APValue(APValue::UninitArray(), 0, 0); +# 392| return true; +# 393| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:398:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue((clang::APValue::UninitArray)clang::APValue::UninitArray({}), NumElems, NumElems)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:398:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 396| const size_t NumElems = Ptr.getNumElems(); +# 397| QualType ElemTy = AT->getElementType(); +# 398|-> R = APValue(APValue::UninitArray{}, NumElems, NumElems); +# 399| +# 400| bool Ok = true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:5553:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloat(Imag->getValue()).getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:5553:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5551| dyn_cast(IE->getSubExpr())) { +# 5552| // Mangle a floating-point zero of the appropriate type. +# 5553|-> mangleFloat(llvm::APFloat(Imag->getValue().getSemantics())); +# 5554| Out << '_'; +# 5555| mangleFloat(Imag->getValue()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:6085:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(D, false, llvm::ArrayRef())". +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:6085:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 6083| if (D->isCXXInstanceMember()) +# 6084| // Simple pointer-to-member with no conversion. +# 6085|-> Value = APValue(D, /*IsDerivedMember=*/false, /*Path=*/{}); +# 6086| else if (D->getType()->isArrayType() && +# 6087| Ctx.hasSimilarType(Ctx.getDecayedType(D->getType()), + +Error: USE_AFTER_FREE (CWE-416): +llvm-project-19.0.0.src/clang/lib/AST/NestedNameSpecifier.cpp:538:5: freed_arg: "free" frees "this->Buffer". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/NestedNameSpecifier.cpp:558:3: deref_arg: Calling "Append" dereferences freed pointer "this->Buffer". +# 556| // Deep copy. +# 557| BufferSize = 0; +# 558|-> Append(Other.Buffer, Other.Buffer + Other.BufferSize, Buffer, BufferSize, +# 559| BufferCapacity); +# 560| return *this; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ODRDiagsEmitter.cpp:1199:9: var_decl: Declaring variable "ExpandedList". +llvm-project-19.0.0.src/clang/lib/AST/ODRDiagsEmitter.cpp:1208:9: uninit_use: Using uninitialized value "ExpandedList". Field "ExpandedList.InlineElts" is uninitialized. +# 1206| llvm::make_pointer_range(TA.getPackAsArray())); +# 1207| } +# 1208|-> return ExpandedList; +# 1209| }; +# 1210| llvm::SmallVector FirstExpandedList = + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:304:3: address_of: Taking address with "&this->Condition" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:304:3: ptr_arith: Using "&this->Condition" as an array. This might corrupt or misinterpret adjacent memory locations. +# 302| if (Stmt **C = getAddrOfExprAsWritten(getPreInitStmt())) +# 303| return child_range(C, C + 1); +# 304|-> return child_range(&Condition, &Condition + 1); +# 305| } +# 306| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:1654:3: new_object: Calling single-object form of 'new': "new (Mem) clang::OMPInitClause(InteropInfo.IsTarget, InteropInfo.IsTargetSync, StartLoc, LParenLoc, VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1UL)". +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:1654:3: assign: Assigning: "Clause" = "new (Mem) clang::OMPInitClause(InteropInfo.IsTarget, InteropInfo.IsTargetSync, StartLoc, LParenLoc, VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1UL)". +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:1658:3: callee_ptr_arith: Passing "Clause" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1656| VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1); +# 1657| Clause->setInteropVar(InteropVar); +# 1658|-> llvm::copy(InteropInfo.PreferTypes, Clause->getTrailingObjects() + 1); +# 1659| return Clause; +# 1660| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/PrintfFormatString.cpp:112:3: var_decl: Declaring variable "FS". +llvm-project-19.0.0.src/clang/lib/AST/PrintfFormatString.cpp:423:3: uninit_use_in_call: Using uninitialized value "FS". Field "FS.HasThousandsGrouping.position" is uninitialized when calling "SpecifierResult". +# 421| return !H.HandleInvalidPrintfConversionSpecifier(FS, Start, Len); +# 422| } +# 423|-> return PrintfSpecifierResult(Start, FS); +# 424| } +# 425| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:118:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 116| Result.Text = StringRef(CodeCompletionLocation, 0); +# 117| CodeCompletionLocation = nullptr; +# 118|-> return Result; +# 119| } +# 120| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:118:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 116| Result.Text = StringRef(CodeCompletionLocation, 0); +# 117| CodeCompletionLocation = nullptr; +# 118|-> return Result; +# 119| } +# 120| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:124:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 122| Result.Kind = TokenInfo::TK_Eof; +# 123| Result.Text = ""; +# 124|-> return Result; +# 125| } +# 126| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:124:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 122| Result.Kind = TokenInfo::TK_Eof; +# 123| Result.Text = ""; +# 124|-> return Result; +# 125| } +# 126| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:130:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 128| case '#': +# 129| Code = Code.drop_until([](char c) { return c == '\n'; }); +# 130|-> return getNextToken(); +# 131| case ',': +# 132| Result.Kind = TokenInfo::TK_Comma; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:184:13: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 182| Result.Text = Code.substr(0, TokenLength); +# 183| Code = Code.drop_front(TokenLength); +# 184|-> return Result; +# 185| } +# 186| if (TokenLength == Code.size() || !isAlphanumeric(Code[TokenLength])) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:184:13: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 182| Result.Text = Code.substr(0, TokenLength); +# 183| Code = Code.drop_front(TokenLength); +# 184|-> return Result; +# 185| } +# 186| if (TokenLength == Code.size() || !isAlphanumeric(Code[TokenLength])) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:210:5: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 208| +# 209| Result.Range.End = currentLocation(); +# 210|-> return Result; +# 211| } +# 212| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:210:5: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 208| +# 209| Result.Range.End = currentLocation(); +# 210|-> return Result; +# 211| } +# 212| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:473:3: var_decl: Declaring variable "EndToken". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:492:11: uninit_use_in_call: Using uninitialized value "EndToken.Value.Value" when calling "~TokenInfo". +# 490| Error->addError(CommaToken.Range, Error->ET_ParserNoComma) +# 491| << CommaToken.Text; +# 492|-> return false; +# 493| } +# 494| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:499:7: var_decl: Declaring variable "ArgValue". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:504:9: uninit_use_in_call: Using uninitialized value "ArgValue.Value.Value" when calling "~ParserValue". +# 502| if (Tokenizer->peekNextToken().Kind == TokenInfo::TK_CodeCompletion) { +# 503| addExpressionCompletions(); +# 504|-> return false; +# 505| } +# 506| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:499:7: var_decl: Declaring variable "ArgValue". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:525:9: uninit_use_in_call: Using uninitialized value "ArgValue.Value.Value" when calling "~ParserValue". +# 523| Error->ET_RegistryMatcherNotFound) +# 524| << NodeMatcherToken.Text; +# 525|-> return false; +# 526| } +# 527| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:473:3: var_decl: Declaring variable "EndToken". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:548:5: uninit_use_in_call: Using uninitialized value "EndToken.Value.Value" when calling "~TokenInfo". +# 546| if (EndToken.Kind == TokenInfo::TK_Eof) { +# 547| Error->addError(OpenToken.Range, Error->ET_ParserNoCloseParen); +# 548|-> return false; +# 549| } +# 550| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:641:3: var_decl: Declaring variable "EndToken". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:660:11: uninit_use_in_call: Using uninitialized value "EndToken.Value.Value" when calling "~TokenInfo". +# 658| Error->addError(CommaToken.Range, Error->ET_ParserNoComma) +# 659| << CommaToken.Text; +# 660|-> return false; +# 661| } +# 662| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/CloneDetection.cpp:381:7: var_decl: Declaring variable "NewGroup". +llvm-project-19.0.0.src/clang/lib/Analysis/CloneDetection.cpp:403:7: uninit_use_in_call: Using uninitialized value "NewGroup". Field "NewGroup.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 401| // We created a new clone group with matching hash codes and move it to +# 402| // the result vector. +# 403|-> Result.push_back(NewGroup); +# 404| } +# 405| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp:36:35: constructor_uses_global_object: The constructor of global object "DataflowLog[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DataflowLog[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| #include +# 35| +# 36|-> static llvm::cl::opt DataflowLog( +# 37| "dataflow-log", llvm::cl::Hidden, llvm::cl::ValueOptional, +# 38| llvm::cl::desc("Emit log of dataflow analysis. With no arg, writes textual " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/FlowSensitive/SimplifyConstraints.cpp:68:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Analysis/FlowSensitive/SimplifyConstraints.cpp:72:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 70| MemberIt != EquivalentAtoms.member_end(); ++MemberIt) +# 71| Result.push_back(*MemberIt); +# 72|-> return Result; +# 73| } +# 74| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/IssueHash.cpp:176:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/clang/lib/Analysis/IssueHash.cpp:182:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 180| llvm::MD5::stringifyResult(MD5Res, Res); +# 181| +# 182|-> return Res; +# 183| } +# 184| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/MacroExpansionContext.cpp:227:3: move: "TokenAsString" is moved (indicated by "std::move(TokenAsString)"). +llvm-project-19.0.0.src/clang/lib/Analysis/MacroExpansionContext.cpp:230:5: use_after_move: "TokenAsString" is used after it has been already moved. +# 228| ExpandedTokens.try_emplace(CurrExpansionLoc, std::move(TokenAsString)); +# 229| if (!Inserted) +# 230|-> It->getSecond().append(TokenAsString); +# 231| } +# 232| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/UninitializedValues.cpp:520:5: var_decl: Declaring variable "Use". +llvm-project-19.0.0.src/clang/lib/Analysis/UninitializedValues.cpp:524:7: uninit_use: Using uninitialized value "Use". Field "Use.UninitBranches.InlineElts" is uninitialized. +# 522| assert(isUninitialized(v)); +# 523| if (Use.getKind() == UninitUse::Always) +# 524|-> return Use; +# 525| +# 526| // If an edge which leads unconditionally to this use did not initialize + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/UnsafeBufferUsage.cpp:2808:3: var_decl: Declaring variable "FixItsSharedByParms". +llvm-project-19.0.0.src/clang/lib/Analysis/UnsafeBufferUsage.cpp:2822:3: uninit_use: Using uninitialized value "FixItsSharedByParms". Field "FixItsSharedByParms.InlineElts" is uninitialized. +# 2820| FixItsForVariable.erase(Member); +# 2821| } +# 2822|-> return FixItsSharedByParms; +# 2823| } +# 2824| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Basic/Diagnostic.cpp:820:7: address_of: Taking address with "&CodepointValue" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Basic/Diagnostic.cpp:820:7: assign: Assigning: "CpPtr" = "&CodepointValue". +llvm-project-19.0.0.src/clang/lib/Basic/Diagnostic.cpp:824:7: ptr_arith: Using "CpPtr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 822| const unsigned char *CodepointEnd = +# 823| Begin + llvm::getNumBytesForUTF8(*Begin); +# 824|-> llvm::ConversionResult Res = llvm::ConvertUTF8toUTF32( +# 825| &Begin, CodepointEnd, &CpPtr, CpPtr + 1, llvm::strictConversion); +# 826| (void)Res; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/Basic/Sanitizers.cpp:57:3: overrun-buffer-val: Overrunning buffer pointed to by "&this->maskLoToHigh[0]" of 16 bytes by passing it to a function which accesses it at byte offset 63. +# 55| +# 56| llvm::hash_code SanitizerMask::hash_value() const { +# 57|-> return llvm::hash_combine_range(&maskLoToHigh[0], &maskLoToHigh[kNumElem]); +# 58| } +# 59| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:23:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:27:5: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 25| : llvm::AMDGPU::parseArchR600(Proc); +# 26| if (ProcKind == llvm::AMDGPU::GK_NONE) +# 27|-> return Ret; +# 28| auto Features = T.isAMDGCN() ? llvm::AMDGPU::getArchAttrAMDGCN(ProcKind) +# 29| : llvm::AMDGPU::getArchAttrR600(ProcKind); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:23:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:34:3: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 32| if (Features & llvm::AMDGPU::FEATURE_XNACK) +# 33| Ret.push_back("xnack"); +# 34|-> return Ret; +# 35| } +# 36| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:103:22: constructor_uses_global_object: The constructor of global object "llvm::ClSanitizeOnOptimizerEarlyEP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClSanitizeOnOptimizerEarlyEP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| +# 102| // Experiment to move sanitizers earlier. +# 103|-> static cl::opt ClSanitizeOnOptimizerEarlyEP( +# 104| "sanitizer-early-opt-ep", cl::Optional, +# 105| cl::desc("Insert sanitizers on OptimizerEarlyEP.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "Allocator" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "fuzzer::TPC" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "scudo::RegionPageMap::Buffers" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:125:15: constructor_uses_global_object: The constructor of global object "llvm::ClRelinkBuiltinBitcodePostop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClRelinkBuiltinBitcodePostop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| +# 124| // Re-link builtin bitcodes after optimization +# 125|-> cl::opt ClRelinkBuiltinBitcodePostop( +# 126| "relink-builtin-bitcode-postop", cl::Optional, +# 127| cl::desc("Re-link builtin bitcodes after optimization.")); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBlocks.h:223:7: var_decl: Declaring variable "v". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBlocks.h:226:7: uninit_use: Using uninitialized value "v". Field "v.Offset" is uninitialized. +# 224| v.Data = reinterpret_cast(value); +# 225| v.Cap = Cap; +# 226|-> return v; +# 227| } +# 228| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBuiltin.cpp:17169:5: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBuiltin.cpp:17192:5: uninit_use: Using uninitialized value "Result". +#17190| Result = +#17191| StoreSubVec(1, NumBytes - Stored - 1, IsLE ? Stored : 15 - Stored); +#17192|-> return Result; +#17193| } +#17194| // Square root + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:386:3: var_decl: Declaring variable "argTypes". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:389:3: uninit_use: Using uninitialized value "argTypes". Field "argTypes.InlineElts" is uninitialized. +# 387| for (auto &arg : args) +# 388| argTypes.push_back(ctx.getCanonicalParamType(arg.Ty)); +# 389|-> return argTypes; +# 390| } +# 391| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:394:3: var_decl: Declaring variable "argTypes". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:397:3: uninit_use: Using uninitialized value "argTypes". Field "argTypes.InlineElts" is uninitialized. +# 395| for (auto &arg : args) +# 396| argTypes.push_back(ctx.getCanonicalParamType(arg->getType())); +# 397|-> return argTypes; +# 398| } +# 399| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:403:3: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:407:3: uninit_use: Using uninitialized value "result". Field "result.InlineElts" is uninitialized. +# 405| addExtParameterInfosForCall(result, proto, prefixArgs, totalArgs); +# 406| } +# 407|-> return result; +# 408| } +# 409| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:1062:7: overrun-local: Overrunning array of 1 8-byte elements at element index 1 (byte offset 15) by dereferencing pointer "&BS + 1". +# 1060| for (const CXXBaseSpecifier *BS : RExp->Bases) { +# 1061| // Perform a single step derived-to-base conversion. +# 1062|-> Address Base = +# 1063| GetAddressOfBaseClass(This, Ty->getAsCXXRecordDecl(), &BS, &BS + 1, +# 1064| /*NullCheckValue=*/false, SourceLocation()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:1119:7: overrun-local: Overrunning array of 1 8-byte elements at element index 1 (byte offset 15) by dereferencing pointer "&BS + 1". +# 1117| for (const CXXBaseSpecifier *BS : RExp->Bases) { +# 1118| // Perform a single step derived-to-base conversion. +# 1119|-> Address Base = +# 1120| GetAddressOfBaseClass(This, Ty->getAsCXXRecordDecl(), &BS, &BS + 1, +# 1121| /*NullCheckValue=*/false, SourceLocation()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:4821:3: var_decl: Declaring variable "BundleList". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:4823:3: uninit_use: Using uninitialized value "BundleList". Field "BundleList.InlineElts" is uninitialized. +# 4821| SmallVector BundleList; +# 4822| BundleList.emplace_back("funclet", CurrentFuncletPad); +# 4823|-> return BundleList; +# 4824| } +# 4825| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCleanup.cpp:166:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CodeGen::EHCleanupScope(IsNormalCleanup, IsEHCleanup, Size, this->BranchFixups.size(), this->InnermostNormalCleanup, this->InnermostEHScope)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCleanup.cpp:166:3: assign: Assigning: "Scope" = "new (Buffer) clang::CodeGen::EHCleanupScope(IsNormalCleanup, IsEHCleanup, Size, this->BranchFixups.size(), this->InnermostNormalCleanup, this->InnermostEHScope)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCleanup.cpp:190:3: callee_ptr_arith: Passing "Scope" to function "getCleanupBuffer" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 188| CGF->EmitSehCppScopeBegin(); +# 189| +# 190|-> return Scope->getCleanupBuffer(); +# 191| } +# 192| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCoroutine.cpp:557:3: var_decl: Declaring variable "BundleList". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCoroutine.cpp:562:3: uninit_use: Using uninitialized value "BundleList". Field "BundleList.InlineElts" is uninitialized. +# 560| BundleList.emplace_back("funclet", EHPad); +# 561| +# 562|-> return BundleList; +# 563| } +# 564| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1108:3: var_decl: Declaring variable "Identifier". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1112:5: uninit_use: Using uninitialized value "Identifier". Field "Identifier.InlineElts" is uninitialized. +# 1110| +# 1111| if (!needsTypeIdentifier(TD, CGM, TheCU)) +# 1112|-> return Identifier; +# 1113| if (const auto *RD = dyn_cast(TD)) +# 1114| if (RD->getDefinition()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1108:3: var_decl: Declaring variable "Identifier". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1117:9: uninit_use: Using uninitialized value "Identifier". Field "Identifier.InlineElts" is uninitialized. +# 1115| if (RD->isDynamicClass() && +# 1116| CGM.getVTableLinkage(RD) == llvm::GlobalValue::ExternalLinkage) +# 1117|-> return Identifier; +# 1118| +# 1119| // TODO: This is using the RTTI name. Is there a better way to get + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1108:3: var_decl: Declaring variable "Identifier". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1123:3: uninit_use: Using uninitialized value "Identifier". Field "Identifier.InlineElts" is uninitialized. +# 1121| llvm::raw_svector_ostream Out(Identifier); +# 1122| CGM.getCXXABI().getMangleContext().mangleCXXRTTIName(QualType(Ty, 0), Out); +# 1123|-> return Identifier; +# 1124| } +# 1125| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1326:3: var_decl: Declaring variable "SpecArgs". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1351:3: uninit_use: Using uninitialized value "SpecArgs". Field "SpecArgs.InlineElts" is uninitialized. +# 1349| SubstArgs = SubstArgs.drop_front(); +# 1350| } +# 1351|-> return SpecArgs; +# 1352| } +# 1353| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:57:28: constructor_uses_global_object: The constructor of global object "ClSanitizeDebugDeoptimization" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClSanitizeDebugDeoptimization" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| // Experiment to make sanitizers easier to debug +# 57|-> static llvm::cl::opt ClSanitizeDebugDeoptimization( +# 58| "ubsan-unique-traps", llvm::cl::Optional, +# 59| llvm::cl::desc("Deoptimize traps for UBSAN so there is 1 trap per check.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:63:28: constructor_uses_global_object: The constructor of global object "ClSanitizeGuardChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClSanitizeGuardChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| // TODO: Introduce frontend options to enabled per sanitizers, similar to +# 62| // `fsanitize-trap`. +# 63|-> static llvm::cl::opt ClSanitizeGuardChecks( +# 64| "ubsan-guard-checks", llvm::cl::Optional, +# 65| llvm::cl::desc("Guard UBSAN checks with `llvm.allow.ubsan.check()`.")); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1219:5: var_decl: Declaring variable "FVal". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1221:7: uninit_use_in_call: Using uninitialized value "FVal.U" when calling "changeSign". +# 1219| llvm::APFloat FVal(getContext().getFloatTypeSemantics(ElemTy), 1); +# 1220| if (!isInc) +# 1221|-> FVal.changeSign(); +# 1222| NextVal = llvm::ConstantFP::get(getLLVMContext(), FVal); +# 1223| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1219:5: var_decl: Declaring variable "FVal". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1222:5: uninit_use_in_call: Using uninitialized value "FVal.U" when calling "get". +# 1220| if (!isInc) +# 1221| FVal.changeSign(); +# 1222|-> NextVal = llvm::ConstantFP::get(getLLVMContext(), FVal); +# 1223| +# 1224| // Add the inc/dec to the real part. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6125:3: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6186:3: uninit_use: Using uninitialized value "result". Field "result.LV.LVType" is uninitialized. +# 6184| opaques[i].unbind(CGF); +# 6185| +# 6186|-> return result; +# 6187| } +# 6188| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6125:3: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6186:3: uninit_use: Using uninitialized value "result". Field "result.RV.IsVolatile" is uninitialized. +# 6184| opaques[i].unbind(CGF); +# 6185| +# 6186|-> return result; +# 6187| } +# 6188| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprCXX.cpp:264:3: var_decl: Declaring variable "TrivialAssignmentRHS". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprCXX.cpp:317:7: uninit_use: Using uninitialized value "TrivialAssignmentRHS". Field "TrivialAssignmentRHS.LVType" is uninitialized. +# 315| // emitting call arguments, in order to preserve TBAA information from +# 316| // the RHS. +# 317|-> LValue RHS = isa(CE) +# 318| ? TrivialAssignmentRHS +# 319| : EmitLValue(*CE->arg_begin()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:986:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(SrcSema, 1UL)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:986:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 984| // Find the largest value which is too small to represent (before +# 985| // truncation toward zero). +# 986|-> MinSrc.subtract(APFloat(SrcSema, 1), APFloat::rmTowardNegative); +# 987| +# 988| APSInt Max = APSInt::getMaxValue(Width, Unsigned); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:998:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(SrcSema, 1UL)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:998:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 996| // Find the smallest value which is too large to represent (before +# 997| // truncation toward zero). +# 998|-> MaxSrc.add(APFloat(SrcSema, 1), APFloat::rmTowardPositive); +# 999| +# 1000| // If we're converting from __half, convert the range to float to match + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:2810:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1f)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:2810:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2808| llvm::Instruction::BinaryOps op = +# 2809| isInc ? llvm::Instruction::FAdd : llvm::Instruction::FSub; +# 2810|-> llvm::Value *amt = llvm::ConstantFP::get( +# 2811| VMContext, llvm::APFloat(static_cast(1.0))); +# 2812| llvm::Value *old = + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:1342:3: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 1340| argVar->getType().getNonReferenceType(), VK_LValue, +# 1341| SourceLocation()); +# 1342|-> llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); +# 1343| args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); +# 1344| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:1386:3: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 1384| argVar->getType().getNonReferenceType(), VK_LValue, +# 1385| SourceLocation()); +# 1386|-> llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); +# 1387| args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); +# 1388| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:3136:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:3177:3: uninit_use: Using uninitialized value "result". +# 3175| opaques[i].unbind(CGF); +# 3176| +# 3177|-> return result; +# 3178| } +# 3179| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjCMac.cpp:1194:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjCMac.cpp:1203:5: uninit_use: Using uninitialized value "result". Field "result.InlineElts" is uninitialized. +# 1201| } +# 1202| +# 1203|-> return result; +# 1204| } +# 1205| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:376:7: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 374| VD->getType().getNonReferenceType(), VK_LValue, +# 375| C.getLocation()); +# 376|-> PrivScope.addPrivate(VD, CGF.EmitLValue(&DRE).getAddress(CGF)); +# 377| } +# 378| (void)PrivScope.Privatize(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:7504:5: var_decl: Declaring variable "ElementTypeSize" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:7567:5: uninit_use_in_call: Using uninitialized value "ElementTypeSize" when calling "get". +# 7565| auto *DI = DimSizes.begin() + 1; +# 7566| // Product of dimension. +# 7567|-> llvm::Value *DimProd = +# 7568| llvm::ConstantInt::get(CGF.CGM.Int64Ty, ElementTypeSize); +# 7569| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:11784:3: var_decl: Declaring variable "Checker". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:11792:3: uninit_use_in_call: Using uninitialized value "Checker.IVLVal". Field "Checker.IVLVal.LVType" is uninitialized when calling "getFoundData". +#11790| LValue IVLVal; +#11791| llvm::Function *FoundFn; +#11792|-> std::tie(FoundE, FoundD, UniqueDeclName, IVLVal, FoundFn) = +#11793| Checker.getFoundData(); +#11794| if (FoundFn != CGF.CurFn) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmt.cpp:922:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmt.cpp:945:7: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 943| if (HasEmptyBody && CondIsTrue) { +# 944| CurFn->removeFnAttr(llvm::Attribute::MustProgress); +# 945|-> return false; +# 946| } +# 947| return true; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:875:13: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 873| } else { +# 874| assert(!CE && "Expected non-constant firstprivate."); +# 875|-> OriginalLVal = EmitLValue(&DRE); +# 876| } +# 877| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:878:11: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 876| } +# 877| } else { +# 878|-> OriginalLVal = EmitLValue(&DRE); +# 879| } +# 880| QualType Type = VD->getType(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:1000:11: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 998| DeclRefExpr DRE(getContext(), const_cast(VD), true, +# 999| (*IRef)->getType(), VK_LValue, (*IRef)->getExprLoc()); +# 1000|-> MasterAddr = EmitLValue(&DRE).getAddress(*this); +# 1001| LocalDeclMap.erase(VD); +# 1002| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:1079:9: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 1077| CapturedStmtInfo->lookup(OrigVD) != nullptr, +# 1078| (*IRef)->getType(), VK_LValue, (*IRef)->getExprLoc()); +# 1079|-> PrivateScope.addPrivate(DestVD, EmitLValue(&DRE).getAddress(*this)); +# 1080| // Check if the variable is also a firstprivate: in this case IInit is +# 1081| // not generated. Initialization of this variable will happen in codegen + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:2213:7: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 2211| CapturedStmtInfo->lookup(OrigVD) != nullptr, +# 2212| (*IC)->getType(), VK_LValue, (*IC)->getExprLoc()); +# 2213|-> Address OrigAddr = EmitLValue(&DRE).getAddress(*this); +# 2214| CodeGenFunction::OMPPrivateScope VarScope(*this); +# 2215| VarScope.addPrivate(OrigVD, OrigAddr); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:2280:7: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 2278| LocalDeclMap.count(VD) || CapturedStmtInfo->lookup(VD), +# 2279| E->getType(), VK_LValue, E->getExprLoc()); +# 2280|-> (void)LoopScope.addPrivate(PrivateVD, EmitLValue(&DRE).getAddress(*this)); +# 2281| } else { +# 2282| (void)LoopScope.addPrivate(PrivateVD, VarEmission.getAllocatedAddress()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:2452:9: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 2450| /*RefersToEnclosingVariableOrCapture=*/false, +# 2451| (*IPC)->getType(), VK_LValue, (*IPC)->getExprLoc()); +# 2452|-> OrigAddr = EmitLValue(&DRE).getAddress(*this); +# 2453| } +# 2454| OMPPrivateScope VarScope(*this); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:3813:3: var_decl: Declaring variable "HasLastprivates" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:3853:3: uninit_use: Using uninitialized value "HasLastprivates". +# 3851| emitDispatchForLoopBounds); +# 3852| } +# 3853|-> return HasLastprivates; +# 3854| } +# 3855| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:4861:9: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 4859| Pair.second->getType(), VK_LValue, +# 4860| Pair.second->getExprLoc()); +# 4861|-> Scope.addPrivate(Pair.first, CGF.EmitLValue(&DRE).getAddress(CGF)); +# 4862| } +# 4863| for (const auto &Pair : PrivatePtrs) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:442:5: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:447:5: uninit_use: Using uninitialized value "R". Field "R" is uninitialized. +# 445| R.Addr = Addr; +# 446| assert(Addr.getType()->isPointerTy()); +# 447|-> return R; +# 448| } +# 449| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:488:5: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:493:5: uninit_use: Using uninitialized value "R". Field "R" is uninitialized. +# 491| LValueBaseInfo(AlignmentSource::Decl), TBAAAccessInfo()); +# 492| R.V = V; +# 493|-> return R; +# 494| } +# 495| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenABITypes.cpp:86:3: var_decl: Declaring variable "implicitArgs". +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenABITypes.cpp:93:3: uninit_use: Using uninitialized value "implicitArgs". Field "implicitArgs.Prefix.InlineElts" is uninitialized. +# 91| implicitArgs.Suffix.push_back(arg.Value); +# 92| } +# 93|-> return implicitArgs; +# 94| } +# 95| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenModule.cpp:82:28: constructor_uses_global_object: The constructor of global object "LimitedCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LimitedCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| using namespace CodeGen; +# 81| +# 82|-> static llvm::cl::opt LimitedCoverage( +# 83| "limited-coverage-experimental", llvm::cl::Hidden, +# 84| llvm::cl::desc("Emit limited coverage mapping information (experimental)")); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenModule.cpp:6514:3: var_decl: Declaring variable "EvalResult". +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenModule.cpp:6589:3: uninit_use_in_call: Using uninitialized value "EvalResult.Val.Data" when calling "~EvalResult". +# 6587| Entry = CV; +# 6588| +# 6589|-> return ConstantAddress(CV, Type, Align); +# 6590| } +# 6591| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenPGO.cpp:31:5: constructor_uses_global_object: The constructor of global object "EnableValueProfiling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableValueProfiling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static llvm::cl::opt +# 31|-> EnableValueProfiling("enable-value-profiling", +# 32| llvm::cl::desc("Enable value profiling"), +# 33| llvm::cl::Hidden, llvm::cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:36:5: constructor_uses_global_object: The constructor of global object "llvm::EnableSingleByteCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableSingleByteCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| namespace llvm { +# 35| cl::opt +# 36|-> EnableSingleByteCoverage("enable-single-byte-coverage", +# 37| llvm::cl::ZeroOrMore, +# 38| llvm::cl::desc("Enable single byte coverage"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:42:28: constructor_uses_global_object: The constructor of global object "EmptyLineCommentCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmptyLineCommentCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| } // namespace llvm +# 41| +# 42|-> static llvm::cl::opt EmptyLineCommentCoverage( +# 43| "emptyline-comment-coverage", +# 44| llvm::cl::desc("Emit emptylines and comment lines as skipped regions (only " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:48:21: constructor_uses_global_object: The constructor of global object "SystemHeadersCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SystemHeadersCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| llvm::cl::init(true), llvm::cl::Hidden); +# 47| +# 48|-> llvm::cl::opt SystemHeadersCoverage( +# 49| "system-headers-coverage", +# 50| llvm::cl::desc("Enable collecting coverage from system headers"), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:517:5: var_decl: Declaring variable "Filter". +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:541:5: uninit_use: Using uninitialized value "Filter". Field "Filter.Vector.InlineElts" is uninitialized. +# 539| SR.LineEnd, SR.ColumnEnd)); +# 540| } +# 541|-> return Filter; +# 542| } +# 543| }; + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:104:10: assign: Assigning: "ArgPtr" = "*__begin2". +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:105:7: set_unmanaged_raw_ptr: Function "AddSynthesizedArg" sets a smart pointer with "ArgPtr". +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:104:10: assign: Assigning: "ArgPtr" = "*__begin2". +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:105:7: multiple_init_smart_ptr: Function "AddSynthesizedArg" sets a smart pointer with "ArgPtr", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:105:7: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 103| // Add allocated arguments to the final DAL. +# 104| for (auto *ArgPtr : AllocatedArgs) +# 105|-> Entry->AddSynthesizedArg(ArgPtr); +# 106| } +# 107| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/Driver.cpp:5486:7: var_decl: Declaring variable "DevA". +llvm-project-19.0.0.src/clang/lib/Driver/Driver.cpp:5494:7: uninit_use: Using uninitialized value "DevA". Field "DevA.InlineElts" is uninitialized. +# 5492| DepA->getOffloadingDeviceKind())); +# 5493| }); +# 5494|-> return DevA; +# 5495| } +# 5496| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:68:5: constructor_uses_global_object: The constructor of global object "ClangOffloadBundlerTimerGroup" itself makes use of global object "TimerLock" defined in another compilation unit. The order of construction is unspecified, so "ClangOffloadBundlerTimerGroup" might be created before "TimerLock" is available. +# 66| +# 67| static llvm::TimerGroup +# 68|-> ClangOffloadBundlerTimerGroup("Clang Offload Bundler Timer Group", +# 69| "Timer group for clang offload bundler"); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:68:5: destructor_uses_global_object: The destructor of global object "ClangOffloadBundlerTimerGroup" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "ClangOffloadBundlerTimerGroup" might be called after "fuzzer::TPC" has already been destroyed. +# 66| +# 67| static llvm::TimerGroup +# 68|-> ClangOffloadBundlerTimerGroup("Clang Offload Bundler Timer Group", +# 69| "Timer group for clang offload bundler"); +# 70| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:491:5: var_decl: Declaring variable "File". +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:495:5: uninit_use_in_call: Using uninitialized value "File". Field "File.InlineElts" is uninitialized when calling "push_front". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 493| sys::fs::createTemporaryFile("clang-offload-bundler", "tmp", File)) +# 494| return createFileError(File, EC); +# 495|-> Files.push_front(File); +# 496| +# 497| if (Contents) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp:172:3: var_decl: Declaring variable "BCLibs". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp:177:3: uninit_use: Using uninitialized value "BCLibs". Field "BCLibs.InlineElts" is uninitialized. +# 175| BCLibs.emplace_back(BCLib); +# 176| +# 177|-> return BCLibs; +# 178| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/CommonArgs.cpp:330:3: var_decl: Declaring variable "UnifiedFeatures". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/CommonArgs.cpp:337:3: uninit_use: Using uninitialized value "UnifiedFeatures". Field "UnifiedFeatures.InlineElts" is uninitialized. +# 335| } +# 336| +# 337|-> return UnifiedFeatures; +# 338| } +# 339| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:287:3: var_decl: Declaring variable "Paths". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:308:3: uninit_use: Using uninitialized value "Paths". Field "Paths.InlineElts" is uninitialized. +# 306| Paths.push_back(P.c_str()); +# 307| +# 308|-> return Paths; +# 309| } +# 310| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:408:3: var_decl: Declaring variable "Paths". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:412:3: uninit_use: Using uninitialized value "Paths". Field "Paths.InlineElts" is uninitialized. +# 410| Paths.push_back( +# 411| makePath({getDriver().ResourceDir, "lib", getMultiarchTriple(Triple)})); +# 412|-> return Paths; +# 413| } +# 414| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/Types.cpp:387:3: var_decl: Declaring variable "P". +llvm-project-19.0.0.src/clang/lib/Driver/Types.cpp:393:3: uninit_use: Using uninitialized value "P". Field "P.InlineElts" is uninitialized. +# 391| P.push_back(static_cast(I)); +# 392| assert(P.size() <= phases::MaxNumberOfPhases && "Too many phases in list"); +# 393|-> return P; +# 394| } +# 395| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:187:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:193:3: uninit_use_in_call: Using uninitialized value "data". Field "data.Length" is uninitialized when calling "push_back". +# 191| data.Text = text.copy(StrAlloc); +# 192| data.BeforePrev = beforePreviousInsertions; +# 193|-> CachedEdits.push_back(data); +# 194| } +# 195| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:217:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:222:3: uninit_use_in_call: Using uninitialized value "data". Field "data.BeforePrev" is uninitialized when calling "push_back". +# 220| data.Offset = Offs; +# 221| data.Length = Len; +# 222|-> CachedEdits.push_back(data); +# 223| } +# 224| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:103:3: tainted_data_return: Called function "Text.find_last_of(clang::format::Blanks, MaxSplitBytes)", and a possible return value is known to be less than zero. +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:103:3: assign: Assigning: "SpaceOffset" = "Text.find_last_of(clang::format::Blanks, MaxSplitBytes)". +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:130:5: overflow: The expression "SpaceOffset + 1UL" is considered to have possibly overflowed. +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:130:5: overflow_sink: "SpaceOffset + 1UL", which might have overflowed, is passed to "Text[SpaceOffset + 1UL]". +# 128| +# 129| // Avoid ever breaking before a @tag or a { in JavaScript. +# 130|-> if (Style.isJavaScript() && SpaceOffset + 1 < Text.size() && +# 131| (Text[SpaceOffset + 1] == '{' || Text[SpaceOffset + 1] == '@')) { +# 132| SpaceOffset = Text.find_last_of(Blanks, SpaceOffset); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:691:28: constructor_uses_global_object: The constructor of global object "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" might be created before "Allocator" is available. +# 689| +# 690| const llvm::StringSet<> +# 691|-> BreakableBlockComment::ContentIndentingJavadocAnnotations = { +# 692| "@param", "@return", "@returns", "@throws", "@type", "@template", +# 693| "@see", "@deprecated", "@define", "@exports", "@mods", "@private", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:691:28: constructor_uses_global_object: The constructor of global object "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" might be created before "fuzzer::TPC" is available. +# 689| +# 690| const llvm::StringSet<> +# 691|-> BreakableBlockComment::ContentIndentingJavadocAnnotations = { +# 692| "@param", "@return", "@returns", "@throws", "@type", "@template", +# 693| "@see", "@deprecated", "@define", "@exports", "@mods", "@private", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:691:28: constructor_uses_global_object: The constructor of global object "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" might be created before "scudo::RegionPageMap::Buffers" is available. +# 689| +# 690| const llvm::StringSet<> +# 691|-> BreakableBlockComment::ContentIndentingJavadocAnnotations = { +# 692| "@param", "@return", "@returns", "@throws", "@type", "@template", +# 693| "@see", "@deprecated", "@define", "@exports", "@mods", "@private", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Format/Format.cpp:3842:3: var_decl: Declaring variable "LangOpts". +llvm-project-19.0.0.src/clang/lib/Format/Format.cpp:3868:3: uninit_use: Using uninitialized value "LangOpts". Field "LangOpts.GPUDefaultStream" is uninitialized. +# 3866| LangOpts.DeclSpecKeyword = 1; // To get __declspec. +# 3867| LangOpts.C99 = 1; // To get kw_restrict for non-underscore-prefixed restrict. +# 3868|-> return LangOpts; +# 3869| } +# 3870| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/FormatTokenLexer.cpp:397:43: constructor_uses_global_object: The constructor of global object "clang::format::FormatTokenLexer::CSharpAttributeTargets" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::format::FormatTokenLexer::CSharpAttributeTargets" might be created before "Allocator" is available. +# 395| // Valid C# attribute targets: +# 396| // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets +# 397|-> const llvm::StringSet<> FormatTokenLexer::CSharpAttributeTargets = { +# 398| "assembly", "module", "field", "event", "method", +# 399| "param", "property", "return", "type", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/FormatTokenLexer.cpp:397:43: constructor_uses_global_object: The constructor of global object "clang::format::FormatTokenLexer::CSharpAttributeTargets" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::format::FormatTokenLexer::CSharpAttributeTargets" might be created before "fuzzer::TPC" is available. +# 395| // Valid C# attribute targets: +# 396| // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets +# 397|-> const llvm::StringSet<> FormatTokenLexer::CSharpAttributeTargets = { +# 398| "assembly", "module", "field", "event", "method", +# 399| "param", "property", "return", "type", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/FormatTokenLexer.cpp:397:43: constructor_uses_global_object: The constructor of global object "clang::format::FormatTokenLexer::CSharpAttributeTargets" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::format::FormatTokenLexer::CSharpAttributeTargets" might be created before "scudo::RegionPageMap::Buffers" is available. +# 395| // Valid C# attribute targets: +# 396| // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets +# 397|-> const llvm::StringSet<> FormatTokenLexer::CSharpAttributeTargets = { +# 398| "assembly", "module", "field", "event", "method", +# 399| "param", "property", "return", "type", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Format/SortJavaScriptImports.cpp:266:5: var_decl: Declaring variable "ReferencesSorted". +llvm-project-19.0.0.src/clang/lib/Format/SortJavaScriptImports.cpp:284:5: uninit_use: Using uninitialized value "ReferencesSorted". Field "ReferencesSorted.InlineElts" is uninitialized. +# 282| SortChunk.end()); +# 283| } +# 284|-> return ReferencesSorted; +# 285| } +# 286| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/ASTUnit.cpp:711:7: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/ASTUnit.cpp:711:7: leaked_storage: Failing to save or free storage allocated by "this->OwningPreviousClient.release()" leaks it. +# 709| ~CaptureDroppedDiagnostics() { +# 710| if (Diags.getClient() == &Client) +# 711|-> Diags.setClient(PreviousClient, !!OwningPreviousClient.release()); +# 712| } +# 713| }; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:453:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:453:3: var_assign: Assigning: "HeaderInfo" = storage returned from "new clang::HeaderSearch(std::shared_ptr(this->getHeaderSearchOptsPtr()), this->getSourceManager(), this->getDiagnostics(), this->getLangOpts(), this->getTarget())". +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:456:3: noescape: Resource "HeaderInfo" is not freed or pointed-to in "make_shared". +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:539:1: leaked_storage: Variable "HeaderInfo" going out of scope leaks the storage it points to. +# 537| /*ShowDepth=*/true, /*MSStyle=*/true); +# 538| } +# 539|-> } +# 540| +# 541| std::string CompilerInstance::getSpecificModuleCachePath(StringRef ModuleHash) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInvocation.cpp:1400:3: var_decl: Declaring variable "Values". +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInvocation.cpp:1402:3: uninit_use: Using uninitialized value "Values". Field "Values.InlineElts" is uninitialized. +# 1400| SmallVector Values; +# 1401| serializeSanitizerSet(S, Values); +# 1402|-> return Values; +# 1403| } +# 1404| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/Frontend/FrontendAction.cpp:1120:5: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-project-19.0.0.src/clang/lib/Frontend/FrontendAction.cpp:1120:5: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 1118| CI.resetAndLeakSema(); +# 1119| CI.resetAndLeakASTContext(); +# 1120|-> llvm::BuryPointer(CI.takeASTConsumer().get()); +# 1121| } else { +# 1122| CI.setSema(nullptr); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Frontend/LayoutOverrideSource.cpp:49:3: var_decl: Declaring variable "CurrentLayout". +llvm-project-19.0.0.src/clang/lib/Frontend/LayoutOverrideSource.cpp:62:9: uninit_use_in_call: Using uninitialized value "CurrentLayout.Align" when calling "operator =". +llvm-project-19.0.0.src/clang/lib/Frontend/LayoutOverrideSource.cpp:62:9: uninit_use_in_call: Using uninitialized value "CurrentLayout.Size" when calling "operator =". +# 60| // Flush the last type/layout, if there is one. +# 61| if (!CurrentType.empty()) +# 62|-> Layouts[CurrentType] = CurrentLayout; +# 63| CurrentLayout = Layout(); +# 64| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:991:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:991:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "MicrosoftExtHandler" with "new ::UnknownPragmaHandler("#pragma", Callbacks, PP->getLangOpts().MicrosoftExt)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1004:3: get_raw_ptr: Function "get" returns a pointer managed by "MicrosoftExtHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1004:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "MicrosoftExtHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1004:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1002| /*RequireTokenExpansion=*/PP.getLangOpts().MicrosoftExt)); +# 1003| +# 1004|-> PP.AddPragmaHandler(MicrosoftExtHandler.get()); +# 1005| PP.AddPragmaHandler("GCC", GCCHandler.get()); +# 1006| PP.AddPragmaHandler("clang", ClangHandler.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:996:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:996:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "GCCHandler" with "new ::UnknownPragmaHandler("#pragma GCC", Callbacks, PP->getLangOpts().MicrosoftExt)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1005:3: get_raw_ptr: Function "get" returns a pointer managed by "GCCHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1005:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "GCCHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1005:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1003| +# 1004| PP.AddPragmaHandler(MicrosoftExtHandler.get()); +# 1005|-> PP.AddPragmaHandler("GCC", GCCHandler.get()); +# 1006| PP.AddPragmaHandler("clang", ClangHandler.get()); +# 1007| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1000:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1000:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "ClangHandler" with "new ::UnknownPragmaHandler("#pragma clang", Callbacks, PP->getLangOpts().MicrosoftExt)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1006:3: get_raw_ptr: Function "get" returns a pointer managed by "ClangHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1006:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "ClangHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1006:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1004| PP.AddPragmaHandler(MicrosoftExtHandler.get()); +# 1005| PP.AddPragmaHandler("GCC", GCCHandler.get()); +# 1006|-> PP.AddPragmaHandler("clang", ClangHandler.get()); +# 1007| +# 1008| // The tokens after pragma omp need to be expanded. + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1013:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1013:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "OpenMPHandler" with "new ::UnknownPragmaHandler("#pragma omp", Callbacks, true)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1016:3: get_raw_ptr: Function "get" returns a pointer managed by "OpenMPHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1016:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "OpenMPHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1016:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1014| new UnknownPragmaHandler("#pragma omp", Callbacks, +# 1015| /*RequireTokenExpansion=*/true)); +# 1016|-> PP.AddPragmaHandler("omp", OpenMPHandler.get()); +# 1017| +# 1018| PP.addPPCallbacks(std::unique_ptr(Callbacks)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/Rewrite/FixItRewriter.cpp:48:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/Rewrite/FixItRewriter.cpp:48:3: leaked_storage: Failing to save or free storage allocated by "this->Owner.release()" leaks it. +# 46| +# 47| FixItRewriter::~FixItRewriter() { +# 48|-> Diags.setClient(Client, Owner.release() != nullptr); +# 49| } +# 50| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:139:5: address_of: Taking address with "&C" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:139:5: assign: Assigning: "CPtr" = "&C". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:143:5: ptr_arith: Using "CPtr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 141| // Begin and end before conversion. +# 142| unsigned char const *OriginalBegin = Begin; +# 143|-> llvm::ConversionResult Res = llvm::ConvertUTF8toUTF32( +# 144| &Begin, End, &CPtr, CPtr + 1, llvm::strictConversion); +# 145| (void)Res; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1056:7: tainted_data_return: Called function "llvm::sys::locale::columnWidth(llvm::StringRef(H.CodeToInsert))", and a possible return value may be less than zero. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1056:7: overflow: The expression "HintCol + llvm::sys::locale::columnWidth(llvm::StringRef(H.CodeToInsert))" might be negative, but is used in a context that treats it as unsigned. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1056:7: assign: Assigning: "PrevHintEndCol" = "HintCol + llvm::sys::locale::columnWidth(llvm::StringRef(H.CodeToInsert))". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1043:9: overflow: The expression "PrevHintEndCol + 1U" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1043:9: assign: Assigning: "HintCol" = "PrevHintEndCol + 1U". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: overflow: The expression "HintCol - PrevHintEndCol" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: overflow: The expression "FixItInsertionLine.size() + (HintCol - PrevHintEndCol)" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: overflow: The expression "FixItInsertionLine.size() + (HintCol - PrevHintEndCol) + H.CodeToInsert.size()" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1051:9: overflow_sink: "NewFixItLineSize", which might have underflowed, is passed to "FixItInsertionLine.resize(NewFixItLineSize, ' ')". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1049| H.CodeToInsert.size(); +# 1050| if (NewFixItLineSize > FixItInsertionLine.size()) +# 1051|-> FixItInsertionLine.resize(NewFixItLineSize, ' '); +# 1052| +# 1053| std::copy(H.CodeToInsert.begin(), H.CodeToInsert.end(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1083:3: var_decl: Declaring variable "LineRanges". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1121:3: uninit_use: Using uninitialized value "LineRanges". Field "LineRanges.InlineElts" is uninitialized. +# 1119| } +# 1120| +# 1121|-> return LineRanges; +# 1122| } +# 1123| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: tainted_data_return: Called function "C.find('\\', last)", and a possible return value is known to be less than zero. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: assign: Assigning: "loc" = "C.find('\\', last)". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: overflow: The expression "loc + 1UL" is considered to have possibly overflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: assign: Assigning: "last" = "loc + 1UL". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:806:5: overflow_sink: "last", which might have overflowed, is passed to "C[last]". +# 804| last = loc + 1; +# 805| +# 806|-> if (C[last] == '\n' || C[last] == '\r') { +# 807| ++last; +# 808| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: tainted_data_return: Called function "C.find('\\', last)", and a possible return value is known to be less than zero. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: assign: Assigning: "loc" = "C.find('\\', last)". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: overflow: The expression "loc + 1UL" is considered to have possibly overflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: assign: Assigning: "last" = "loc + 1UL". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:812:11: overflow: The expression "last - 1UL" is deemed overflowed because at least one of its arguments has overflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:812:11: overflow_sink: "last - 1UL", which might have underflowed, is passed to "C[last - 1UL]". +# 810| if (last < C.size()) +# 811| if (C[last] == '\n' || C[last] == '\r') +# 812|-> if (C[last] != C[last-1]) +# 813| ++last; +# 814| } else { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:1138:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:1138:3: leaked_storage: Failing to save or free storage allocated by "Owner.release()" leaks it. +# 1136| } +# 1137| +# 1138|-> Diags.setClient(CurClient, Owner.release() != nullptr); +# 1139| +# 1140| // Reset the buffer, we have processed all the diagnostics in it. + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:36:5: alloc_fn: Storage is returned from allocation function "operator new[]". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:36:5: var_assign: Assigning: "Buf" = storage returned from "new unsigned char[::ValueStorage::getPayloadOffset() + AllocSize]". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:38:5: identity_transfer: Passing "Buf" as argument 2 to function "operator new", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:38:5: noescape: Resource "Buf" is not freed or pointed-to in "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:38:5: var_assign: Assigning: "VS" = storage returned from "new (Buf) ::ValueStorage(DtorF, AllocSize, ElementsSize)". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:39:5: noescape: Resource "VS" is not freed or pointed-to in "getPayload". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:40:5: noescape: Resource "VS" is not freed or pointed-to in "getPayload". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:40:5: leaked_storage: Variable "VS" going out of scope leaks the storage it points to. +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:40:5: leaked_storage: Variable "Buf" going out of scope leaks the storage it points to. +# 38| ValueStorage *VS = new (Buf) ValueStorage(DtorF, AllocSize, ElementsSize); +# 39| std::memcpy(VS->getPayload(), Canary, sizeof(Canary)); +# 40|-> return VS->getPayload(); +# 41| } +# 42| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/DependencyDirectivesScanner.cpp:72:5: var_decl: Declaring variable "LangOpts". +llvm-project-19.0.0.src/clang/lib/Lex/DependencyDirectivesScanner.cpp:78:5: uninit_use: Using uninitialized value "LangOpts". Field "LangOpts.GPUDefaultStream" is uninitialized. +# 76| // FIXME: we do not enable C11 or C++11, so we are missing u/u8/U"" and +# 77| // R"()" literals. +# 78|-> return LangOpts; +# 79| } +# 80| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1533:3: var_decl: Declaring variable "CharBuf". +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1536:3: uninit_use: Using uninitialized value "CharBuf". Field "CharBuf.InlineElts" is uninitialized. +# 1534| llvm::raw_svector_ostream CharOS(CharBuf); +# 1535| llvm::write_hex(CharOS, C, llvm::HexPrintStyle::Upper, 4); +# 1536|-> return CharBuf; +# 1537| } +# 1538| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1818:3: address_of: Taking address with "&CodePoint" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1818:3: callee_ptr_arith: Passing "&CodePoint" to function "convertUTF8Sequence" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1816| const char *UnicodePtr = CharStart; +# 1817| +# 1818|-> llvm::ConversionResult ConvResult = llvm::convertUTF8Sequence( +# 1819| (const llvm::UTF8 **)&UnicodePtr, (const llvm::UTF8 *)BufferEnd, +# 1820| &CodePoint, llvm::strictConversion); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:3383:3: var_decl: Declaring variable "NumHexDigits" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:3404:3: uninit_use: Using uninitialized value "NumHexDigits". +# 3402| +# 3403| uint32_t CodePoint = 0; +# 3404|-> while (Count != NumHexDigits || Delimited) { +# 3405| char C = getCharAndSize(CurPtr, CharSize); +# 3406| if (!Delimited && Count == 0 && C == '{') { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:4431:5: address_of: Taking address with "&CodePoint" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:4431:5: callee_ptr_arith: Passing "&CodePoint" to function "convertUTF8Sequence" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 4429| // an escaped newline. +# 4430| --CurPtr; +# 4431|-> llvm::ConversionResult Status = +# 4432| llvm::convertUTF8Sequence((const llvm::UTF8 **)&CurPtr, +# 4433| (const llvm::UTF8 *)BufferEnd, + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Lex/MacroArgs.cpp:51:5: new_object: Calling single-object form of 'new': "new (llvm::safe_malloc(llvm::TrailingObjects::totalSizeToAlloc(UnexpArgTokens.size()))) clang::MacroArgs(UnexpArgTokens.size(), VarargsElided, MI->getNumParams())". +llvm-project-19.0.0.src/clang/lib/Lex/MacroArgs.cpp:51:5: assign: Assigning: "Result" = "new (llvm::safe_malloc(llvm::TrailingObjects::totalSizeToAlloc(UnexpArgTokens.size()))) clang::MacroArgs(UnexpArgTokens.size(), VarargsElided, MI->getNumParams())". +llvm-project-19.0.0.src/clang/lib/Lex/MacroArgs.cpp:69:5: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 67| "uninitialized array (as opposed to reusing a cached " +# 68| "MacroArgs)"); +# 69|-> std::copy(UnexpArgTokens.begin(), UnexpArgTokens.end(), +# 70| Result->getTrailingObjects()); +# 71| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Lex/ModuleMap.cpp:918:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Lex/ModuleMap.cpp:918:5: leaked_storage: Ignoring storage allocated by "Submodule->release()" leaks it. +# 916| for (auto &Submodule : PendingSubmodules) { +# 917| Submodule->setParent(Result); +# 918|-> Submodule.release(); // now owned by parent +# 919| } +# 920| PendingSubmodules.clear(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1320:3: var_decl: Declaring variable "ResultTok" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1392:9: uninit_use_in_call: Using uninitialized value "ResultTok.Kind" when calling "getIdentifierInfo". +# 1390| if (!SuppressDiagnostic) { +# 1391| if (auto Diag = PP.Diag(Tok.getLocation(), diag::err_pp_expected_after)) { +# 1392|-> if (IdentifierInfo *LastII = ResultTok.getIdentifierInfo()) +# 1393| Diag << LastII; +# 1394| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1320:3: var_decl: Declaring variable "ResultTok" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1392:9: uninit_use_in_call: Using uninitialized value "ResultTok.Kind" when calling "getIdentifierInfo". +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1392:9: uninit_use_in_call: Using uninitialized value "ResultTok.PtrData" when calling "getIdentifierInfo". +# 1390| if (!SuppressDiagnostic) { +# 1391| if (auto Diag = PP.Diag(Tok.getLocation(), diag::err_pp_expected_after)) { +# 1392|-> if (IdentifierInfo *LastII = ResultTok.getIdentifierInfo()) +# 1393| Diag << LastII; +# 1394| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1320:3: var_decl: Declaring variable "ResultTok" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1396:9: uninit_use_in_call: Using uninitialized value "ResultTok.Loc" when calling "getLocation". +# 1394| else +# 1395| Diag << ResultTok.getKind(); +# 1396|-> Diag << tok::r_paren << ResultTok.getLocation(); +# 1397| } +# 1398| PP.Diag(LParenLoc, diag::note_matching) << tok::l_paren; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Lex/Pragma.cpp:103:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Lex/Pragma.cpp:103:3: leaked_storage: Ignoring storage allocated by "llvm::iterator_facade_base > >, std::forward_iterator_tag, llvm::StringMapEntry > >, long, llvm::StringMapEntry > > *, llvm::StringMapEntry I->getValue().release(); +# 104| Handlers.erase(I); +# 105| } +llvm-project-19.0.0.src/clang/lib/Lex/Pragma.cpp:103:3: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:634:3: var_decl: Declaring variable "Clauses". +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:649:7: uninit_use: Using uninitialized value "Clauses". Field "Clauses.InlineElts" is uninitialized. +# 647| // error. +# 648| SkipUntilEndOfDirective(*this); +# 649|-> return Clauses; +# 650| } +# 651| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:634:3: var_decl: Declaring variable "Clauses". +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:652:3: uninit_use: Using uninitialized value "Clauses". Field "Clauses.InlineElts" is uninitialized. +# 650| } +# 651| } +# 652|-> return Clauses; +# 653| } +# 654| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:1266:3: var_decl: Declaring variable "Vars". +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:1273:5: uninit_use: Using uninitialized value "Vars". Field "Vars.InlineElts" is uninitialized. +# 1271| } else if (CanContinue == OpenACCParseCanContinue::Cannot) { +# 1272| SkipUntil(tok::r_paren, tok::annot_pragma_openacc_end, StopBeforeMatch); +# 1273|-> return Vars; +# 1274| } +# 1275| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:419:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:419:3: assign_smart_ptr: Function "operator =" assigns "this->AlignHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:420:3: get_raw_ptr: Function "get" returns a pointer managed by "this->AlignHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:420:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->AlignHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:420:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 418| void Parser::initializePragmaHandlers() { +# 419| AlignHandler = std::make_unique(); +# 420|-> PP.AddPragmaHandler(AlignHandler.get()); +# 421| +# 422| GCCVisibilityHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:422:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:422:3: assign_smart_ptr: Function "operator =" assigns "this->GCCVisibilityHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:423:3: get_raw_ptr: Function "get" returns a pointer managed by "this->GCCVisibilityHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:423:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->GCCVisibilityHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:423:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 421| +# 422| GCCVisibilityHandler = std::make_unique(); +# 423|-> PP.AddPragmaHandler("GCC", GCCVisibilityHandler.get()); +# 424| +# 425| OptionsHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:425:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:425:3: assign_smart_ptr: Function "operator =" assigns "this->OptionsHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:426:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OptionsHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:426:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OptionsHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:426:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 424| +# 425| OptionsHandler = std::make_unique(); +# 426|-> PP.AddPragmaHandler(OptionsHandler.get()); +# 427| +# 428| PackHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:428:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:428:3: assign_smart_ptr: Function "operator =" assigns "this->PackHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:429:3: get_raw_ptr: Function "get" returns a pointer managed by "this->PackHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:429:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->PackHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:429:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 427| +# 428| PackHandler = std::make_unique(); +# 429|-> PP.AddPragmaHandler(PackHandler.get()); +# 430| +# 431| MSStructHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:431:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:431:3: assign_smart_ptr: Function "operator =" assigns "this->MSStructHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:432:3: get_raw_ptr: Function "get" returns a pointer managed by "this->MSStructHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:432:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSStructHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:432:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 430| +# 431| MSStructHandler = std::make_unique(); +# 432|-> PP.AddPragmaHandler(MSStructHandler.get()); +# 433| +# 434| UnusedHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:434:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:434:3: assign_smart_ptr: Function "operator =" assigns "this->UnusedHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:435:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnusedHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:435:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnusedHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:435:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 433| +# 434| UnusedHandler = std::make_unique(); +# 435|-> PP.AddPragmaHandler(UnusedHandler.get()); +# 436| +# 437| WeakHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:437:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:437:3: assign_smart_ptr: Function "operator =" assigns "this->WeakHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:438:3: get_raw_ptr: Function "get" returns a pointer managed by "this->WeakHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:438:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->WeakHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:438:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 436| +# 437| WeakHandler = std::make_unique(); +# 438|-> PP.AddPragmaHandler(WeakHandler.get()); +# 439| +# 440| RedefineExtnameHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:440:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:440:3: assign_smart_ptr: Function "operator =" assigns "this->RedefineExtnameHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:441:3: get_raw_ptr: Function "get" returns a pointer managed by "this->RedefineExtnameHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:441:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->RedefineExtnameHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:441:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 439| +# 440| RedefineExtnameHandler = std::make_unique(); +# 441|-> PP.AddPragmaHandler(RedefineExtnameHandler.get()); +# 442| +# 443| FPContractHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:443:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:443:3: assign_smart_ptr: Function "operator =" assigns "this->FPContractHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:444:3: get_raw_ptr: Function "get" returns a pointer managed by "this->FPContractHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:444:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FPContractHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:444:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 442| +# 443| FPContractHandler = std::make_unique(); +# 444|-> PP.AddPragmaHandler("STDC", FPContractHandler.get()); +# 445| +# 446| STDCFenvAccessHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:446:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:446:3: assign_smart_ptr: Function "operator =" assigns "this->STDCFenvAccessHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:447:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCFenvAccessHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:447:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCFenvAccessHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:447:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 445| +# 446| STDCFenvAccessHandler = std::make_unique(); +# 447|-> PP.AddPragmaHandler("STDC", STDCFenvAccessHandler.get()); +# 448| +# 449| STDCFenvRoundHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:449:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:449:3: assign_smart_ptr: Function "operator =" assigns "this->STDCFenvRoundHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:450:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCFenvRoundHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:450:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCFenvRoundHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:450:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 448| +# 449| STDCFenvRoundHandler = std::make_unique(); +# 450|-> PP.AddPragmaHandler("STDC", STDCFenvRoundHandler.get()); +# 451| +# 452| STDCCXLIMITHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:452:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:452:3: assign_smart_ptr: Function "operator =" assigns "this->STDCCXLIMITHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:453:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCCXLIMITHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:453:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCCXLIMITHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:453:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 451| +# 452| STDCCXLIMITHandler = std::make_unique(); +# 453|-> PP.AddPragmaHandler("STDC", STDCCXLIMITHandler.get()); +# 454| +# 455| STDCUnknownHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:455:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:455:3: assign_smart_ptr: Function "operator =" assigns "this->STDCUnknownHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:456:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCUnknownHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:456:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCUnknownHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:456:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 454| +# 455| STDCUnknownHandler = std::make_unique(); +# 456|-> PP.AddPragmaHandler("STDC", STDCUnknownHandler.get()); +# 457| +# 458| PCSectionHandler = std::make_unique(Actions); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:458:3: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:458:3: assign_smart_ptr: Function "operator =" assigns "this->PCSectionHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:459:3: get_raw_ptr: Function "get" returns a pointer managed by "this->PCSectionHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:459:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->PCSectionHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:459:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 457| +# 458| PCSectionHandler = std::make_unique(Actions); +# 459|-> PP.AddPragmaHandler("clang", PCSectionHandler.get()); +# 460| +# 461| if (getLangOpts().OpenCL) { + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:462:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:462:5: assign_smart_ptr: Function "operator =" assigns "this->OpenCLExtensionHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:463:5: get_raw_ptr: Function "get" returns a pointer managed by "this->OpenCLExtensionHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:463:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OpenCLExtensionHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:463:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 461| if (getLangOpts().OpenCL) { +# 462| OpenCLExtensionHandler = std::make_unique(); +# 463|-> PP.AddPragmaHandler("OPENCL", OpenCLExtensionHandler.get()); +# 464| +# 465| PP.AddPragmaHandler("OPENCL", FPContractHandler.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:465:5: get_raw_ptr: Function "get" returns a pointer managed by "this->FPContractHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:465:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FPContractHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:465:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 463| PP.AddPragmaHandler("OPENCL", OpenCLExtensionHandler.get()); +# 464| +# 465|-> PP.AddPragmaHandler("OPENCL", FPContractHandler.get()); +# 466| } +# 467| if (getLangOpts().OpenMP) + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:468:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:468:5: assign_smart_ptr: Function "operator =" assigns "this->OpenMPHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:471:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OpenMPHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:471:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OpenMPHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:471:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 469| else +# 470| OpenMPHandler = std::make_unique(); +# 471|-> PP.AddPragmaHandler(OpenMPHandler.get()); +# 472| +# 473| if (getLangOpts().OpenACC) + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:474:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:474:5: assign_smart_ptr: Function "operator =" assigns "this->OpenACCHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:477:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OpenACCHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:477:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OpenACCHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:477:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 475| else +# 476| OpenACCHandler = std::make_unique(); +# 477|-> PP.AddPragmaHandler(OpenACCHandler.get()); +# 478| +# 479| if (getLangOpts().MicrosoftExt || + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:481:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:481:5: assign_smart_ptr: Function "operator =" assigns "this->MSCommentHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:482:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSCommentHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:482:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSCommentHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:482:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 480| getTargetInfo().getTriple().isOSBinFormatELF()) { +# 481| MSCommentHandler = std::make_unique(Actions); +# 482|-> PP.AddPragmaHandler(MSCommentHandler.get()); +# 483| } +# 484| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:485:3: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:485:3: assign_smart_ptr: Function "operator =" assigns "this->FloatControlHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:486:3: get_raw_ptr: Function "get" returns a pointer managed by "this->FloatControlHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:486:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FloatControlHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:486:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 484| +# 485| FloatControlHandler = std::make_unique(Actions); +# 486|-> PP.AddPragmaHandler(FloatControlHandler.get()); +# 487| if (getLangOpts().MicrosoftExt) { +# 488| MSDetectMismatchHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:488:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:488:5: assign_smart_ptr: Function "operator =" assigns "this->MSDetectMismatchHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:490:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSDetectMismatchHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:490:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSDetectMismatchHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:490:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 488| MSDetectMismatchHandler = +# 489| std::make_unique(Actions); +# 490|-> PP.AddPragmaHandler(MSDetectMismatchHandler.get()); +# 491| MSPointersToMembers = std::make_unique(); +# 492| PP.AddPragmaHandler(MSPointersToMembers.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:491:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:491:5: assign_smart_ptr: Function "operator =" assigns "this->MSPointersToMembers" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:492:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSPointersToMembers". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:492:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSPointersToMembers.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:492:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 490| PP.AddPragmaHandler(MSDetectMismatchHandler.get()); +# 491| MSPointersToMembers = std::make_unique(); +# 492|-> PP.AddPragmaHandler(MSPointersToMembers.get()); +# 493| MSVtorDisp = std::make_unique(); +# 494| PP.AddPragmaHandler(MSVtorDisp.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:493:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:493:5: assign_smart_ptr: Function "operator =" assigns "this->MSVtorDisp" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:494:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSVtorDisp". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:494:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSVtorDisp.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:494:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 492| PP.AddPragmaHandler(MSPointersToMembers.get()); +# 493| MSVtorDisp = std::make_unique(); +# 494|-> PP.AddPragmaHandler(MSVtorDisp.get()); +# 495| MSInitSeg = std::make_unique("init_seg"); +# 496| PP.AddPragmaHandler(MSInitSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:495:5: assign: Assigning: "" = "std::make_unique("init_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:495:5: assign_smart_ptr: Function "operator =" assigns "this->MSInitSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:496:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSInitSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:496:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSInitSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:496:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 494| PP.AddPragmaHandler(MSVtorDisp.get()); +# 495| MSInitSeg = std::make_unique("init_seg"); +# 496|-> PP.AddPragmaHandler(MSInitSeg.get()); +# 497| MSDataSeg = std::make_unique("data_seg"); +# 498| PP.AddPragmaHandler(MSDataSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:497:5: assign: Assigning: "" = "std::make_unique("data_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:497:5: assign_smart_ptr: Function "operator =" assigns "this->MSDataSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:498:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSDataSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:498:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSDataSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:498:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 496| PP.AddPragmaHandler(MSInitSeg.get()); +# 497| MSDataSeg = std::make_unique("data_seg"); +# 498|-> PP.AddPragmaHandler(MSDataSeg.get()); +# 499| MSBSSSeg = std::make_unique("bss_seg"); +# 500| PP.AddPragmaHandler(MSBSSSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:499:5: assign: Assigning: "" = "std::make_unique("bss_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:499:5: assign_smart_ptr: Function "operator =" assigns "this->MSBSSSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:500:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSBSSSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:500:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSBSSSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:500:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 498| PP.AddPragmaHandler(MSDataSeg.get()); +# 499| MSBSSSeg = std::make_unique("bss_seg"); +# 500|-> PP.AddPragmaHandler(MSBSSSeg.get()); +# 501| MSConstSeg = std::make_unique("const_seg"); +# 502| PP.AddPragmaHandler(MSConstSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:501:5: assign: Assigning: "" = "std::make_unique("const_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:501:5: assign_smart_ptr: Function "operator =" assigns "this->MSConstSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:502:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSConstSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:502:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSConstSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:502:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 500| PP.AddPragmaHandler(MSBSSSeg.get()); +# 501| MSConstSeg = std::make_unique("const_seg"); +# 502|-> PP.AddPragmaHandler(MSConstSeg.get()); +# 503| MSCodeSeg = std::make_unique("code_seg"); +# 504| PP.AddPragmaHandler(MSCodeSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:503:5: assign: Assigning: "" = "std::make_unique("code_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:503:5: assign_smart_ptr: Function "operator =" assigns "this->MSCodeSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:504:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSCodeSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:504:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSCodeSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:504:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 502| PP.AddPragmaHandler(MSConstSeg.get()); +# 503| MSCodeSeg = std::make_unique("code_seg"); +# 504|-> PP.AddPragmaHandler(MSCodeSeg.get()); +# 505| MSSection = std::make_unique("section"); +# 506| PP.AddPragmaHandler(MSSection.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:505:5: assign: Assigning: "" = "std::make_unique("section")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:505:5: assign_smart_ptr: Function "operator =" assigns "this->MSSection" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:506:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSSection". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:506:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSSection.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:506:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 504| PP.AddPragmaHandler(MSCodeSeg.get()); +# 505| MSSection = std::make_unique("section"); +# 506|-> PP.AddPragmaHandler(MSSection.get()); +# 507| MSStrictGuardStackCheck = +# 508| std::make_unique("strict_gs_check"); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:507:5: assign: Assigning: "" = "std::make_unique("strict_gs_check")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:507:5: assign_smart_ptr: Function "operator =" assigns "this->MSStrictGuardStackCheck" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:509:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSStrictGuardStackCheck". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:509:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSStrictGuardStackCheck.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:509:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 507| MSStrictGuardStackCheck = +# 508| std::make_unique("strict_gs_check"); +# 509|-> PP.AddPragmaHandler(MSStrictGuardStackCheck.get()); +# 510| MSFunction = std::make_unique("function"); +# 511| PP.AddPragmaHandler(MSFunction.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:510:5: assign: Assigning: "" = "std::make_unique("function")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:510:5: assign_smart_ptr: Function "operator =" assigns "this->MSFunction" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:511:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSFunction". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:511:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSFunction.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:511:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 509| PP.AddPragmaHandler(MSStrictGuardStackCheck.get()); +# 510| MSFunction = std::make_unique("function"); +# 511|-> PP.AddPragmaHandler(MSFunction.get()); +# 512| MSAllocText = std::make_unique("alloc_text"); +# 513| PP.AddPragmaHandler(MSAllocText.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:512:5: assign: Assigning: "" = "std::make_unique("alloc_text")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:512:5: assign_smart_ptr: Function "operator =" assigns "this->MSAllocText" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:513:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSAllocText". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:513:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSAllocText.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:513:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 511| PP.AddPragmaHandler(MSFunction.get()); +# 512| MSAllocText = std::make_unique("alloc_text"); +# 513|-> PP.AddPragmaHandler(MSAllocText.get()); +# 514| MSOptimize = std::make_unique("optimize"); +# 515| PP.AddPragmaHandler(MSOptimize.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:514:5: assign: Assigning: "" = "std::make_unique("optimize")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:514:5: assign_smart_ptr: Function "operator =" assigns "this->MSOptimize" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:515:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSOptimize". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:515:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSOptimize.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:515:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 513| PP.AddPragmaHandler(MSAllocText.get()); +# 514| MSOptimize = std::make_unique("optimize"); +# 515|-> PP.AddPragmaHandler(MSOptimize.get()); +# 516| MSRuntimeChecks = std::make_unique(); +# 517| PP.AddPragmaHandler(MSRuntimeChecks.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:516:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:516:5: assign_smart_ptr: Function "operator =" assigns "this->MSRuntimeChecks" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:517:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSRuntimeChecks". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:517:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSRuntimeChecks.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:517:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 515| PP.AddPragmaHandler(MSOptimize.get()); +# 516| MSRuntimeChecks = std::make_unique(); +# 517|-> PP.AddPragmaHandler(MSRuntimeChecks.get()); +# 518| MSIntrinsic = std::make_unique(); +# 519| PP.AddPragmaHandler(MSIntrinsic.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:518:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:518:5: assign_smart_ptr: Function "operator =" assigns "this->MSIntrinsic" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:519:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSIntrinsic". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:519:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSIntrinsic.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:519:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 517| PP.AddPragmaHandler(MSRuntimeChecks.get()); +# 518| MSIntrinsic = std::make_unique(); +# 519|-> PP.AddPragmaHandler(MSIntrinsic.get()); +# 520| MSFenvAccess = std::make_unique(); +# 521| PP.AddPragmaHandler(MSFenvAccess.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:520:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:520:5: assign_smart_ptr: Function "operator =" assigns "this->MSFenvAccess" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:521:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSFenvAccess". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:521:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSFenvAccess.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:521:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 519| PP.AddPragmaHandler(MSIntrinsic.get()); +# 520| MSFenvAccess = std::make_unique(); +# 521|-> PP.AddPragmaHandler(MSFenvAccess.get()); +# 522| } +# 523| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:525:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:525:5: assign_smart_ptr: Function "operator =" assigns "this->CUDAForceHostDeviceHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:527:5: get_raw_ptr: Function "get" returns a pointer managed by "this->CUDAForceHostDeviceHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:527:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->CUDAForceHostDeviceHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:527:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 525| CUDAForceHostDeviceHandler = +# 526| std::make_unique(Actions); +# 527|-> PP.AddPragmaHandler("clang", CUDAForceHostDeviceHandler.get()); +# 528| } +# 529| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:530:3: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:530:3: assign_smart_ptr: Function "operator =" assigns "this->OptimizeHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:531:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OptimizeHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:531:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OptimizeHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:531:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 529| +# 530| OptimizeHandler = std::make_unique(Actions); +# 531|-> PP.AddPragmaHandler("clang", OptimizeHandler.get()); +# 532| +# 533| LoopHintHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:533:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:533:3: assign_smart_ptr: Function "operator =" assigns "this->LoopHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:534:3: get_raw_ptr: Function "get" returns a pointer managed by "this->LoopHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:534:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->LoopHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:534:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 532| +# 533| LoopHintHandler = std::make_unique(); +# 534|-> PP.AddPragmaHandler("clang", LoopHintHandler.get()); +# 535| +# 536| UnrollHintHandler = std::make_unique("unroll"); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:536:3: assign: Assigning: "" = "std::make_unique("unroll")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:536:3: assign_smart_ptr: Function "operator =" assigns "this->UnrollHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:537:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:537:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:537:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 535| +# 536| UnrollHintHandler = std::make_unique("unroll"); +# 537|-> PP.AddPragmaHandler(UnrollHintHandler.get()); +# 538| PP.AddPragmaHandler("GCC", UnrollHintHandler.get()); +# 539| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:538:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:538:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:538:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 536| UnrollHintHandler = std::make_unique("unroll"); +# 537| PP.AddPragmaHandler(UnrollHintHandler.get()); +# 538|-> PP.AddPragmaHandler("GCC", UnrollHintHandler.get()); +# 539| +# 540| NoUnrollHintHandler = std::make_unique("nounroll"); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:540:3: assign: Assigning: "" = "std::make_unique("nounroll")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:540:3: assign_smart_ptr: Function "operator =" assigns "this->NoUnrollHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:541:3: get_raw_ptr: Function "get" returns a pointer managed by "this->NoUnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:541:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->NoUnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:541:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 539| +# 540| NoUnrollHintHandler = std::make_unique("nounroll"); +# 541|-> PP.AddPragmaHandler(NoUnrollHintHandler.get()); +# 542| PP.AddPragmaHandler("GCC", NoUnrollHintHandler.get()); +# 543| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:542:3: get_raw_ptr: Function "get" returns a pointer managed by "this->NoUnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:542:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->NoUnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:542:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 540| NoUnrollHintHandler = std::make_unique("nounroll"); +# 541| PP.AddPragmaHandler(NoUnrollHintHandler.get()); +# 542|-> PP.AddPragmaHandler("GCC", NoUnrollHintHandler.get()); +# 543| +# 544| UnrollAndJamHintHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:544:3: assign: Assigning: "" = "std::make_unique("unroll_and_jam")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:544:3: assign_smart_ptr: Function "operator =" assigns "this->UnrollAndJamHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:546:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnrollAndJamHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:546:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnrollAndJamHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:546:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 544| UnrollAndJamHintHandler = +# 545| std::make_unique("unroll_and_jam"); +# 546|-> PP.AddPragmaHandler(UnrollAndJamHintHandler.get()); +# 547| +# 548| NoUnrollAndJamHintHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:548:3: assign: Assigning: "" = "std::make_unique("nounroll_and_jam")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:548:3: assign_smart_ptr: Function "operator =" assigns "this->NoUnrollAndJamHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:550:3: get_raw_ptr: Function "get" returns a pointer managed by "this->NoUnrollAndJamHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:550:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->NoUnrollAndJamHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:550:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 548| NoUnrollAndJamHintHandler = +# 549| std::make_unique("nounroll_and_jam"); +# 550|-> PP.AddPragmaHandler(NoUnrollAndJamHintHandler.get()); +# 551| +# 552| FPHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:552:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:552:3: assign_smart_ptr: Function "operator =" assigns "this->FPHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:553:3: get_raw_ptr: Function "get" returns a pointer managed by "this->FPHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:553:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FPHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:553:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 551| +# 552| FPHandler = std::make_unique(); +# 553|-> PP.AddPragmaHandler("clang", FPHandler.get()); +# 554| +# 555| AttributePragmaHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:555:3: assign: Assigning: "" = "std::make_unique(this->AttrFactory)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:555:3: assign_smart_ptr: Function "operator =" assigns "this->AttributePragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:557:3: get_raw_ptr: Function "get" returns a pointer managed by "this->AttributePragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:557:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->AttributePragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:557:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 555| AttributePragmaHandler = +# 556| std::make_unique(AttrFactory); +# 557|-> PP.AddPragmaHandler("clang", AttributePragmaHandler.get()); +# 558| +# 559| MaxTokensHerePragmaHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:559:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:559:3: assign_smart_ptr: Function "operator =" assigns "this->MaxTokensHerePragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:560:3: get_raw_ptr: Function "get" returns a pointer managed by "this->MaxTokensHerePragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:560:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MaxTokensHerePragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:560:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 558| +# 559| MaxTokensHerePragmaHandler = std::make_unique(); +# 560|-> PP.AddPragmaHandler("clang", MaxTokensHerePragmaHandler.get()); +# 561| +# 562| MaxTokensTotalPragmaHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:562:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:562:3: assign_smart_ptr: Function "operator =" assigns "this->MaxTokensTotalPragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:563:3: get_raw_ptr: Function "get" returns a pointer managed by "this->MaxTokensTotalPragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:563:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MaxTokensTotalPragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:563:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 561| +# 562| MaxTokensTotalPragmaHandler = std::make_unique(); +# 563|-> PP.AddPragmaHandler("clang", MaxTokensTotalPragmaHandler.get()); +# 564| +# 565| if (getTargetInfo().getTriple().isRISCV()) { + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:566:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:566:5: assign_smart_ptr: Function "operator =" assigns "this->RISCVPragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:567:5: get_raw_ptr: Function "get" returns a pointer managed by "this->RISCVPragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:567:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->RISCVPragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:567:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 565| if (getTargetInfo().getTriple().isRISCV()) { +# 566| RISCVPragmaHandler = std::make_unique(Actions); +# 567|-> PP.AddPragmaHandler("clang", RISCVPragmaHandler.get()); +# 568| } +# 569| } + +Error: VIRTUAL_DTOR (CWE-772): +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:55:9: no_virtual_dtor: Class "::DeltaTreeNode" does not have a virtual destructor. +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:128:5: dtor_in_derived: Class "::DeltaTreeInteriorNode" has a destructor and a pointer to it is upcast to class "::DeltaTreeNode" which doesn't have a virtual destructor. +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:314:5: upcast: Example 1: Casting from a pointer to "::DeltaTreeInteriorNode" to a pointer to "::DeltaTreeNode" in "New". +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:163:5: delete: Example 1: Deletion of type "::DeltaTreeNode". +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:311:5: alloc: Example 1: Allocated an object of type "::DeltaTreeInteriorNode". +# 53| /// DeltaTreeNode - The common part of all nodes. +# 54| /// +# 55|-> class DeltaTreeNode { +# 56| public: +# 57| struct InsertResult { + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Rewrite/Rewriter.cpp:299:3: tainted_data_return: Called function "this->getRangeSize(clang::SourceRange(Loc, Loc), rangeOpts)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/clang/lib/Rewrite/Rewriter.cpp:299:3: overflow: The expression "StartOffs += this->getRangeSize(clang::SourceRange(Loc, Loc), rangeOpts)" might be negative, but is used in a context that treats it as unsigned. +llvm-project-19.0.0.src/clang/lib/Rewrite/Rewriter.cpp:300:3: overflow_sink: "StartOffs", which might be negative, is passed to "this->getEditBuffer(FID)->InsertText(StartOffs, Str, true)". +# 298| rangeOpts.IncludeInsertsAtBeginOfRange = false; +# 299| StartOffs += getRangeSize(SourceRange(Loc, Loc), rangeOpts); +# 300|-> getEditBuffer(FID).InsertText(StartOffs, Str, /*InsertAfter*/true); +# 301| return false; +# 302| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/AnalysisBasedWarnings.cpp:1827:5: var_decl: Declaring variable "ONS". +llvm-project-19.0.0.src/clang/lib/Sema/AnalysisBasedWarnings.cpp:1836:5: uninit_use: Using uninitialized value "ONS". Field "ONS.InlineElts" is uninitialized. +# 1834| ONS.push_back(std::move(FNote)); +# 1835| } +# 1836|-> return ONS; +# 1837| } +# 1838| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/DeclSpec.cpp:191:3: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/Sema/DeclSpec.cpp:291:3: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 289| } +# 290| +# 291|-> return I; +# 292| } +# 293| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCXXScopeSpec.cpp:1020:3: new_object: Calling single-object form of 'new': "new (Mem) ::NestedNameSpecifierAnnotation". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCXXScopeSpec.cpp:1020:3: assign: Assigning: "Annotation" = "new (Mem) ::NestedNameSpecifierAnnotation". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCXXScopeSpec.cpp:1023:3: ptr_arith: Using "Annotation" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1021| = new (Mem) NestedNameSpecifierAnnotation; +# 1022| Annotation->NNS = SS.getScopeRep(); +# 1023|-> memcpy(Annotation + 1, SS.location_data(), SS.location_size()); +# 1024| return Annotation; +# 1025| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:321:3: var_decl: Declaring variable "AlignResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:353:5: uninit_use_in_call: Using uninitialized value "AlignResult.Val.Data" when calling "~EvalResult". +# 351| SourceLocation(), Source); +# 352| if (SrcArg.isInvalid()) +# 353|-> return true; +# 354| TheCall->setArg(0, SrcArg.get()); +# 355| ExprResult AlignArg = + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:11766:5: address_of: Taking address with "&CodePoint" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:11766:5: callee_ptr_arith: Passing "&CodePoint" to function "convertUTF8Sequence" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +#11764| const llvm::UTF8 *E = +#11765| reinterpret_cast(csStart + csLen); +#11766|-> llvm::ConversionResult Result = +#11767| llvm::convertUTF8Sequence(B, E, &CodePoint, llvm::strictConversion); +#11768| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16122:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16137:3: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#16135| S.Diag(ExprLoc, diag::warn_left_shift_in_bool_context) << E; +#16136| } +#16137|-> } +#16138| +#16139| if (const auto *CO = dyn_cast(E)) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16392:7: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16412:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#16410| } +#16411| } +#16412|-> } +#16413| } else if (Target->isUnsaturatedFixedPointType()) { +#16414| if (Source->isIntegerType()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16415:7: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16433:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#16431| } +#16432| } +#16433|-> } +#16434| } +#16435| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1124:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1131:5: uninit_use_in_call: Using uninitialized value "Result" when calling "CodeCompletionResult". +# 1129| std::move(R.FixIts)); +# 1130| Result.ShadowDecl = Using; +# 1131|-> MaybeAddResult(Result, CurContext); +# 1132| return; +# 1133| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1361:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1368:5: uninit_use_in_call: Using uninitialized value "Result" when calling "CodeCompletionResult". +# 1366| std::move(R.FixIts)); +# 1367| Result.ShadowDecl = Using; +# 1368|-> AddResult(Result, CurContext, Hiding, /*InBaseClass=*/false, +# 1369| /*BaseExprType=*/BaseExprType); +# 1370| return; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1744:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1746:5: uninit_use_in_call: Using uninitialized value "Result" when calling "CodeCompletionResult". +# 1744| ResultBuilder::Result Result(ND, Results.getBasePriority(ND), nullptr, +# 1745| false, IsAccessible(ND, Ctx), FixIts); +# 1746|-> Results.AddResult(Result, InitialLookupCtx, Hiding, InBaseClass, BaseType); +# 1747| } +# 1748| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5564:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5566:7: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 5564| SmallVector Result; +# 5565| if (DC == nullptr) +# 5566|-> return Result; +# 5567| // Primary templates can have constraints. +# 5568| if (const auto *TD = cast(DC)->getDescribedTemplate()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5564:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5576:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 5574| if (const auto *VTPSD = dyn_cast(DC)) +# 5575| VTPSD->getAssociatedConstraints(Result); +# 5576|-> return Result; +# 5577| } +# 5578| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1407:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1419:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 1417| Res.emplace_back(Combined); +# 1418| } +# 1419|-> return Res; +# 1420| } +# 1421| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1436:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1449:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 1447| } +# 1448| } +# 1449|-> return Res; +# 1450| } +# 1451| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDecl.cpp:6636:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDecl.cpp:6639:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 6637| if (!VLATy->getSizeExpr() || +# 6638| !VLATy->getSizeExpr()->EvaluateAsInt(Result, Context)) +# 6639|-> return QualType(); +# 6640| +# 6641| llvm::APSInt Res = Result.Val.getInt(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclAttr.cpp:10179:7: var_decl: Declaring variable "EmptyWeakInfos". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclAttr.cpp:10180:7: uninit_use_in_call: Using uninitialized value "EmptyWeakInfos.set_.TheMap.NumEntries" when calling "swap". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclAttr.cpp:10180:7: uninit_use_in_call: Using uninitialized value "EmptyWeakInfos.set_.TheMap.NumTombstones" when calling "swap". +#10178| DeclApplyPragmaWeak(S, ND, W); +#10179| std::remove_reference_t EmptyWeakInfos; +#10180|-> WeakInfos.swap(EmptyWeakInfos); +#10181| } +#10182| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9234:3: var_decl: Declaring variable "ExceptSpec". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9237:5: uninit_use: Using uninitialized value "ExceptSpec". Field "ExceptSpec.Exceptions.InlineElts" is uninitialized. +# 9235| +# 9236| if (FD->isInvalidDecl()) +# 9237|-> return ExceptSpec; +# 9238| +# 9239| // The common case is that we just defined the comparison function. In that + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9234:3: var_decl: Declaring variable "ExceptSpec". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9270:3: uninit_use: Using uninitialized value "ExceptSpec". Field "ExceptSpec.Exceptions.InlineElts" is uninitialized. +# 9268| } +# 9269| +# 9270|-> return ExceptSpec; +# 9271| } +# 9272| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:17494:3: var_decl: Declaring variable "Status". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:17505:5: uninit_use_in_call: Using uninitialized value "Status.Val.Data" when calling "~EvalResult". +#17503| for (const auto &Note : Notes) +#17504| Diag(Note.first, Note.second); +#17505|-> return !ErrorOnInvalidMessage; +#17506| } +#17507| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:3859:3: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:3861:3: uninit_use_in_call: Using uninitialized value "Val.U" when calling "GetFloatValue". +# 3859| APFloat Val(Format); +# 3860| +# 3861|-> APFloat::opStatus result = Literal.GetFloatValue(Val); +# 3862| +# 3863| // Overflow is always an error, but underflow is only an error if + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:8081:5: address_of: Taking address with "&subExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:8081:5: assign: Assigning: "exprs" = "&subExpr". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:8134:5: ptr_arith: Using "exprs" as an array. This might corrupt or misinterpret adjacent memory locations. +# 8132| } +# 8133| +# 8134|-> initExprs.append(exprs, exprs + numExprs); +# 8135| } +# 8136| // FIXME: This means that pretty-printing the final AST will produce curly + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:10957:3: var_decl: Declaring variable "RHSValue". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:10964:1: uninit_use_in_call: Using uninitialized value "RHSValue.Val.Data" when calling "~EvalResult". +#10962| S.PDiag(diag::warn_remainder_division_by_zero) +#10963| << IsDiv << RHS.get()->getSourceRange()); +#10964|-> } +#10965| +#10966| QualType Sema::CheckMultiplyDivideOperands(ExprResult &LHS, ExprResult &RHS, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:11593:3: var_decl: Declaring variable "RHSResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:11596:5: uninit_use_in_call: Using uninitialized value "RHSResult.Val.Data" when calling "~EvalResult". +#11594| if (RHS.get()->isValueDependent() || +#11595| !RHS.get()->EvaluateAsInt(RHSResult, S.Context)) +#11596|-> return; +#11597| llvm::APSInt Right = RHSResult.Val.getInt(); +#11598| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:1854:3: var_decl: Declaring variable "Best". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:1882:3: uninit_use: Using uninitialized value "Best". Field "Best.Destroying" is uninitialized. +# 1880| } +# 1881| +# 1882|-> return Best; +# 1883| } +# 1884| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:2084:3: address_of: Taking address with "&Initializer" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:2084:3: identity_transfer: Passing "&Initializer" as argument 1 to constructor for class "MutableArrayRef", which sets "Exprs->Data" to that argument. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:2136:7: callee_ptr_arith: Passing "Exprs->Data" via argument "Exprs" to function "operator []" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2134| bool Braced = (InitStyle == CXXNewInitializationStyle::Braces); +# 2135| if (Braced) { +# 2136|-> auto *ILE = cast(Exprs[0]); +# 2137| Inits = MultiExprArg(ILE->getInits(), ILE->getNumInits()); +# 2138| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3774:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3783:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3781| } +# 3782| S.Type = BaseType; +# 3783|-> Steps.push_back(S); +# 3784| } +# 3785| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3788:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3791:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3789| S.Kind = BindingTemporary? SK_BindReferenceToTemporary : SK_BindReference; +# 3790| S.Type = T; +# 3791|-> Steps.push_back(S); +# 3792| } +# 3793| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3795:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3798:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3796| S.Kind = SK_FinalCopy; +# 3797| S.Type = T; +# 3798|-> Steps.push_back(S); +# 3799| } +# 3800| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3802:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3805:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3803| S.Kind = SK_ExtraneousCopyToTemporary; +# 3804| S.Type = T; +# 3805|-> Steps.push_back(S); +# 3806| } +# 3807| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3824:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3838:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3836| } +# 3837| S.Type = Ty; +# 3838|-> Steps.push_back(S); +# 3839| } +# 3840| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3842:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3845:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3843| S.Kind = SK_FunctionReferenceConversion; +# 3844| S.Type = Ty; +# 3845|-> Steps.push_back(S); +# 3846| } +# 3847| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3849:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3852:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3850| S.Kind = SK_AtomicConversion; +# 3851| S.Type = Ty; +# 3852|-> Steps.push_back(S); +# 3853| } +# 3854| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3867:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3870:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3868| S.Kind = SK_ListInitialization; +# 3869| S.Type = T; +# 3870|-> Steps.push_back(S); +# 3871| } +# 3872| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3888:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3891:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3889| S.Kind = SK_ZeroInitialization; +# 3890| S.Type = T; +# 3891|-> Steps.push_back(S); +# 3892| } +# 3893| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3895:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3898:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3896| S.Kind = SK_CAssignment; +# 3897| S.Type = T; +# 3898|-> Steps.push_back(S); +# 3899| } +# 3900| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3902:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3905:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3903| S.Kind = SK_StringInit; +# 3904| S.Type = T; +# 3905|-> Steps.push_back(S); +# 3906| } +# 3907| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3909:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3912:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3910| S.Kind = SK_ObjCObjectConversion; +# 3911| S.Type = T; +# 3912|-> Steps.push_back(S); +# 3913| } +# 3914| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3916:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3919:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3917| S.Kind = IsGNUExtension ? SK_GNUArrayInit : SK_ArrayInit; +# 3918| S.Type = T; +# 3919|-> Steps.push_back(S); +# 3920| } +# 3921| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3923:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3926:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "insert". +# 3924| S.Kind = SK_ArrayLoopIndex; +# 3925| S.Type = EltT; +# 3926|-> Steps.insert(Steps.begin(), S); +# 3927| +# 3928| S.Kind = SK_ArrayLoopInit; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3934:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3937:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3935| S.Kind = SK_ParenthesizedArrayInit; +# 3936| S.Type = T; +# 3937|-> Steps.push_back(S); +# 3938| } +# 3939| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3942:3: var_decl: Declaring variable "s". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3946:3: uninit_use_in_call: Using uninitialized value "s". Field "s" is uninitialized when calling "push_back". +# 3944| : SK_PassByIndirectRestore); +# 3945| s.Type = type; +# 3946|-> Steps.push_back(s); +# 3947| } +# 3948| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3950:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3953:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3951| S.Kind = SK_ProduceObjCObject; +# 3952| S.Type = T; +# 3953|-> Steps.push_back(S); +# 3954| } +# 3955| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3957:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3960:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3958| S.Kind = SK_StdInitializerList; +# 3959| S.Type = T; +# 3960|-> Steps.push_back(S); +# 3961| } +# 3962| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3964:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3967:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3965| S.Kind = SK_OCLSamplerInit; +# 3966| S.Type = T; +# 3967|-> Steps.push_back(S); +# 3968| } +# 3969| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3971:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3974:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3972| S.Kind = SK_OCLZeroOpaqueType; +# 3973| S.Type = T; +# 3974|-> Steps.push_back(S); +# 3975| } +# 3976| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3978:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3981:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3979| S.Kind = SK_ParenthesizedListInit; +# 3980| S.Type = T; +# 3981|-> Steps.push_back(S); +# 3982| } +# 3983| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3988:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3991:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "insert". +# 3989| S.Kind = SK_UnwrapInitList; +# 3990| S.Type = Syntactic->getInit(0)->getType(); +# 3991|-> Steps.insert(Steps.begin(), S); +# 3992| +# 3993| S.Kind = SK_RewrapInitList; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:9266:9: var_decl: Declaring variable "ER". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:9272:7: uninit_use_in_call: Using uninitialized value "ER.Val.Data" when calling "~EvalResult". +# 9270| S.Diag(Kind.getLocation(), diag::err_c23_constexpr_pointer_not_null); +# 9271| } +# 9272|-> } +# 9273| +# 9274| bool Complained; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:664:3: alloc_fn: Calling "operator new" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:664:3: assign: Assigning: "this->Paths" = "new clang::CXXBasePaths(true, true, true)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:665:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumEntries" when calling "swap". +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:665:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumTombstones" when calling "swap". +# 663| void LookupResult::setAmbiguousBaseSubobjects(CXXBasePaths &P) { +# 664| Paths = new CXXBasePaths; +# 665|-> Paths->swap(P); +# 666| addDeclsFromBasePaths(*Paths); +# 667| resolveKind(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:672:3: alloc_fn: Calling "operator new" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:672:3: assign: Assigning: "this->Paths" = "new clang::CXXBasePaths(true, true, true)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:673:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumEntries" when calling "swap". +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:673:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumTombstones" when calling "swap". +# 671| void LookupResult::setAmbiguousBaseSubobjectTypes(CXXBasePaths &P) { +# 672| Paths = new CXXBasePaths; +# 673|-> Paths->swap(P); +# 674| addDeclsFromBasePaths(*Paths); +# 675| resolveKind(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:4958:3: var_decl: Declaring variable "Chain". +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:4966:3: uninit_use: Using uninitialized value "Chain". Field "Chain.InlineElts" is uninitialized. +# 4964| Chain.push_back(DC->getPrimaryContext()); +# 4965| } +# 4966|-> return Chain; +# 4967| } +# 4968| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6382:5: var_decl: Declaring variable "DSAChecker". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6427:9: uninit_use_in_call: Using uninitialized element of array "DSAChecker.ImplicitMap". Field "DSAChecker.ImplicitMap[0][0].InlineElts" is uninitialized when calling "getImplicitMap". +# 6425| auto Kind = static_cast(VC); +# 6426| for (unsigned I = 0; I < OMPC_MAP_delete; ++I) { +# 6427|-> ArrayRef ImplicitMap = DSAChecker.getImplicitMap( +# 6428| Kind, static_cast(I)); +# 6429| ImplicitMaps[VC][I].append(ImplicitMap.begin(), ImplicitMap.end()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6382:5: var_decl: Declaring variable "DSAChecker". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6431:7: uninit_use_in_call: Using uninitialized element of array "DSAChecker.ImplicitMapModifier". Field "DSAChecker.ImplicitMapModifier[0].InlineElts" is uninitialized when calling "getImplicitMapModifier". +# 6429| ImplicitMaps[VC][I].append(ImplicitMap.begin(), ImplicitMap.end()); +# 6430| } +# 6431|-> ArrayRef ImplicitModifier = +# 6432| DSAChecker.getImplicitMapModifier(Kind); +# 6433| ImplicitMapModifiers[VC].append(ImplicitModifier.begin(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9865:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9871:7: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 9869| } else { +# 9870| Built.clear(/*Size=*/1); +# 9871|-> return 1; +# 9872| } +# 9873| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9877:5: var_decl: Declaring variable "EVResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9893:7: uninit_use_in_call: Using uninitialized value "EVResult.Val.Data" when calling "~EvalResult". +# 9891| } else { +# 9892| Built.clear(/*Size=*/1); +# 9893|-> return 1; +# 9894| } +# 9895| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21305:13: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21314:11: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#21312| continue; +#21313| } +#21314|-> } +#21315| +#21316| // OpenMP 5.0, 2.17.11 depend Clause, Restrictions, C/C++ + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21708:7: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21719:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#21717| assert(!RelevantExpr && "RelevantExpr is expected to be nullptr"); +#21718| RelevantExpr = TE; +#21719|-> } +#21720| +#21721| // Record the component - we don't have any declaration associated. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21787:7: var_decl: Declaring variable "ResultL". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21807:5: uninit_use_in_call: Using uninitialized value "ResultL.Val.Data" when calling "~EvalResult". +#21805| assert(!RelevantExpr && "RelevantExpr is expected to be nullptr"); +#21806| RelevantExpr = TE; +#21807|-> } +#21808| +#21809| // Record the component - we don't have any declaration associated. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21786:7: var_decl: Declaring variable "ResultR". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21807:5: uninit_use_in_call: Using uninitialized value "ResultR.Val.Data" when calling "~EvalResult". +#21805| assert(!RelevantExpr && "RelevantExpr is expected to be nullptr"); +#21806| RelevantExpr = TE; +#21807|-> } +#21808| +#21809| // Record the component - we don't have any declaration associated. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:24873:7: var_decl: Declaring variable "EvResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:24887:5: uninit_use_in_call: Using uninitialized value "EvResult.Val.Data" when calling "~EvalResult". +#24885| } +#24886| } +#24887|-> } +#24888| NewDims.push_back(Dim); +#24889| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:387:9: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:388:9: uninit_use_in_call: Using uninitialized value "Result.U" when calling "convertFromAPInt". +# 386| // Convert the integer to the floating type. +# 387| llvm::APFloat Result(Ctx.getFloatTypeSemantics(ToType)); +# 388|-> Result.convertFromAPInt(*IntConstantValue, IntConstantValue->isSigned(), +# 389| llvm::APFloat::rmNearestTiesToEven); +# 390| // And back. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:422:7: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:461:5: uninit_use_in_call: Using uninitialized value "R.Val.Data" when calling "~EvalResult". +# 459| return NK_Variable_Narrowing; +# 460| } +# 461|-> } +# 462| return NK_Not_Narrowing; +# 463| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:686:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:762:3: uninit_use: Using uninitialized value "Result". Field "Result.Diagnostic" is uninitialized. +# 760| } +# 761| +# 762|-> return Result; +# 763| } +# 764| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:12614:3: var_decl: Declaring variable "Cands". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:12648:3: uninit_use: Using uninitialized value "Cands". Field "Cands.InlineElts" is uninitialized. +#12646| Cands, CompareOverloadCandidatesForDisplay(S, OpLoc, Args.size(), Kind)); +#12647| +#12648|-> return Cands; +#12649| } +#12650| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:13364:3: var_decl: Declaring variable "DAP" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:13439:5: uninit_use: Using uninitialized value "DAP". +#13437| return nullptr; +#13438| } +#13439|-> Pair = DAP; +#13440| } +#13441| return Result; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:2344:9: alias: Assigning: "DeducedInit" = "&OpaqueId". "DeducedInit" now points to byte 0 of "OpaqueId" (which consists of 24 bytes). +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:2351:11: overrun-buffer-val: Overrunning struct type _ZN5clang15OpaqueValueExprE of 24 bytes by passing it to a function which accesses it at byte offset 47. +# 2349| if (Result != TemplateDeductionResult::Success && +# 2350| Result != TemplateDeductionResult::AlreadyDiagnosed) +# 2351|-> DiagnoseAutoDeductionFailure(D, DeducedInit); +# 2352| if (FirstType.isNull()) { +# 2353| D->setInvalidDecl(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:3906:5: alias: Assigning: "RetExpr" = "&VoidVal". "RetExpr" now points to byte 0 of "VoidVal" (which consists of 24 bytes). +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:3922:5: overrun-buffer-val: Overrunning struct type _ZN5clang22CXXScalarValueInitExprE of 24 bytes by passing it to a function which accesses it at byte offset 31. +# 3920| } +# 3921| TemplateSpecCandidateSet FailedTSC(TemplateSpecLoc); +# 3922|-> TemplateDeductionResult Res = DeduceAutoType( +# 3923| OrigResultType, RetExpr, Deduced, Info, /*DependentDeduction=*/false, +# 3924| /*IgnoreConstraints=*/false, &FailedTSC); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmtAsm.cpp:753:3: var_decl: Declaring variable "Eval". +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmtAsm.cpp:755:5: uninit_use_in_call: Using uninitialized value "Eval.Val.Data" when calling "~EvalResult". +# 753| Expr::EvalResult Eval; +# 754| if (T->isFunctionType() || T->isDependentType()) +# 755|-> return Info.setLabel(Res); +# 756| if (Res->isPRValue()) { +# 757| bool IsEnum = isa(T); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplate.cpp:2726:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplate.cpp:2731:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 2729| Results.push_back(Index); +# 2730| } +# 2731|-> return Results; +# 2732| } +# 2733| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:3286:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:3292:3: uninit_use: Using uninitialized value "Result". +# 3290| TemplateArgs, Deduced, Info); +# 3291| }); +# 3292|-> return Result; +# 3293| } +# 3294| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4360:5: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4366:5: uninit_use: Using uninitialized value "Result". +# 4364| Info); +# 4365| }); +# 4366|-> if (Result != TemplateDeductionResult::Success) +# 4367| return Result; +# 4368| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4526:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4535:3: uninit_use: Using uninitialized value "Result". +# 4533| }); +# 4534| }); +# 4535|-> return Result; +# 4536| } +# 4537| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4621:5: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4627:5: uninit_use: Using uninitialized value "Result". +# 4625| &FunctionType, Info); +# 4626| }); +# 4627|-> if (Result != TemplateDeductionResult::Success) +# 4628| return Result; +# 4629| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4667:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4673:3: uninit_use: Using uninitialized value "Result". +# 4671| Specialization, Info); +# 4672| }); +# 4673|-> if (Result != TemplateDeductionResult::Success) +# 4674| return Result; +# 4675| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4848:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4855:3: uninit_use: Using uninitialized value "Result". +# 4853| }); +# 4854| Specialization = cast_or_null(ConversionSpecialized); +# 4855|-> return Result; +# 4856| } +# 4857| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:5939:3: var_decl: Declaring variable "AtLeastAsSpecialized" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:5946:3: uninit_use: Using uninitialized value "AtLeastAsSpecialized". +# 5944| Deduced, Info) == TemplateDeductionResult::Success; +# 5945| }); +# 5946|-> return AtLeastAsSpecialized; +# 5947| } +# 5948| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiate.cpp:501:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiate.cpp:561:7: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgumentLists.InlineElts" is uninitialized. +# 559| +# 560| if (R.IsDone) +# 561|-> return Result; +# 562| if (R.ClearRelativeToPrimary) +# 563| RelativeToPrimary = false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4108:3: var_decl: Declaring variable "SubstD" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4112:3: uninit_use: Using uninitialized value "SubstD". +# 4110| SubstD = Instantiator.Visit(D); +# 4111| }); +# 4112|-> return SubstD; +# 4113| } +# 4114| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11116:5: var_decl: Declaring variable "InstantiatedVarList". +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11129:5: uninit_use: Using uninitialized value "InstantiatedVarList". Field "InstantiatedVarList.InlineElts" is uninitialized. +#11127| } +#11128| +#11129|-> return InstantiatedVarList; +#11130| } +#11131| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11452:3: var_decl: Declaring variable "TransformedClauses". +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11458:3: uninit_use: Using uninitialized value "TransformedClauses". Field "TransformedClauses.InlineElts" is uninitialized. +#11456| TransformedClauses.push_back(TransformedClause); +#11457| } +#11458|-> return TransformedClauses; +#11459| } +#11460| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:940:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:971:3: uninit_use: Using uninitialized value "Result". Field "Result.Instance.InlineElts" is uninitialized. +# 969| } +# 970| +# 971|-> return Result; +# 972| } +# 973| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:11763:3: var_decl: Declaring variable "VarList". +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:11766:3: uninit_use: Using uninitialized value "VarList". Field "VarList.InlineElts" is uninitialized. +#11764| for (unsigned I = 0; I < NumVars; ++I) +#11765| VarList.push_back(readSubExpr()); +#11766|-> return VarList; +#11767| } +#11768| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReaderStmt.cpp:790:3: var_decl: Declaring variable "Satisfaction". +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReaderStmt.cpp:808:3: uninit_use: Using uninitialized value "Satisfaction". Field "Satisfaction.TemplateArgs.InlineElts" is uninitialized. +# 806| } +# 807| } +# 808|-> return Satisfaction; +# 809| } +# 810| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/GlobalModuleIndex.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Serialization/GlobalModuleIndex.cpp:118:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 116| } +# 117| +# 118|-> return Result; +# 119| } +# 120| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp:51:3: var_decl: Declaring variable "Message". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp:64:3: uninit_use: Using uninitialized value "Message". Field "Message.InlineElts" is uninitialized. +# 62| } +# 63| +# 64|-> return Message; +# 65| } +# 66| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp:493:3: var_decl: Declaring variable "NameParts". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp:501:3: uninit_use: Using uninitialized value "NameParts". Field "NameParts.InlineElts" is uninitialized. +# 499| } +# 500| NameParts.emplace_back(C.Name); +# 501|-> return NameParts; +# 502| } +# 503| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:258:3: assignment: Assigning: "idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, true)". The value of "idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:260:5: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 99999 (byte offset 2399999) using index "idx" (which evaluates to 99999). +# 258| idx = getTrackedFunctionIndex(funName, true); +# 259| if (idx != InvalidIdx) { +# 260|-> unsigned paramIdx = FunctionsToTrack[idx].Param; +# 261| if (CE->getNumArgs() <= paramIdx) +# 262| return; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:290:3: assignment: Assigning: "idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, false)". The value of "idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:294:3: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 99999 (byte offset 2399999) using index "idx" (which evaluates to 99999). +# 292| return; +# 293| +# 294|-> unsigned paramIdx = FunctionsToTrack[idx].Param; +# 295| if (CE->getNumArgs() <= paramIdx) +# 296| return; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:404:3: assignment: Assigning: "idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, true)". The value of "idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:408:3: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 99999 (byte offset 2399999) using index "idx" (which evaluates to 99999). +# 406| return; +# 407| +# 408|-> const Expr *ArgExpr = CE->getArg(FunctionsToTrack[idx].Param); +# 409| // If the argument entered as an enclosing function parameter, skip it to +# 410| // avoid false positives. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:632:3: assignment: Assigning: "Idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, true)". The value of "Idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:634:3: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 100000 (byte offset 2400023) using index "Idx" (which evaluates to 100000). +# 632| unsigned Idx = getTrackedFunctionIndex(funName, true); +# 633| assert(Idx != InvalidIdx && "This should be a call to an allocator."); +# 634|-> const Expr *ArgExpr = CE->getArg(FunctionsToTrack[Idx].Param); +# 635| PathDiagnosticLocation Pos(ArgExpr, BRC.getSourceManager(), +# 636| N->getLocationContext()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:140:3: var_decl: Declaring variable "Regions". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:147:3: uninit_use: Using uninitialized value "Regions". Field "Regions.InlineElts" is uninitialized. +# 145| Regions.push_back(Region); +# 146| } +# 147|-> return Regions; +# 148| } +# 149| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:103:20: constructor_uses_global_object: The constructor of global object "::ValistChecker::VAListAccepters" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::ValistChecker::VAListAccepters" might be created before "Allocator" is available. +# 101| +# 102| const SmallVector +# 103|-> ValistChecker::VAListAccepters = {{{CDM::CLibrary, {"vfprintf"}, 3}, 2}, +# 104| {{CDM::CLibrary, {"vfscanf"}, 3}, 2}, +# 105| {{CDM::CLibrary, {"vprintf"}, 2}, 1}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:103:20: constructor_uses_global_object: The constructor of global object "::ValistChecker::VAListAccepters" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::ValistChecker::VAListAccepters" might be created before "fuzzer::TPC" is available. +# 101| +# 102| const SmallVector +# 103|-> ValistChecker::VAListAccepters = {{{CDM::CLibrary, {"vfprintf"}, 3}, 2}, +# 104| {{CDM::CLibrary, {"vfscanf"}, 3}, 2}, +# 105| {{CDM::CLibrary, {"vprintf"}, 2}, 1}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:103:20: constructor_uses_global_object: The constructor of global object "::ValistChecker::VAListAccepters" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::ValistChecker::VAListAccepters" might be created before "scudo::RegionPageMap::Buffers" is available. +# 101| +# 102| const SmallVector +# 103|-> ValistChecker::VAListAccepters = {{{CDM::CLibrary, {"vfprintf"}, 3}, 2}, +# 104| {{CDM::CLibrary, {"vfscanf"}, 3}, 2}, +# 105| {{CDM::CLibrary, {"vprintf"}, 2}, 1}, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:829:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:846:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 844| ValueFactory.getValue(ToInt)); +# 845| } +# 846|-> return Result; +# 847| } +# 848| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:1614:3: var_decl: Declaring variable "Extents". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:1618:3: uninit_use: Using uninitialized value "Extents". Field "Extents.InlineElts" is uninitialized. +# 1616| Extents.push_back(CAT->getZExtSize()); +# 1617| } while ((CAT = dyn_cast(CAT->getElementType()))); +# 1618|-> return Extents; +# 1619| } +# 1620| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp:131:3: var_decl: Declaring variable "Flows". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp:142:3: uninit_use: Using uninitialized value "Flows". Field "Flows.InlineElts" is uninitialized. +# 140| Flows.push_back(Flow); +# 141| } +# 142|-> return Flows; +# 143| } +# 144| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Support/RISCVVIntrinsicUtils.cpp:1181:3: var_decl: Declaring variable "PrototypeDescriptors". +llvm-project-19.0.0.src/clang/lib/Support/RISCVVIntrinsicUtils.cpp:1198:3: uninit_use: Using uninitialized value "PrototypeDescriptors". Field "PrototypeDescriptors.InlineElts" is uninitialized. +# 1196| Prototypes = Prototypes.drop_front(Idx + 1); +# 1197| } +# 1198|-> return PrototypeDescriptors; +# 1199| } +# 1200| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/AllTUsExecution.cpp:59:5: constructor_uses_global_object: The constructor of global object "clang::tooling::Filter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::Filter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| +# 58| llvm::cl::opt +# 59|-> Filter("filter", +# 60| llvm::cl::desc("Only process files that match this filter. " +# 61| "This flag only applies to all-TUs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/AllTUsExecution.cpp:151:25: constructor_uses_global_object: The constructor of global object "clang::tooling::ExecutorConcurrency" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::ExecutorConcurrency" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 149| } +# 150| +# 151|-> llvm::cl::opt ExecutorConcurrency( +# 152| "execute-concurrency", +# 153| llvm::cl::desc("The number of threads used to process all files in " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp:614:5: var_decl: Declaring variable "FakeInputPath". +llvm-project-19.0.0.src/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp:622:5: uninit_use_in_call: Using uninitialized value "FakeInputPath". Field "FakeInputPath.InlineElts" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 620| +# 621| ModifiedCommandLine = CommandLine; +# 622|-> ModifiedCommandLine->emplace_back(FakeInputPath); +# 623| } +# 624| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp:30:30: constructor_uses_global_object: The constructor of global object "IncludeDirectories[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IncludeDirectories[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace llvm; +# 29| +# 30|-> static cl::list IncludeDirectories( +# 31| "I", cl::desc("Include directories to use while compiling"), +# 32| cl::value_desc("directory"), cl::Required, cl::OneOrMore, cl::Prefix); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp:35:5: constructor_uses_global_object: The constructor of global object "SkipProcessing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SkipProcessing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> SkipProcessing("skip-processing", +# 36| cl::desc("Avoid processing the AST header file"), +# 37| cl::Required, cl::value_desc("bool")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp:39:29: constructor_uses_global_object: The constructor of global object "JsonOutputPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JsonOutputPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::Required, cl::value_desc("bool")); +# 38| +# 39|-> static cl::opt JsonOutputPath("json-output-path", +# 40| cl::desc("json output path"), +# 41| cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/Execution.cpp:19:5: constructor_uses_global_object: The constructor of global object "clang::tooling::ExecutorName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::ExecutorName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| +# 18| llvm::cl::opt +# 19|-> ExecutorName("executor", llvm::cl::desc("The name of the executor to use."), +# 20| llvm::cl::init("standalone")); +# 21| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp:22:3: var_decl: Declaring variable "LangOpts". +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp:33:3: uninit_use: Using uninitialized value "LangOpts". Field "LangOpts.GPUDefaultStream" is uninitialized. +# 31| LangOpts.DeclSpecKeyword = 1; // To get __declspec. +# 32| LangOpts.WChar = 1; // To get wchar_t +# 33|-> return LangOpts; +# 34| } +# 35| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:245:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:248:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 246| for (auto HeaderID : getMappingPerLang(Language)->SymbolHeaderIDs[ID]) +# 247| Results.emplace_back(Header(HeaderID, Language)); +# 248|-> return Results; +# 249| } +# 250| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/Refactoring/Lookup.cpp:31:3: var_decl: Declaring variable "Namespaces". +llvm-project-19.0.0.src/clang/lib/Tooling/Refactoring/Lookup.cpp:42:3: uninit_use: Using uninitialized value "Namespaces". Field "Namespaces.InlineElts" is uninitialized. +# 40| Context = GetNextNamedNamespace(Context->getParent())) +# 41| Namespaces.push_back(cast(Context)); +# 42|-> return Namespaces; +# 43| } +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:19:22: constructor_uses_global_object: The constructor of global object "Help" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Help" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| using namespace llvm; +# 18| +# 19|-> static cl::opt Help("h", cl::desc("Alias for -help"), cl::Hidden); +# 20| +# 21| // Mark all our options with this category. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "Allocator" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "GlobalParser" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "fuzzer::TPC" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/apinotes-test/APINotesTest.cpp:17:36: constructor_uses_global_object: The constructor of global object "APINotes[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "APINotes[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 15| #include "llvm/Support/WithColor.h" +# 16| +# 17|-> static llvm::cl::list APINotes(llvm::cl::Positional, +# 18| llvm::cl::desc("[ ...]"), +# 19| llvm::cl::Required); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/apinotes-test/APINotesTest.cpp:22:5: constructor_uses_global_object: The constructor of global object "OutputFileName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputFileName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| +# 21| static llvm::cl::opt +# 22|-> OutputFileName("o", llvm::cl::desc("output filename"), +# 23| llvm::cl::value_desc("filename"), llvm::cl::init("-")); +# 24| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:27:1: constructor_uses_global_object: The constructor of global object "CheckOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CheckOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| +# 26| static llvm::cl::opt +# 27|-> CheckOnly("check-only", +# 28| llvm::cl::desc("Just check for issues that need to be handled manually")); +# 29| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:35:1: constructor_uses_global_object: The constructor of global object "OutputTransformations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputTransformations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static llvm::cl::opt +# 35|-> OutputTransformations("output-transformations", +# 36| llvm::cl::desc("Print the source transformations")); +# 37| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:39:1: constructor_uses_global_object: The constructor of global object "VerifyDiags" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyDiags" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static llvm::cl::opt +# 39|-> VerifyDiags("verify",llvm::cl::desc("Verify emitted diagnostics and warnings")); +# 40| +# 41| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:42:1: constructor_uses_global_object: The constructor of global object "VerboseOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerboseOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static llvm::cl::opt +# 42|-> VerboseOpt("v", llvm::cl::desc("Enable verbose output")); +# 43| +# 44| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:45:1: constructor_uses_global_object: The constructor of global object "VerifyTransformedFiles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyTransformedFiles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| static llvm::cl::opt +# 45|-> VerifyTransformedFiles("verify-transformed-files", +# 46| llvm::cl::desc("Read pairs of file mappings (typically the output of " +# 47| "c-arcmt-test) and compare their contents with the filenames " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:51:1: constructor_uses_global_object: The constructor of global object "RemappingsFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemappingsFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| +# 50| static llvm::cl::opt +# 51|-> RemappingsFile("remappings-file", +# 52| llvm::cl::desc("Pairs of file mappings (typically the output of " +# 53| "c-arcmt-test)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:56:1: constructor_uses_global_object: The constructor of global object "ResultFiles[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ResultFiles[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| static llvm::cl::list +# 56|-> ResultFiles(llvm::cl::Positional, llvm::cl::desc("...")); +# 57| +# 58| static llvm::cl::extrahelp extraHelp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:58:28: constructor_uses_global_object: The constructor of global object "extraHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "extraHelp" might be created before "GlobalParser" is available. +# 56| ResultFiles(llvm::cl::Positional, llvm::cl::desc("...")); +# 57| +# 58|-> static llvm::cl::extrahelp extraHelp( +# 59| "\nusage with compiler args: arcmt-test [options] --args [compiler flags]\n"); +# 60| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: alloc_fn: Calling "malloc" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: assign: Assigning: "*unsaved_files" = "(struct CXUnsavedFile *)malloc(24UL * *num_unsaved_files)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:300:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Contents" when calling "free_remapped_files". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:300:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Filename" when calling "free_remapped_files". +# 298| fprintf(stderr, +# 299| "error: %sfrom:to argument is missing comma\n", opt_name); +# 300|-> free_remapped_files(*unsaved_files, i); +# 301| *unsaved_files = 0; +# 302| *num_unsaved_files = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: alloc_fn: Calling "malloc" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: assign: Assigning: "*unsaved_files" = "(struct CXUnsavedFile *)malloc(24UL * *num_unsaved_files)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:311:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Contents" when calling "free_remapped_files". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:311:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Filename" when calling "free_remapped_files". +# 309| fprintf(stderr, "error: cannot open file %s that we are remapping to\n", +# 310| sep + 1); +# 311|-> free_remapped_files(*unsaved_files, i); +# 312| *unsaved_files = 0; +# 313| *num_unsaved_files = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: alloc_fn: Calling "malloc" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: assign: Assigning: "*unsaved_files" = "(struct CXUnsavedFile *)malloc(24UL * *num_unsaved_files)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:329:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Contents" when calling "free_remapped_files". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:329:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Filename" when calling "free_remapped_files". +# 327| (feof(to_file) ? "EOF" : "error"), sep + 1); +# 328| fclose(to_file); +# 329|-> free_remapped_files(*unsaved_files, i); +# 330| free(contents); +# 331| *unsaved_files = 0; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2343:3: alloc_fn: Storage is returned from allocation function "clang_createIndex". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2343:3: var_assign: Assigning: "Idx" = storage returned from "clang_createIndex(1, 1)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2349:3: noescape: Resource "Idx" is not freed or pointed-to in "CreateTranslationUnit". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2350:5: leaked_storage: Variable "Idx" going out of scope leaks the storage it points to. +# 2348| +# 2349| if (!CreateTranslationUnit(Idx, ast_file, &TU)) +# 2350|-> return 1; +# 2351| +# 2352| if ((fp = fopen(source_file, "r")) == NULL) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2905:5: noescape: Resource "&Locations[Loc].filename" is not freed or pointed-to in "parse_file_line_column". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2908:7: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2906| &Locations[Loc].line, +# 2907| &Locations[Loc].column, 0, 0))) +# 2908|-> return errorCode; +# 2909| } +# 2910| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2913:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2911| if (parse_remapped_files(argc, argv, NumLocations + 1, &unsaved_files, +# 2912| &num_unsaved_files)) +# 2913|-> return -1; +# 2914| +# 2915| if (getenv("CINDEXTEST_EDITING")) + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2930:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2928| fprintf(stderr, "unable to parse input\n"); +# 2929| describeLibclangFailure(Err); +# 2930|-> return -1; +# 2931| } +# 2932| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2934:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2932| +# 2933| if (checkForErrors(TU) != 0) +# 2934|-> return -1; +# 2935| +# 2936| for (I = 0; I != Repeats; ++I) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2943:9: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2941| describeLibclangFailure(Err); +# 2942| clang_disposeTranslationUnit(TU); +# 2943|-> return 1; +# 2944| } +# 2945| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3199:5: noescape: Resource "&Locations[Loc].filename" is not freed or pointed-to in "parse_file_line_column". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3202:7: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3200| &Locations[Loc].line, +# 3201| &Locations[Loc].column, 0, 0))) +# 3202|-> return errorCode; +# 3203| } +# 3204| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3207:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3205| if (parse_remapped_files(argc, argv, NumLocations + 1, &unsaved_files, +# 3206| &num_unsaved_files)) +# 3207|-> return -1; +# 3208| +# 3209| if (getenv("CINDEXTEST_EDITING")) + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3225:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3223| describeLibclangFailure(Err); +# 3224| clang_disposeTranslationUnit(TU); +# 3225|-> return -1; +# 3226| } +# 3227| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3229:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3227| +# 3228| if (checkForErrors(TU) != 0) +# 3229|-> return -1; +# 3230| +# 3231| for (I = 0; I != Repeats; ++I) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3238:9: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3236| describeLibclangFailure(Err); +# 3237| clang_disposeTranslationUnit(TU); +# 3238|-> return 1; +# 3239| } +# 3240| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3313:5: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3311| if (parse_remapped_files(argc, argv, NumFilenames + 1, &unsaved_files, +# 3312| &num_unsaved_files)) +# 3313|-> return -1; +# 3314| +# 3315| if (getenv("CINDEXTEST_EDITING")) + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3332:5: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3330| describeLibclangFailure(Err); +# 3331| clang_disposeTranslationUnit(TU); +# 3332|-> return -1; +# 3333| } +# 3334| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3336:5: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3334| +# 3335| if (checkForErrors(TU) != 0) +# 3336|-> return -1; +# 3337| +# 3338| for (I = 0; I != Repeats; ++I) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3345:9: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3343| describeLibclangFailure(Err); +# 3344| clang_disposeTranslationUnit(TU); +# 3345|-> return 1; +# 3346| } +# 3347| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4409:9: alloc_fn: Storage is returned from allocation function "clang_CompilationDatabase_getCompileCommands". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4409:9: var_assign: Assigning: "CCmds" = storage returned from "clang_CompilationDatabase_getCompileCommands(db, argv[i + 1])". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4417:9: noescape: Resource "CCmds" is not freed or pointed-to in "clang_CompileCommands_getSize". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4458:3: leaked_storage: Variable "CCmds" going out of scope leaks the storage it points to. +# 4456| free(tmp); +# 4457| +# 4458|-> return errorCode; +# 4459| } +# 4460| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4397:3: alloc_fn: Storage is returned from allocation function "clang_CompilationDatabase_fromDirectory". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4397:3: var_assign: Assigning: "db" = storage returned from "clang_CompilationDatabase_fromDirectory(buildDir, &ec)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4458:3: leaked_storage: Variable "db" going out of scope leaks the storage it points to. +# 4456| free(tmp); +# 4457| +# 4458|-> return errorCode; +# 4459| } +# 4460| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4587:3: alloc_fn: Storage is returned from allocation function "fopen". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4587:3: var_assign: Assigning: "fp" = storage returned from "fopen(file_name, "r")". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4594:3: noescape: Resource "fp" is not freed or pointed-to in "feof". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4595:5: noescape: Resource "fp" is not freed or pointed-to in "fgetc". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4594:3: noescape: Resource "fp" is not freed or pointed-to in "feof". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4595:5: noescape: Resource "fp" is not freed or pointed-to in "fgetc". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4616:9: leaked_storage: Variable "fp" going out of scope leaks the storage it points to. +# 4614| } +# 4615| if (print_usrs(&args[0], &args[i])) +# 4616|-> return 1; +# 4617| } +# 4618| else + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "Allocator" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "GlobalParser" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "fuzzer::TPC" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "Allocator" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "fuzzer::TPC" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "scudo::RegionPageMap::Buffers" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:55:22: constructor_uses_global_object: The constructor of global object "::options::MoreHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::options::MoreHelp" might be created before "GlobalParser" is available. +# 53| cl::cat(IndexTestCoreCategory)); +# 54| +# 55|-> static cl::extrahelp MoreHelp( +# 56| "\nAdd \"-- \" at the end to setup the compiler " +# 57| "invocation\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:61:1: constructor_uses_global_object: The constructor of global object "::options::DumpModuleImports" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::DumpModuleImports" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| +# 60| static cl::opt +# 61|-> DumpModuleImports("dump-imported-module-files", +# 62| cl::desc("Print symbols and input files from imported modules")); +# 63| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:65:1: constructor_uses_global_object: The constructor of global object "::options::IncludeLocals" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::IncludeLocals" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| static cl::opt +# 65|-> IncludeLocals("include-locals", cl::desc("Print local symbols")); +# 66| +# 67| static cl::opt IgnoreMacros("ignore-macros", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:67:22: constructor_uses_global_object: The constructor of global object "::options::IgnoreMacros" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::IgnoreMacros" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| IncludeLocals("include-locals", cl::desc("Print local symbols")); +# 66| +# 67|-> static cl::opt IgnoreMacros("ignore-macros", +# 68| cl::desc("Skip indexing macros")); +# 69| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:71:1: constructor_uses_global_object: The constructor of global object "::options::ModuleFilePath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::ModuleFilePath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| static cl::opt +# 71|-> ModuleFilePath("module-file", +# 72| cl::desc("Path to module file to print symbols from")); +# 73| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:74:3: constructor_uses_global_object: The constructor of global object "::options::ModuleFormat[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::ModuleFormat[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| cl::desc("Path to module file to print symbols from")); +# 73| static cl::opt +# 74|-> ModuleFormat("fmodule-format", cl::init("raw"), +# 75| cl::desc("Container format for clang modules and PCH, 'raw' or 'obj'")); +# 76| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:42:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 40| using namespace llvm; +# 41| +# 42|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 43| static cl::extrahelp MoreHelp( +# 44| "\tFor example, to run clang-check on all files in a subtree of the\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:43:22: constructor_uses_global_object: The constructor of global object "MoreHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "MoreHelp" might be created before "GlobalParser" is available. +# 41| +# 42| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 43|-> static cl::extrahelp MoreHelp( +# 44| "\tFor example, to run clang-check on all files in a subtree of the\n" +# 45| "\tsource tree, use:\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "Allocator" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "GlobalParser" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "fuzzer::TPC" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "Allocator" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "fuzzer::TPC" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "Allocator" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "fuzzer::TPC" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "scudo::RegionPageMap::Buffers" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "Allocator" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "fuzzer::TPC" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "scudo::RegionPageMap::Buffers" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "Allocator" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "Allocator" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "fuzzer::TPC" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "scudo::RegionPageMap::Buffers" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "Allocator" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "Allocator" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "fuzzer::TPC" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "Allocator" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "fuzzer::TPC" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "Allocator" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "fuzzer::TPC" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "Allocator" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "fuzzer::TPC" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "Allocator" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "GlobalParser" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "fuzzer::TPC" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "Allocator" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "fuzzer::TPC" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "Allocator" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "fuzzer::TPC" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "scudo::RegionPageMap::Buffers" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "Allocator" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "fuzzer::TPC" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "scudo::RegionPageMap::Buffers" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "Allocator" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "fuzzer::TPC" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "scudo::RegionPageMap::Buffers" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "Allocator" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "GlobalParser" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "Allocator" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "GlobalParser" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "Allocator" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "Allocator" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "fuzzer::TPC" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "Allocator" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "Allocator" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "Allocator" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "Allocator" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "GlobalParser" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "fuzzer::TPC" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:122:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 120| }; +# 121| +# 122|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 123| +# 124| static IntrusiveRefCntPtr Diags; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:33:22: constructor_uses_global_object: The constructor of global object "Help" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Help" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| using clang::tooling::Replacements; +# 32| +# 33|-> static cl::opt Help("h", cl::desc("Alias for -help"), cl::Hidden); +# 34| +# 35| // Mark all our options with this category, everything else (except for -version + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:37:27: constructor_uses_global_object: The constructor of global object "ClangFormatCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangFormatCategory" might be created before "Allocator" is available. +# 35| // Mark all our options with this category, everything else (except for -version +# 36| // and -help) will be hidden. +# 37|-> static cl::OptionCategory ClangFormatCategory("Clang-format options"); +# 38| +# 39| static cl::list + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:37:27: error[too-many]: 11982 occurrences of constructor_uses_global_object exceeded the specified limit 1024 +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:37:27: note: 10958 occurrences of constructor_uses_global_object were discarded because of this + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/tools/driver/cc1gen_reproducer_main.cpp:189:3: extract: Calling "c_str" which extracts wrapped state from local "Path". +llvm-project-19.0.0.src/clang/tools/driver/cc1gen_reproducer_main.cpp:189:3: escape: The internal representation of local "Path" escapes into "DriverArgs[0UL]", but is destroyed when it exits scope. +# 187| DriverArgs.push_back(Arg.c_str()); +# 188| std::string Path = GetExecutablePath(Argv0, /*CanonicalPrefixes=*/true); +# 189|-> DriverArgs[0] = Path.c_str(); +# 190| std::optional Report = +# 191| generateReproducerForInvocationArguments(DriverArgs, InvocationInfo, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:3804:3: var_decl: Declaring variable "Pieces". +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:3826:3: uninit_use: Using uninitialized value "Pieces". Field "Pieces.InlineElts" is uninitialized. +# 3824| } +# 3825| +# 3826|-> return Pieces; +# 3827| } +# 3828| } // namespace + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:4422:3: var_decl: Declaring variable "ER". +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:4425:5: uninit_use_in_call: Using uninitialized value "ER.Val.Data" when calling "~EvalResult". +# 4423| ASTContext &ctx = getCursorContext(C); +# 4424| if (!expr) +# 4425|-> return nullptr; +# 4426| +# 4427| expr = expr->IgnoreParens(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:9413:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:9413:3: leaked_storage: Failing to save or free storage allocated by "entries.release()" leaks it. +# 9411| CXTUResourceUsage usage = {(void *)entries.get(), (unsigned)entries->size(), +# 9412| !entries->empty() ? &(*entries)[0] : nullptr}; +# 9413|-> (void)entries.release(); +# 9414| return usage; +# 9415| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:980:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(5.)". +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:980:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 978| EXPECT_TRUE(matches("double i = 5.0;", floatLiteral(equals(5.0)))); +# 979| EXPECT_TRUE(matches("double i = 5.0;", floatLiteral(equals(5.0f)))); +# 980|-> EXPECT_TRUE( +# 981| matches("double i = 5.0;", floatLiteral(equals(llvm::APFloat(5.0))))); +# 982| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:986:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(6.)". +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:986:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 984| EXPECT_TRUE(notMatches("double i = 5.0;", floatLiteral(equals(6.0)))); +# 985| EXPECT_TRUE(notMatches("double i = 5.0;", floatLiteral(equals(6.0f)))); +# 986|-> EXPECT_TRUE( +# 987| notMatches("double i = 5.0;", floatLiteral(equals(llvm::APFloat(6.0))))); +# 988| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp:70:3: var_decl: Declaring variable "Chain". +llvm-project-19.0.0.src/clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp:84:3: uninit_use: Using uninitialized value "Chain". Field "Chain.InlineElts" is uninitialized. +# 82| E = dyn_cast(By); +# 83| } +# 84|-> return Chain; +# 85| } +# 86| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/BufferSourceTest.cpp:42:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/BufferSourceTest.cpp:45:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/BufferSourceTest.cpp:45:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 43| LO.CPlusPlus = 1; +# 44| LO.CPlusPlus11 = 1; +# 45|-> TestCompiler Compiler(LO); +# 46| Compiler.init(TestProgram); +# 47| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/CodeGenExternalTest.cpp:262:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/CodeGenExternalTest.cpp:265:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/CodeGenExternalTest.cpp:265:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 263| LO.CPlusPlus = 1; +# 264| LO.CPlusPlus11 = 1; +# 265|-> TestCompiler Compiler(LO); +# 266| auto CustomASTConsumer +# 267| = std::make_unique(std::move(Compiler.CG)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:28:5: var_decl: Declaring variable "CGOpts". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:31:5: uninit_use: Using uninitialized value "CGOpts". Field "CGOpts.LargeDataThreshold" is uninitialized. +# 29| CGOpts.StructPathTBAA = 1; +# 30| CGOpts.OptimizationLevel = 1; +# 31|-> return CGOpts; +# 32| } +# 33| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:64:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:65:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:65:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 63| +# 64| clang::LangOptions LO; +# 65|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 66| Compiler.init(TestProgram); +# 67| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:160:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:162:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:162:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 160| clang::LangOptions LO; +# 161| LO.C11 = 1; +# 162|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 163| Compiler.init(TestProgram); +# 164| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:282:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:284:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:284:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 282| clang::LangOptions LO; +# 283| LO.C11 = 1; +# 284|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 285| Compiler.init(TestProgram); +# 286| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:375:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:377:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:377:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 375| clang::LangOptions LO; +# 376| LO.C11 = 1; +# 377|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 378| Compiler.init(TestProgram); +# 379| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:469:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:471:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:471:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 469| clang::LangOptions LO; +# 470| LO.C11 = 1; +# 471|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 472| Compiler.init(TestProgram); +# 473| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:571:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:574:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:574:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 572| LO.CPlusPlus = 1; +# 573| LO.CPlusPlus11 = 1; +# 574|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 575| Compiler.init(TestProgram); +# 576| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:694:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:697:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:697:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 695| LO.CPlusPlus = 1; +# 696| LO.CPlusPlus11 = 1; +# 697|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 698| Compiler.init(TestProgram); +# 699| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:795:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:798:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:798:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 796| LO.CPlusPlus = 1; +# 797| LO.CPlusPlus11 = 1; +# 798|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 799| Compiler.init(TestProgram); +# 800| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:877:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:880:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:880:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 878| LO.CPlusPlus = 1; +# 879| LO.CPlusPlus11 = 1; +# 880|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 881| Compiler.init(TestProgram); +# 882| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:956:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:959:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:959:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 957| LO.CPlusPlus = 1; +# 958| LO.CPlusPlus11 = 1; +# 959|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 960| Compiler.init(TestProgram); +# 961| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1032:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1035:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1035:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 1033| LO.CPlusPlus = 1; +# 1034| LO.CPlusPlus11 = 1; +# 1035|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 1036| Compiler.init(TestProgram); +# 1037| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1106:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1109:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1109:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 1107| LO.CPlusPlus = 1; +# 1108| LO.CPlusPlus11 = 1; +# 1109|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 1110| Compiler.init(TestProgram); +# 1111| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1192:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1195:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1195:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 1193| LO.CPlusPlus = 1; +# 1194| LO.CPlusPlus11 = 1; +# 1195|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 1196| Compiler.init(TestProgram); +# 1197| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:140:5: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:148:7: uninit_use_in_call: Using uninitialized value "L._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:148:7: uninit_use_in_call: Using uninitialized value "L._M_owns" when calling "unlock". +# 146| } +# 147| if (result()) { +# 148|-> L.unlock(); +# 149| ResultIsReady.notify_one(); +# 150| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:154:5: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:169:7: uninit_use_in_call: Using uninitialized value "L._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:169:7: uninit_use_in_call: Using uninitialized value "L._M_owns" when calling "unlock". +# 167| } +# 168| if (result()) { +# 169|-> L.unlock(); +# 170| ResultIsReady.notify_one(); +# 171| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:72:5: var_decl: Declaring variable "UnexpandedTokens". +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:75:5: uninit_use: Using uninitialized value "UnexpandedTokens". Field "UnexpandedTokens.InlineElts" is uninitialized. +# 73| for (const UnwrappedLineNode &Node : Unexpanded[ID]->Tokens) +# 74| UnexpandedTokens.push_back(Node.Tok); +# 75|-> return UnexpandedTokens; +# 76| } +# 77| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:80:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:83:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 81| for (const auto &Arg : Args) +# 82| Result.push_back(uneof(Lex.lex(Arg))); +# 83|-> return Result; +# 84| } +# 85| llvm::DenseMap> Unexpanded; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Format/MacroExpanderTest.cpp:37:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/unittests/Format/MacroExpanderTest.cpp:40:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 38| for (const auto &Arg : Args) +# 39| Result.push_back(uneof(Lex.lex(Arg))); +# 40|-> return Result; +# 41| } +# 42| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Frontend/FrontendActionTest.cpp:210:5: var_decl: Declaring variable "TC". +llvm-project-19.0.0.src/clang/unittests/Frontend/FrontendActionTest.cpp:214:5: uninit_use: Using uninitialized value "TC". Field "TC.CorrectionDecls.InlineElts" is uninitialized. +# 212| DiagnosticsEngine::Note, "This is a note"); +# 213| TC.addExtraDiagnostic(PartialDiagnostic(DiagID, Ctx.getDiagAllocator())); +# 214|-> return TC; +# 215| } +# 216| }; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp:125:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp:125:3: leaked_storage: Ignoring storage allocated by "Buffer.release()" leaks it. +# 123| EXPECT_TRUE(Clang->createTarget()); +# 124| +# 125|-> Buffer.release(); +# 126| +# 127| SyntaxOnlyAction Action; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/StaticAnalyzer/CheckerRegistration.h:111:3: var_decl: Declaring variable "FileName". +llvm-project-19.0.0.src/clang/unittests/StaticAnalyzer/CheckerRegistration.h:113:3: uninit_use: Using uninitialized value "FileName". Field "FileName.InlineElts" is uninitialized. +# 111| SmallString<80> FileName; +# 112| (Twine{Info->name()} + ".cc").toVector(FileName); +# 113|-> return FileName; +# 114| } +# 115| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Tooling/RefactoringActionRulesTest.cpp:139:5: var_decl: Declaring variable "DiagID" without initializer. +llvm-project-19.0.0.src/clang/unittests/Tooling/RefactoringActionRulesTest.cpp:144:5: uninit_use_in_call: Using uninitialized value "DiagID" when calling "Compare". +# 142| DiagID = Error.getDiagnostic().second.getDiagID(); +# 143| }); +# 144|-> EXPECT_EQ(DiagID, diag::err_refactor_no_selection); +# 145| } +# 146| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:267:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:281:3: uninit_use: Using uninitialized value "result". +# 279| }); +# 280| } +# 281|-> if (result != 0) { +# 282| // If the thread didn't start delete the AsanThread to avoid leaking it. +# 283| // Note AsanThreadContexts never get destroyed so the AsanThreadContext + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:291:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:296:3: uninit_use: Using uninitialized value "result". +# 294| return !result; +# 295| }); +# 296|-> return result; +# 297| } +# 298| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:300:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:305:3: uninit_use: Using uninitialized value "result". +# 303| return !result; +# 304| }); +# 305|-> return result; +# 306| } +# 307| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:315:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:320:3: uninit_use: Using uninitialized value "result". +# 318| return !result; +# 319| }); +# 320|-> return result; +# 321| } +# 322| # endif + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:327:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:332:3: uninit_use: Using uninitialized value "result". +# 330| return !result; +# 331| }); +# 332|-> return result; +# 333| } +# 334| # endif + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/dfsan/dfsan_custom.cpp:2779:3: address_of: Taking address with "&str_origin" yields a singleton pointer. +llvm-project-19.0.0.src/compiler-rt/lib/dfsan/dfsan_custom.cpp:2779:3: callee_ptr_arith: Passing "&str_origin" to function "scan_buffer" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2777| va_list ap; +# 2778| va_start(ap, ret_origin); +# 2779|-> int ret = scan_buffer(str, ~0ul, format, va_labels, ret_label, &str_origin, +# 2780| ret_origin, ap); +# 2781| va_end(ap); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:294:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:299:3: uninit_use: Using uninitialized value "result". +# 297| return !result; +# 298| }); +# 299|-> return result; +# 300| } +# 301| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:303:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:308:3: uninit_use: Using uninitialized value "result". +# 306| return !result; +# 307| }); +# 308|-> return result; +# 309| } +# 310| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:318:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:323:3: uninit_use: Using uninitialized value "result". +# 321| return !result; +# 322| }); +# 323|-> return result; +# 324| } +# 325| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:328:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:333:3: uninit_use: Using uninitialized value "result". +# 331| return !result; +# 332| }); +# 333|-> return result; +# 334| } +# 335| # endif + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:54:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:31: assign: Assigning: "__range1" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:29: uninit_use_in_call: Using uninitialized value "__range1.modules_.data_" when calling "begin". +# 54| ListOfModules modules; +# 55| modules.init(); +# 56|-> for (LoadedModule &module : modules) { +# 57| if (!IsLinker(module)) +# 58| continue; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:54:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:31: assign: Assigning: "__range1" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:29: uninit_use_in_call: Using uninitialized value "__range1.modules_.size_" when calling "end". +# 54| ListOfModules modules; +# 55| modules.init(); +# 56|-> for (LoadedModule &module : modules) { +# 57| if (!IsLinker(module)) +# 58| continue; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:456:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:472:3: uninit_use: Using uninitialized value "result". +# 470| if (attr == &myattr) +# 471| pthread_attr_destroy(&myattr); +# 472|-> return result; +# 473| } +# 474| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:476:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:481:3: uninit_use: Using uninitialized value "result". +# 479| return !result; +# 480| }); +# 481|-> return result; +# 482| } +# 483| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:485:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:490:3: uninit_use: Using uninitialized value "result". +# 488| return !result; +# 489| }); +# 490|-> return result; +# 491| } +# 492| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:500:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:505:3: uninit_use: Using uninitialized value "result". +# 503| return !result; +# 504| }); +# 505|-> return result; +# 506| } +# 507| # define LSAN_MAYBE_INTERCEPT_TRYJOIN INTERCEPT_FUNCTION(pthread_tryjoin_np) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:515:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:520:3: uninit_use: Using uninitialized value "result". +# 518| return !result; +# 519| }); +# 520|-> return result; +# 521| } +# 522| # define LSAN_MAYBE_INTERCEPT_TIMEDJOIN \ + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:300:7: var_decl: Declaring variable "List". +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:302:7: uninit_use_in_call: Using uninitialized value "List.modules_.data_" when calling "begin". +# 300| __sanitizer::ListOfModules List; +# 301| List.init(); +# 302|-> ArrayRef Modules(List.begin(), List.end()); +# 303| u64 BytesSerialized = SerializeToRawProfile(MIBMap, Modules, Buffer); +# 304| CHECK(Buffer && BytesSerialized && "could not serialize to buffer"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:300:7: var_decl: Declaring variable "List". +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:302:7: uninit_use_in_call: Using uninitialized value "List.modules_.size_" when calling "end". +# 300| __sanitizer::ListOfModules List; +# 301| List.init(); +# 302|-> ArrayRef Modules(List.begin(), List.end()); +# 303| u64 BytesSerialized = SerializeToRawProfile(MIBMap, Modules, Buffer); +# 304| CHECK(Buffer && BytesSerialized && "could not serialize to buffer"); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1026:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1026:3: var_assign: Assigning: "FilenameBuf" = storage returned from "malloc(Length + 1)". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1031:3: noescape: Resource "FilenameBuf" is not freed or pointed-to in "getCurFilename". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1033:5: leaked_storage: Variable "FilenameBuf" going out of scope leaks the storage it points to. +# 1031| Filename = getCurFilename(FilenameBuf, 1); +# 1032| if (!Filename) +# 1033|-> return "\0"; +# 1034| +# 1035| return FilenameBuf; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingValue.c:222:3: alloc_fn: Storage is returned from allocation function "allocateOneNode". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingValue.c:222:3: var_assign: Assigning: "CurVNode" = storage returned from "allocateOneNode()". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingValue.c:239:1: leaked_storage: Variable "CurVNode" going out of scope leaks the storage it points to. +# 237| return; +# 238| } +# 239|-> } +# 240| +# 241| COMPILER_RT_VISIBILITY void + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:145:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:148:5: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 146| uptr i1 = idx1(idx); +# 147| uptr i2 = idx2(idx); +# 148|-> if (!l1_[i0].getBit(i1)) { +# 149| l1_[i0].setBit(i1); +# 150| l2_[i0][i1].clear(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:145:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:149:7: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 147| uptr i2 = idx2(idx); +# 148| if (!l1_[i0].getBit(i1)) { +# 149|-> l1_[i0].setBit(i1); +# 150| l2_[i0][i1].clear(); +# 151| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:160:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:164:5: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 162| uptr i2 = idx2(idx); +# 163| bool res = false; +# 164|-> if (l1_[i0].getBit(i1)) { +# 165| res = l2_[i0][i1].clearBit(i2); +# 166| if (l2_[i0][i1].empty()) + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:160:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:167:9: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 165| res = l2_[i0][i1].clearBit(i2); +# 166| if (l2_[i0][i1].empty()) +# 167|-> l1_[i0].clearBit(i1); +# 168| } +# 169| return res; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:174:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:178:5: overrun-local: Overrunning array of 8 bytes at byte offset 8 by dereferencing pointer "this->l1_[i0]". +# 176| uptr i2 = idx2(idx); +# 177| // Printf("%s: %zd => %zd %zd %zd\n", __func__, idx, i0, i1, i2); +# 178|-> return l1_[i0].getBit(i1) && l2_[i0][i1].getBit(i2); +# 179| } +# 180| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use: Using uninitialized value "local_iovec.iov_base". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use: Using uninitialized value "local_iovec.iov_len". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_base" when calling "__memprof_record_access_range". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_base" when calling "__msan_unpoison". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_len" when calling "__memprof_record_access_range". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_len" when calling "__msan_unpoison". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:53:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:28: assign: Assigning: "__range2" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:26: uninit_use_in_call: Using uninitialized value "__range2.modules_.data_" when calling "begin". +# 56| Lib *lib = &libs_[i]; +# 57| bool loaded = false; +# 58|-> for (const auto &mod : modules) { +# 59| for (const auto &range : mod.ranges()) { +# 60| if (!range.executable) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:53:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:28: assign: Assigning: "__range2" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:26: uninit_use_in_call: Using uninitialized value "__range2.modules_.size_" when calling "end". +# 56| Lib *lib = &libs_[i]; +# 57| bool loaded = false; +# 58|-> for (const auto &mod : modules) { +# 59| for (const auto &range : mod.ranges()) { +# 60| if (!range.executable) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:51:5: underflow: The decrement operator on the unsigned variable "minimal_num_length" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:63:5: overflow: The expression "minimal_num_length - pos" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:63:5: overflow: The expression "8UL * (minimal_num_length - pos)" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:63:5: overflow_sink: "8UL * (minimal_num_length - pos)", which might have underflowed, is passed to "__sanitizer::internal_memset(&num_buffer[pos], 0, 8UL * (minimal_num_length - pos))". +# 61| if (pos < minimal_num_length) { +# 62| // Make sure compiler doesn't insert call to memset here. +# 63|-> internal_memset(&num_buffer[pos], 0, +# 64| sizeof(num_buffer[0]) * (minimal_num_length - pos)); +# 65| pos = minimal_num_length; + +Error: INTEGER_OVERFLOW (CWE-125): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:51:5: underflow: The decrement operator on the unsigned variable "minimal_num_length" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:65:5: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:69:3: deref_overflow: "pos", which might have underflowed, is passed to "num_buffer[pos]". +# 67| RAW_CHECK(pos > 0); +# 68| pos--; +# 69|-> for (; pos >= 0 && num_buffer[pos] == 0; pos--) { +# 70| char c = (pad_with_zero || pos == 0) ? '0' : ' '; +# 71| result += AppendChar(buff, buff_end, c); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:33:3: cond_at_most: Checking "i < 5" implies that "i" may be up to 4 on the true branch. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:35:7: overrun-local: Overrunning array of 40 bytes at byte offset 40 by dereferencing pointer "&__sanitizer::InternalDieCallbacks[i + 1]". +# 33| for (int i = 0; i < kMaxNumOfInternalDieCallbacks; i++) { +# 34| if (InternalDieCallbacks[i] == callback) { +# 35|-> internal_memmove(&InternalDieCallbacks[i], &InternalDieCallbacks[i + 1], +# 36| sizeof(InternalDieCallbacks[0]) * +# 37| (kMaxNumOfInternalDieCallbacks - i - 1)); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:28:5: underflow: The decrement operator on the unsigned variable "MinNumberLength" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:41:5: overflow: The expression "MinNumberLength - Pos" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:41:5: overflow: The expression "8UL * static_cast(MinNumberLength - Pos)" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:41:5: overflow_sink: "8UL * static_cast(MinNumberLength - Pos)", which might have underflowed, is passed to "memset(&NumBuffer[Pos], 0, 8UL * static_cast(MinNumberLength - Pos))". +# 39| } while (AbsoluteValue > 0); +# 40| if (Pos < MinNumberLength) { +# 41|-> memset(&NumBuffer[Pos], 0, +# 42| sizeof(NumBuffer[0]) * static_cast(MinNumberLength - Pos)); +# 43| Pos = MinNumberLength; + +Error: INTEGER_OVERFLOW (CWE-125): +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:28:5: underflow: The decrement operator on the unsigned variable "MinNumberLength" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:43:5: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:47:3: deref_overflow: "Pos", which might have underflowed, is passed to "NumBuffer[Pos]". +# 45| RAW_CHECK(Pos > 0); +# 46| Pos--; +# 47|-> for (; Pos >= 0 && NumBuffer[Pos] == 0; Pos--) { +# 48| char c = (PadWithZero || Pos == 0) ? '0' : ' '; +# 49| String.push_back(c); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_rtl_access.cpp:279:3: var_decl: Declaring variable "old" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_rtl_access.cpp:295:3: uninit_use_in_call: Using uninitialized value "static_cast<__tsan::RawShadow>(old)" when calling "Shadow". +# 293| break; +# 294| } +# 295|-> Shadow prev(static_cast(old)); +# 296| // For the free shadow markers the first element (that contains kFreeSid) +# 297| // triggers the race, but the second element contains info about the freeing + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_sync.cpp:21:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_sync.cpp:21:46: uninit_use_in_call: Using uninitialized value "this->clock" when calling "Reset". +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_sync.cpp:21:46: uninit_use_in_call: Using uninitialized value "this->read_clock" when calling "Reset". +# 19| void DDMutexInit(ThreadState *thr, uptr pc, SyncVar *s); +# 20| +# 21|-> SyncVar::SyncVar() : mtx(MutexTypeSyncVar) { Reset(); } +# 22| +# 23| void SyncVar::Init(ThreadState *thr, uptr pc, uptr addr, bool save_stack) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:88:3: var_decl: Declaring variable "Loc". +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:112:3: uninit_use_in_call: Using uninitialized value "Loc". Field "Loc.MemoryLoc" is uninitialized when calling "ScopedReport". +# 110| } +# 111| +# 112|-> ScopedReport R(Opts, Loc, ET); +# 113| +# 114| switch (ET) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:156:3: var_decl: Declaring variable "Loc". +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:164:3: uninit_use_in_call: Using uninitialized value "Loc". Field "Loc.MemoryLoc" is uninitialized when calling "ScopedReport". +# 162| return; +# 163| +# 164|-> ScopedReport R(Opts, Loc, ET); +# 165| +# 166| uptr RealPointer = Pointer - Offset; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_basic_logging.cpp:184:5: var_decl: Declaring variable "E" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_basic_logging.cpp:191:5: uninit_use_in_call: Using uninitialized value "E". Field "E.Padding" is uninitialized when calling "internal_memcpy". +# 189| auto StackEntryPtr = static_cast(TLD.ShadowStack) + +# 190| (sizeof(StackEntry) * (TLD.StackEntries - 1)); +# 191|-> internal_memcpy(StackEntryPtr, &E, sizeof(StackEntry)); +# 192| break; +# 193| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:144:3: tainted_data_return: Called function "write(this->Fd, Begin, TotalBytes)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:144:3: assign: Assigning: "Written" = "write(this->Fd, Begin, TotalBytes)". +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:151:5: overflow: The expression "TotalBytes" is considered to have possibly overflowed. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:144:3: overflow_sink: "TotalBytes", which might be negative, is passed to "write(this->Fd, Begin, TotalBytes)". +# 142| return; +# 143| auto TotalBytes = std::distance(Begin, End); +# 144|-> while (auto Written = write(Fd, Begin, TotalBytes)) { +# 145| if (Written < 0) { +# 146| if (errno == EINTR) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:33:3: tainted_data_return: Called function "read(Fd, Begin, BytesToRead)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:33:3: assign: Assigning: "BytesRead" = "read(Fd, Begin, BytesToRead)". +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:42:5: overflow: The expression "BytesToRead" is considered to have possibly overflowed. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:33:3: overflow_sink: "BytesToRead", which might be negative, is passed to "read(Fd, Begin, BytesToRead)". +# 31| ssize_t BytesRead; +# 32| ssize_t TotalBytesRead = 0; +# 33|-> while (BytesToRead && (BytesRead = read(Fd, Begin, BytesToRead))) { +# 34| if (BytesRead == -1) { +# 35| if (errno == EINTR) + +Error: SIGMA.container_requesting_net_raw (CWE-269): +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:9: Sigma main event: The Docker container requests the `NET_RAW` capability, either explicitly or by default, granting access to the host's network interfaces. +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:9: remediation: Explicitly remove the `NET_RAW` capability by adding either `NET_RAW` or `ALL` to the `cap_drop` list and avoiding the `NET_RAW` capability in the `cap_add` list. +# 7| services: +# 8| buildkite-builder: +# 9|-> image: ghcr.io/libcxx/buildkite-builder:${TAG:-latest} +# 10| build: +# 11| context: . + +Error: SIGMA.container_requesting_net_raw (CWE-269): +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:18: Sigma main event: The Docker container requests the `NET_RAW` capability, either explicitly or by default, granting access to the host's network interfaces. +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:18: remediation: Explicitly remove the `NET_RAW` capability by adding either `NET_RAW` or `ALL` to the `cap_drop` list and avoiding the `NET_RAW` capability in the `cap_add` list. +# 16| <<: *compiler_versions +# 17| actions-builder: +# 18|-> image: ghcr.io/libcxx/actions-builder:${TAG:-latest} +# 19| build: +# 20| context: . + +Error: SIGMA.container_requesting_net_raw (CWE-269): +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:27: Sigma main event: The Docker container requests the `NET_RAW` capability, either explicitly or by default, granting access to the host's network interfaces. +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:27: remediation: Explicitly remove the `NET_RAW` capability by adding either `NET_RAW` or `ALL` to the `cap_drop` list and avoiding the `NET_RAW` capability in the `cap_add` list. +# 25| <<: *compiler_versions +# 26| android-buildkite-builder: +# 27|-> image: ghcr.io/libcxx/android-buildkite-builder:${TAG:-latest} +# 28| build: +# 29| context: . + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1021:3: return_constant: Function call "llvm::Log2_32(c->getAlignment())" may return 4294967295. +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1021:3: assignment: Assigning: "p2Align" = "llvm::Log2_32(c->getAlignment())". The value of "p2Align" is now 255. +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1023:3: alias: Assigning: "mc" = "ctx.mergeChunkInstances[p2Align]". "mc" now points to element 255 of "ctx.mergeChunkInstances" (which consists of 14 8-byte elements). +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1024:3: overrun-local: Overrunning array of 14 8-byte elements at element index 255 (byte offset 2047) by dereferencing pointer "mc". +# 1022| assert(p2Align < std::size(ctx.mergeChunkInstances)); +# 1023| auto *&mc = ctx.mergeChunkInstances[p2Align]; +# 1024|-> if (!mc) +# 1025| mc = make(c->getAlignment()); +# 1026| mc->sections.push_back(c); + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/lld/COFF/Driver.cpp:1824:27: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "time(NULL)" is cast to "uint32_t". +# 1822| ". Expected 32-bit integer"); +# 1823| } else { +# 1824|-> config->timestamp = time(nullptr); +# 1825| } +# 1826| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:160:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:160:5: leaked_storage: Ignoring storage allocated by "bin.release()" leaks it. +# 158| +# 159| if (auto *obj = dyn_cast(bin.get())) { +# 160|-> bin.release(); +# 161| coffObj.reset(obj); +# 162| } else { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:1137:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:1137:5: leaked_storage: Ignoring storage allocated by "bin.release()" leaks it. +# 1135| +# 1136| if (auto *obj = dyn_cast(bin.get())) { +# 1137|-> bin.release(); +# 1138| coffObj.reset(obj); +# 1139| } else { + +Error: WRITE_CONST_FIELD (CWE-843): +llvm-project-19.0.0.src/lld/COFF/Symbols.h:109:18: field_definition: A const-qualified field is defined. +llvm-project-19.0.0.src/lld/COFF/SymbolTable.cpp:503:9: store_writes_const_field: A write to an aggregate overwrites a const-qualified field within the aggregate. +# 501| // are dealing with and copy the correct number of bytes. +# 502| if (isa(d)) +# 503|-> memcpy(sym, d, sizeof(DefinedRegular)); +# 504| else if (isa(d)) +# 505| memcpy(sym, d, sizeof(DefinedAbsolute)); + +Error: WRITE_CONST_FIELD (CWE-843): +llvm-project-19.0.0.src/lld/COFF/Symbols.h:109:18: field_definition: A const-qualified field is defined. +llvm-project-19.0.0.src/lld/COFF/SymbolTable.cpp:505:9: store_writes_const_field: A write to an aggregate overwrites a const-qualified field within the aggregate. +# 503| memcpy(sym, d, sizeof(DefinedRegular)); +# 504| else if (isa(d)) +# 505|-> memcpy(sym, d, sizeof(DefinedAbsolute)); +# 506| else +# 507| memcpy(sym, d, sizeof(SymbolUnion)); + +Error: WRITE_CONST_FIELD (CWE-843): +llvm-project-19.0.0.src/lld/COFF/Symbols.h:109:18: field_definition: A const-qualified field is defined. +llvm-project-19.0.0.src/lld/COFF/SymbolTable.cpp:507:9: store_writes_const_field: A write to an aggregate overwrites a const-qualified field within the aggregate. +# 505| memcpy(sym, d, sizeof(DefinedAbsolute)); +# 506| else +# 507|-> memcpy(sym, d, sizeof(SymbolUnion)); +# 508| continue; +# 509| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/Common/Filesystem.cpp:87:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/lld/Common/Filesystem.cpp:91:5: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 89| +# 90| if (ec) +# 91|-> return; +# 92| +# 93| // close and therefore remove TempPath in background. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/ELF/Arch/PPC64.cpp:272:3: var_decl: Declaring variable "first" without initializer. +llvm-project-19.0.0.src/lld/ELF/Arch/PPC64.cpp:288:3: uninit_use: Using uninitialized value "first". +# 286| // The full section content has the extent of [begin, end). We drop unused +# 287| // instructions and write [first,end). +# 288|-> auto *sec = make( +# 289| ctx.internalFile, SHF_ALLOC, SHT_PROGBITS, 4, +# 290| ArrayRef(reinterpret_cast(buf.data() + first), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/ELF/SyntheticSections.cpp:3058:3: var_decl: Declaring variable "offsets" without initializer. +llvm-project-19.0.0.src/lld/ELF/SyntheticSections.cpp:3059:3: uninit_use: Using uninitialized element of array "offsets". +# 3057| // current shard. +# 3058| uint32_t offsets[numShards]; +# 3059|-> parallelFor(0, numShards, [&](size_t shard) { +# 3060| uint32_t offset = 0; +# 3061| for (NameEntry &ne : nameVecs[shard]) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/Driver.cpp:85:49: destructor_uses_global_object: The destructor of global object "resolvedLibraries" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "resolvedLibraries" might be called after "fuzzer::TPC" has already been destroyed. +# 83| } +# 84| +# 85|-> static DenseMap resolvedLibraries; +# 86| static std::optional findLibrary(StringRef name) { +# 87| CachedHashStringRef key(name); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/Driver.cpp:116:49: destructor_uses_global_object: The destructor of global object "resolvedFrameworks" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "resolvedFrameworks" might be called after "fuzzer::TPC" has already been destroyed. +# 114| } +# 115| +# 116|-> static DenseMap resolvedFrameworks; +# 117| static std::optional findFramework(StringRef name) { +# 118| CachedHashStringRef key(name); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/Driver.cpp:271:45: destructor_uses_global_object: The destructor of global object "loadedArchives" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "loadedArchives" might be called after "fuzzer::TPC" has already been destroyed. +# 269| }; +# 270| +# 271|-> static DenseMap loadedArchives; +# 272| +# 273| static InputFile *addFile(StringRef path, LoadType loadType, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/DriverUtils.cpp:222:51: destructor_uses_global_object: The destructor of global object "loadedDylibs" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "loadedDylibs" might be called after "fuzzer::TPC" has already been destroyed. +# 220| // It's not uncommon to have multiple attempts to load a single dylib, +# 221| // especially if it's a commonly re-exported core library. +# 222|-> static DenseMap loadedDylibs; +# 223| +# 224| DylibFile *macho::loadDylib(MemoryBufferRef mbref, DylibFile *umbrella, + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/lld/MachO/DriverUtils.cpp:309:14: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "llvm::sys::toTimeT(stat.getLastModificationTime())" is cast to "uint32_t". +# 307| if (!fs::status(path, stat)) +# 308| if (fs::exists(stat)) +# 309|-> return toTimeT(stat.getLastModificationTime()); +# 310| +# 311| warn("failed to get modification time of " + path); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/InputFiles.cpp:214:55: destructor_uses_global_object: The destructor of global object "lld::macho::cachedReads" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "lld::macho::cachedReads" might be called after "fuzzer::TPC" has already been destroyed. +# 212| // Theoretically this caching could be more efficient by hoisting it, but that +# 213| // would require altering many callers to track the state. +# 214|-> DenseMap macho::cachedReads; +# 215| // Open a given file path and return it as a memory-mapped file. +# 216| std::optional macho::readFile(StringRef path) { + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/lld/MachO/InputFiles.cpp:2203:30: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "llvm::sys::toTimeT(std::chrono::time_point > >(*modTime))" is cast to "uint32_t". +# 2201| +# 2202| Expected file = +# 2203|-> loadArchiveMember(*mb, toTimeT(*modTime), getName(), c.getChildOffset(), +# 2204| forceHidden, compatArch); +# 2205| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/MachO/MapFile.cpp:65:3: var_decl: Declaring variable "info". +llvm-project-19.0.0.src/lld/MachO/MapFile.cpp:122:3: uninit_use: Using uninitialized value "info". Field "info.files.InlineElts" is uninitialized. +# 120| return p1.first < p2.first; +# 121| }); +# 122|-> return info; +# 123| } +# 124| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/OutputSegment.cpp:170:45: destructor_uses_global_object: The destructor of global object "nameToOutputSegment" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "nameToOutputSegment" might be called after "fuzzer::TPC" has already been destroyed. +# 168| } +# 169| +# 170|-> static DenseMap nameToOutputSegment; +# 171| std::vector macho::outputSegments; +# 172| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/SyntheticSections.cpp:811:24: destructor_uses_global_object: The destructor of global object "lld::macho::ObjCSelRefsHelper::methnameToSelref" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "lld::macho::ObjCSelRefsHelper::methnameToSelref" might be called after "fuzzer::TPC" has already been destroyed. +# 809| +# 810| llvm::DenseMap +# 811|-> ObjCSelRefsHelper::methnameToSelref; +# 812| void ObjCSelRefsHelper::initialize() { +# 813| // Do not fold selrefs without ICF. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/MachO/SyntheticSections.cpp:1891:3: var_decl: Declaring variable "firstFile" without initializer. +llvm-project-19.0.0.src/lld/MachO/SyntheticSections.cpp:1901:7: uninit_use_in_call: Using uninitialized value "firstFile" when calling "toString". +# 1899| +# 1900| if (info.swiftVersion != 0 && info.swiftVersion != inputInfo.swiftVersion) { +# 1901|-> error("Swift version mismatch: " + toString(firstFile) + " has version " + +# 1902| swiftVersionString(info.swiftVersion) + " but " + toString(file) + +# 1903| " has version " + swiftVersionString(inputInfo.swiftVersion)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/wasm/InputFiles.cpp:422:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/lld/wasm/InputFiles.cpp:422:3: leaked_storage: Ignoring storage allocated by "bin.release()" leaks it. +# 420| fatal(toString(this) + ": not a relocatable wasm file"); +# 421| +# 422|-> bin.release(); +# 423| wasmObj.reset(obj); +# 424| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:150:5: move: "Val" is moved (indicated by "std::forward(Val)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:152:7: use_after_move: "Val" is used after it has been already moved. +# 150| auto Ret = try_emplace(Key, std::forward(Val)); +# 151| if (!Ret.second) +# 152|-> Ret.first->second = std::forward(Val); +# 153| return Ret; +# 154| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:157:5: move: "Val" is moved (indicated by "std::forward(Val)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:159:7: use_after_move: "Val" is used after it has been already moved. +# 157| auto Ret = try_emplace(std::move(Key), std::forward(Val)); +# 158| if (!Ret.second) +# 159|-> Ret.first->second = std::forward(Val); +# 160| return Ret; +# 161| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:46:7: alloc_fn: Storage is returned from allocation function "createFastDAGScheduler". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:46:7: leaked_storage: Failing to save or free storage allocated by "llvm::createFastDAGScheduler(NULL, Default)" leaks it. +# 44| (void)llvm::createHybridListDAGScheduler(nullptr, +# 45| llvm::CodeGenOptLevel::Default); +# 46|-> (void)llvm::createFastDAGScheduler(nullptr, +# 47| llvm::CodeGenOptLevel::Default); +# 48| (void)llvm::createDefaultScheduler(nullptr, + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:48:7: alloc_fn: Storage is returned from allocation function "createDefaultScheduler". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:48:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDefaultScheduler(NULL, Default)" leaks it. +# 46| (void)llvm::createFastDAGScheduler(nullptr, +# 47| llvm::CodeGenOptLevel::Default); +# 48|-> (void)llvm::createDefaultScheduler(nullptr, +# 49| llvm::CodeGenOptLevel::Default); +# 50| (void)llvm::createVLIWDAGScheduler(nullptr, + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:667:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:667:3: use_after_move: "Op" is used after it has been already moved. +# 665| /// Allows to peek through optional extensions +# 666| template inline auto m_ZExtOrSelf(Opnd &&Op) { +# 667|-> return m_AnyOf(m_ZExt(std::forward(Op)), std::forward(Op)); +# 668| } +# 669| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:673:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:673:3: use_after_move: "Op" is used after it has been already moved. +# 671| /// Allows to peek through optional extensions +# 672| template inline auto m_SExtOrSelf(Opnd &&Op) { +# 673|-> return m_AnyOf(m_SExt(std::forward(Op)), std::forward(Op)); +# 674| } +# 675| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:680:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:680:3: use_after_move: "Op" is used after it has been already moved. +# 678| template +# 679| inline Or, Opnd> m_AExtOrSelf(Opnd &&Op) { +# 680|-> return Or, Opnd>(m_AnyExt(std::forward(Op)), +# 681| std::forward(Op)); +# 682| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:688:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:688:3: use_after_move: "Op" is used after it has been already moved. +# 686| template +# 687| inline Or, Opnd> m_TruncOrSelf(Opnd &&Op) { +# 688|-> return Or, Opnd>(m_Trunc(std::forward(Op)), +# 689| std::forward(Op)); +# 690| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DWARFLinker/Utils.h:42:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/include/llvm/DWARFLinker/Utils.h:46:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 44| StringRef Base = sys::path::parent_path(SysRoot); +# 45| if (sys::path::filename(Base) != "SDKs") +# 46|-> return Result; +# 47| Base = sys::path::parent_path(Base); +# 48| Result = Base; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:49:5: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:50:5: uninit_use_in_call: Using uninitialized value "Record.Machine" when calling "deserializeAs". +# 48| template static Expected deserializeAs(CVSymbol Symbol) { +# 49| T Record(static_cast(Symbol.kind())); +# 50|-> if (auto EC = deserializeAs(Symbol, Record)) +# 51| return std::move(EC); +# 52| return Record; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:49:5: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:52:5: uninit_use_in_call: Using uninitialized value "Record". Field "Record.Machine" is uninitialized when calling "Expected". +# 50| if (auto EC = deserializeAs(Symbol, Record)) +# 51| return std::move(EC); +# 52|-> return Record; +# 53| } +# 54| + +Error: VIRTUAL_DTOR (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/IR/Metadata.h:382:7: no_virtual_dtor: Class "llvm::ReplaceableMetadataImpl" does not have a virtual destructor. +llvm-project-19.0.0.src/llvm/include/llvm/IR/DebugInfoMetadata.h:3830:3: dtor_in_derived: Class "llvm::DIArgList" has a destructor and a pointer to it is upcast to class "llvm::ReplaceableMetadataImpl" which doesn't have a virtual destructor. +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:457:5: upcast: Example 1: Casting from a pointer to "llvm::DIArgList" to a pointer to "llvm::ReplaceableMetadataImpl" in "ArgList". +/usr/include/c++/14/bits/unique_ptr.h:93:2: delete: Example 1: Deletion of type "llvm::ReplaceableMetadataImpl". +llvm-project-19.0.0.src/llvm/lib/IR/DebugInfoMetadata.cpp:2139:3: alloc: Example 1: Allocated an object of type "llvm::DIArgList". +# 380| /// use-lists and associated API for the three that support it ( +# 381| /// \a ValueAsMetadata, \a TempMDNode, and \a DIArgList). +# 382|-> class ReplaceableMetadataImpl { +# 383| friend class MetadataTracking; +# 384| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:62:7: alloc_fn: Storage is returned from allocation function "createAtomicExpandLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:62:7: leaked_storage: Failing to save or free storage allocated by "llvm::createAtomicExpandLegacyPass()" leaks it. +# 60| return; +# 61| +# 62|-> (void)llvm::createAtomicExpandLegacyPass(); +# 63| (void) llvm::createBasicAAWrapperPass(); +# 64| (void) llvm::createSCEVAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:98:7: alloc_fn: Storage is returned from allocation function "createPromoteMemoryToRegisterPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:98:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPromoteMemoryToRegisterPass()" leaks it. +# 96| (void) llvm::createNaryReassociatePass(); +# 97| (void) llvm::createObjCARCContractPass(); +# 98|-> (void) llvm::createPromoteMemoryToRegisterPass(); +# 99| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 100| (void)llvm::createPostDomPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:115:7: alloc_fn: Storage is returned from allocation function "createCodeGenPrepareLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:115:7: leaked_storage: Failing to save or free storage allocated by "llvm::createCodeGenPrepareLegacyPass()" leaks it. +# 113| (void)llvm::createTLSVariableHoistPass(); +# 114| (void) llvm::createConstantHoistingPass(); +# 115|-> (void)llvm::createCodeGenPrepareLegacyPass(); +# 116| (void) llvm::createEarlyCSEPass(); +# 117| (void) llvm::createGVNPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:121:7: alloc_fn: Storage is returned from allocation function "createExpandMemCmpLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:121:7: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandMemCmpLegacyPass()" leaks it. +# 119| (void) llvm::createMergeICmpsLegacyPass(); +# 120| (void) llvm::createExpandLargeDivRemPass(); +# 121|-> (void)llvm::createExpandMemCmpLegacyPass(); +# 122| (void) llvm::createExpandVectorPredicationPass(); +# 123| std::string buf; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:749:5: var_decl: Declaring variable "CS". +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:758:5: uninit_use: Using uninitialized value "CS". Field "CS.InlineElts" is uninitialized. +# 756| CS.push_back(F); +# 757| } +# 758|-> return CS; +# 759| } +# 760| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:808:5: var_decl: Declaring variable "Frames". +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:819:5: uninit_use: Using uninitialized value "Frames". Field "Frames.InlineElts" is uninitialized. +# 817| Frames.push_back(FrameIdToFrame(Id)); +# 818| } +# 819|-> return Frames; +# 820| } +# 821| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2221:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2221:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2219| case Intrinsic::exp10: +# 2220| // Fold exp10(x) as pow(10, x), in case the host lacks a C99 library. +# 2221|-> return ConstantFoldBinaryFP(pow, APFloat(10.0), APF, Ty); +# 2222| case Intrinsic::sin: +# 2223| return ConstantFoldFP(sin, APF, Ty); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3142:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), llvm::APInt(16U, (uint16_t)Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3142:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3140| auto *ScalarTy = CurTy->getScalarType(); +# 3141| if (ScalarTy->isHalfTy()) +# 3142|-> V = ConstantFP::get(CurTy, APFloat(APFloat::IEEEhalf(), +# 3143| APInt(16, (uint16_t)Record[0]))); +# 3144| else if (ScalarTy->isBFloatTy()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3145:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::BFloat(), llvm::APInt(16U, (uint32_t)Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3145:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3143| APInt(16, (uint16_t)Record[0]))); +# 3144| else if (ScalarTy->isBFloatTy()) +# 3145|-> V = ConstantFP::get( +# 3146| CurTy, APFloat(APFloat::BFloat(), APInt(16, (uint32_t)Record[0]))); +# 3147| else if (ScalarTy->isFloatTy()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3148:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, (uint32_t)Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3148:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3146| CurTy, APFloat(APFloat::BFloat(), APInt(16, (uint32_t)Record[0]))); +# 3147| else if (ScalarTy->isFloatTy()) +# 3148|-> V = ConstantFP::get(CurTy, APFloat(APFloat::IEEEsingle(), +# 3149| APInt(32, (uint32_t)Record[0]))); +# 3150| else if (ScalarTy->isDoubleTy()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3151:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3151:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3149| APInt(32, (uint32_t)Record[0]))); +# 3150| else if (ScalarTy->isDoubleTy()) +# 3151|-> V = ConstantFP::get( +# 3152| CurTy, APFloat(APFloat::IEEEdouble(), APInt(64, Record[0]))); +# 3153| else if (ScalarTy->isX86_FP80Ty()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3158:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), llvm::APInt(80U, llvm::ArrayRef(Rearrange)))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3158:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3156| Rearrange[0] = (Record[1] & 0xffffLL) | (Record[0] << 16); +# 3157| Rearrange[1] = Record[0] >> 48; +# 3158|-> V = ConstantFP::get( +# 3159| CurTy, APFloat(APFloat::x87DoubleExtended(), APInt(80, Rearrange))); +# 3160| } else if (ScalarTy->isFP128Ty()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3161:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3161:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3159| CurTy, APFloat(APFloat::x87DoubleExtended(), APInt(80, Rearrange))); +# 3160| } else if (ScalarTy->isFP128Ty()) +# 3161|-> V = ConstantFP::get(CurTy, +# 3162| APFloat(APFloat::IEEEquad(), APInt(128, Record))); +# 3163| else if (ScalarTy->isPPC_FP128Ty()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3164:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3164:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3162| APFloat(APFloat::IEEEquad(), APInt(128, Record))); +# 3163| else if (ScalarTy->isPPC_FP128Ty()) +# 3164|-> V = ConstantFP::get( +# 3165| CurTy, APFloat(APFloat::PPCDoubleDouble(), APInt(128, Record))); +# 3166| else + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:817:3: return_constant: Function call "getOutlineAtomicLibcall(MI)" may return 653. +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:817:3: assignment: Assigning: "RTLibcall" = "getOutlineAtomicLibcall(MI)". The value of "RTLibcall" is now 653. +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:828:3: overrun-call: Overrunning callee's array of size 653 by passing argument "RTLibcall" (which evaluates to 653) in call to "getLibcallCallingConv". +# 826| +# 827| CallLowering::CallLoweringInfo Info; +# 828|-> Info.CallConv = TLI.getLibcallCallingConv(RTLibcall); +# 829| Info.Callee = MachineOperand::CreateES(Name); +# 830| Info.OrigRet = CallLowering::ArgInfo(RetRegs, RetTy, 0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectOptimize.cpp:1199:3: var_decl: Declaring variable "SImap". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectOptimize.cpp:1203:3: uninit_use: Using uninitialized value "SImap". Field "SImap.NumEntries" is uninitialized. +# 1201| for (SelectLike SI : ASI) +# 1202| SImap.try_emplace(SI.getI(), SI); +# 1203|-> return SImap; +# 1204| } +# 1205| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:17149:7: var_decl: Declaring variable "Recip". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:17150:7: uninit_use_in_call: Using uninitialized value "Recip.U" when calling "divide". +#17148| const APFloat &N1APF = N1CFP->getValueAPF(); +#17149| APFloat Recip(N1APF.getSemantics(), 1); // 1.0 +#17150|-> APFloat::opStatus st = Recip.divide(N1APF, APFloat::rmNearestTiesToEven); +#17151| // Only do the transform if the reciprocal is a legal fp immediate that +#17152| // isn't too nasty (eg NaN, denormal, ...). + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22395:7: var_decl: Declaring variable "CstFP". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22398:9: uninit_use_in_call: Using uninitialized value "CstFP.U" when calling "getConstantFP". +#22396| APFloat(DAG.EVTToAPFloatSemantics(ScalarVT), KnownElt.getConstant()); +#22397| if (TLI.isFPImmLegal(CstFP, ScalarVT)) +#22398|-> return DAG.getConstantFP(CstFP, DL, ScalarVT); +#22399| } +#22400| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22395:7: var_decl: Declaring variable "CstFP". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22399:5: uninit_use_in_call: Using uninitialized value "CstFP.U" when calling "~APFloat". +#22397| if (TLI.isFPImmLegal(CstFP, ScalarVT)) +#22398| return DAG.getConstantFP(CstFP, DL, ScalarVT); +#22399|-> } +#22400| } +#22401| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6324:9: var_decl: Declaring variable "apf". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6326:9: uninit_use_in_call: Using uninitialized value "apf.U" when calling "convertFromAPInt". +# 6324| APFloat apf(EVTToAPFloatSemantics(VT), +# 6325| APInt::getZero(VT.getSizeInBits())); +# 6326|-> (void)apf.convertFromAPInt(Val, Opcode == ISD::SINT_TO_FP, +# 6327| APFloat::rmNearestTiesToEven); +# 6328| return getConstantFP(apf, DL, VT); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5962:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5987:3: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 5985| }); +# 5986| +# 5987|-> return Ret; +# 5988| } +# 5989| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/TargetLoweringBase.cpp:776:21: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/llvm/lib/CodeGen/TargetLoweringBase.cpp:777:3: uninit_use_in_call: Using uninitialized element of array "this->AtomicLoadExtActions" when calling "initActions". +# 775| /// NOTE: The TargetMachine owns TLOF. +# 776| TargetLoweringBase::TargetLoweringBase(const TargetMachine &tm) : TM(tm) { +# 777|-> initActions(); +# 778| +# 779| // Perform these initializations only once. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DIEAttributeCloner.cpp:551:3: cond_at_least: Checking "Bytes.size() > 4294967295UL" implies that ".Length", "Buffer.Size", "Bytes.Length" and "Bytes.size()" are at least 4294967296 on the true branch. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DIEAttributeCloner.cpp:577:3: overrun-buffer-arg: Calling "~SmallVector" with "Buffer->BeginX" and "Buffer->Size" is suspicious because of the very large index, 4294967296. The index may be due to a negative parameter being interpreted as unsigned. +# 575| InUnit.getGlobalData().getOptions().UpdateIndexTablesOnly; +# 576| +# 577|-> return FinalAttributeSize; +# 578| } +# 579| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1178:9: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1178:9: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1181:9: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1179| reinterpret_cast(&LinkedAddress), +# 1180| OrigAddressByteSize); +# 1181|-> OutputExpression.append(AddressBytes.begin(), AddressBytes.end()); +# 1182| } else +# 1183| warn("cann't read DW_OP_addrx operand."); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1215:11: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1215:11: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1218:11: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1216| reinterpret_cast(&LinkedAddress), +# 1217| OrigAddressByteSize); +# 1218|-> OutputExpression.append(AddressBytes.begin(), AddressBytes.end()); +# 1219| } +# 1220| } else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp:457:3: var_decl: Declaring variable "DstFI". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp:481:3: uninit_use_in_call: Using uninitialized value "DstFI". Field "DstFI.EncodingCache.InlineElts" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 479| } +# 480| std::lock_guard Guard(Mutex); +# 481|-> Funcs.emplace_back(DstFI); +# 482| return Funcs.back().cacheEncoding(); +# 483| } + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp:368:20: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "Sig.operator bool() ? *Sig : time(NULL)" is cast to "llvm::support::detail::packed_endian_specific_integral::value_type". +# 366| H->Guid = Info->getGuid(); +# 367| std::optional Sig = Info->getSignature(); +# 368|-> H->Signature = Sig ? *Sig : time(nullptr); +# 369| } +# 370| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:72:3: var_decl: Declaring variable "ReadGuard". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:76:5: uninit_use_in_call: Using uninitialized value "ReadGuard._M_owns" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:76:5: uninit_use_in_call: Using uninitialized value "ReadGuard._M_pm" when calling "unlock". +# 74| // Only read from the environment variable if the user hasn't already +# 75| // set the value. +# 76|-> ReadGuard.unlock(); +# 77| std::unique_lock WriteGuard(UrlsMutex); +# 78| DebuginfodUrls = SmallVector(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:77:5: var_decl: Declaring variable "WriteGuard". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:83:5: uninit_use_in_call: Using uninitialized value "WriteGuard._M_device" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:83:5: uninit_use_in_call: Using uninitialized value "WriteGuard._M_owns" when calling "unlock". +# 81| .split(DebuginfodUrls.value(), " ", -1, false); +# 82| } +# 83|-> WriteGuard.unlock(); +# 84| ReadGuard.lock(); +# 85| } + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2312:3: extract: Calling "back" which extracts wrapped state from "IPLS.CurDefGeneratorStack". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2312:3: identity_transfer: Member function call "IPLS.CurDefGeneratorStack.back()->lock()" returns "IPLS.CurDefGeneratorStack.back()" ("this"). +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2312:3: assign: Assigning: "DG" = "IPLS.CurDefGeneratorStack.back()->lock()". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2313:5: invalidate: Calling "pop_back" invalidates the internal representation of "IPLS.CurDefGeneratorStack". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2314:5: use_after_free: Using invalidated internal representation of "IPLS.CurDefGeneratorStack". +# 2312| if (auto DG = IPLS.CurDefGeneratorStack.back().lock()) { +# 2313| IPLS.CurDefGeneratorStack.pop_back(); +# 2314|-> std::lock_guard Lock(DG->M); +# 2315| +# 2316| // If there are no pending lookups then mark the generator as free and + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:163:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.MappedSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.UnwindDataSize" when calling "Expected". +# 167| if (!Eh_frame) { +# 168| LLVM_DEBUG(dbgs() << "No .eh_frame section found\n"); +# 169|-> return Record; +# 170| } +# 171| if (!G.getTargetTriple().isOSBinFormatELF()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:163:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.MappedSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.UnwindDataSize" when calling "Expected". +# 171| if (!G.getTargetTriple().isOSBinFormatELF()) { +# 172| LLVM_DEBUG(dbgs() << "Not an ELF file, will not emit unwinding info\n"); +# 173|-> return Record; +# 174| } +# 175| auto SR = SectionRange(*Eh_frame); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:163:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.EHFrameAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.MappedSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.UnwindDataSize" when calling "Expected". +# 184| } else { +# 185| LLVM_DEBUG(dbgs() << "No .eh_frame_hdr section found\n"); +# 186|-> return Record; +# 187| } +# 188| Record.EHFrameHdrAddr = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:230:3: var_decl: Declaring variable "Batch". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: uninit_use: Using uninitialized value "Batch". Field "Batch.UnwindingRecord.Prefix" is uninitialized. +# 249| Batch.UnwindingRecord.Prefix.TotalSize = 0; +# 250| } +# 251|-> return Batch; +# 252| } +# 253| } // namespace +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: note: trimmed 2 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:230:3: var_decl: Declaring variable "Batch". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: uninit_use: Using uninitialized value "Batch". Field "Batch.UnwindingRecord.UnwindDataSize" is uninitialized. +# 249| Batch.UnwindingRecord.Prefix.TotalSize = 0; +# 250| } +# 251|-> return Batch; +# 252| } +# 253| } // namespace +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: note: trimmed 2 message(s) with length over 512 + +Error: BAD_FREE (CWE-763): +llvm-project-19.0.0.src/llvm/lib/IR/BasicBlock.cpp:126:5: address: Taking address of "*Inst.DebugMarker". +llvm-project-19.0.0.src/llvm/lib/IR/BasicBlock.cpp:126:5: assign: Assigning: "Marker" = "*Inst.DebugMarker". +llvm-project-19.0.0.src/llvm/lib/IR/BasicBlock.cpp:131:5: incorrect_free: "eraseFromParent" frees incorrect pointer "Marker". +# 129| DR.createDebugIntrinsic(getModule(), nullptr)); +# 130| +# 131|-> Marker.eraseFromParent(); +# 132| } +# 133| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:290:3: var_decl: Declaring variable "DVRUsers". +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:293:3: uninit_use: Using uninitialized value "DVRUsers". Field "DVRUsers.InlineElts" is uninitialized. +# 291| for (auto UserWithID : DVRUsersWithID) +# 292| DVRUsers.push_back(UserWithID->first.get()->getUser()); +# 293|-> return DVRUsers; +# 294| } +# 295| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/ReplaceConstant.cpp:27:3: var_decl: Declaring variable "NewInsts". +llvm-project-19.0.0.src/llvm/lib/IR/ReplaceConstant.cpp:49:3: uninit_use: Using uninitialized value "NewInsts". Field "NewInsts.InlineElts" is uninitialized. +# 47| llvm_unreachable("Not an expandable user"); +# 48| } +# 49|-> return NewInsts; +# 50| } +# 51| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5293:7: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5308:7: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 92 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5314:14: overrun-call: Overrunning callee's array of size 89 by passing argument "Kind" (which evaluates to 92) in call to "canUseAsParamAttr". +# 5312| Check(isa(Call.getOperand(Elem.Begin + 1)), +# 5313| "the second argument should be a constant integral value", Call); +# 5314|-> } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5315| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5316| } else if (Attribute::canUseAsFnAttr(Kind)) { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5293:7: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5308:7: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 92 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5316:14: overrun-call: Overrunning callee's array of size 89 by passing argument "Kind" (which evaluates to 92) in call to "canUseAsFnAttr". +# 5314| } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5315| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5316|-> } else if (Attribute::canUseAsFnAttr(Kind)) { +# 5317| Check((ArgCount) == 0, "this attribute has no argument", Call); +# 5318| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/WasmObjectWriter.cpp:1658:11: var_decl: Declaring variable "Global". +llvm-project-19.0.0.src/llvm/lib/MC/WasmObjectWriter.cpp:1683:11: uninit_use_in_call: Using uninitialized value "Global". Field "Global.Offset" is uninitialized when calling "push_back". +# 1681| assert(WasmIndices.count(&WS) == 0); +# 1682| WasmIndices[&WS] = Global.Index; +# 1683|-> Globals.push_back(Global); +# 1684| } else { +# 1685| // An import; the index was assigned above + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:710:5: var_decl: Declaring variable "Info". +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:886:5: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". +# 884| Twine(Info.Name), +# 885| object_error::parse_failed); +# 886|-> Symbols.emplace_back(Info, GlobalType, TableType, Signature); +# 887| LLVM_DEBUG(dbgs() << "Adding symbol: " << Symbols.back() << "\n"); +# 888| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Passes/StandardInstrumentations.cpp:751:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Passes/StandardInstrumentations.cpp:781:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 779| llvm_unreachable("Unknown wrapped IR type"); +# 780| } +# 781|-> return Result; +# 782| } +# 783| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:184:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:208:9: uninit_use: Using uninitialized value "LastPoppedValue". +# 206| Current.VisitCount = StackElem::KVisitedOnce; +# 207| } else if (Current.VisitCount == StackElem::KVisitedOnce) { +# 208|-> Current.LHS = LastPoppedValue; +# 209| CounterStack.push(StackElem{E.RHS}); +# 210| Current.VisitCount = StackElem::KVisitedTwice; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:184:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:213:9: uninit_use: Using uninitialized value "LastPoppedValue". +# 211| } else { +# 212| int64_t LHS = Current.LHS; +# 213|-> int64_t RHS = LastPoppedValue; +# 214| LastPoppedValue = +# 215| E.Kind == CounterExpression::Subtract ? LHS - RHS : LHS + RHS; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:545:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:569:11: uninit_use: Using uninitialized value "LastPoppedValue". +# 567| Current.VisitCount = StackElem::KVisitedOnce; +# 568| } else if (Current.VisitCount == StackElem::KVisitedOnce) { +# 569|-> Current.LHS = LastPoppedValue; +# 570| CounterStack.push(StackElem{E.RHS}); +# 571| Current.VisitCount = StackElem::KVisitedTwice; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:545:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:574:11: uninit_use: Using uninitialized value "LastPoppedValue". +# 572| } else { +# 573| int64_t LHS = Current.LHS; +# 574|-> int64_t RHS = LastPoppedValue; +# 575| LastPoppedValue = std::max(LHS, RHS); +# 576| CounterStack.pop(); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:113:5: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:113:5: assign: Assigning: "" = "llvm::InstrProfCorrelator::get(std::unique_ptr >(std::move(*BufferOrErr)), FileKind)". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:113:5: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 111| return std::move(Err); +# 112| +# 113|-> return get(std::move(*BufferOrErr), FileKind); +# 114| } +# 115| if (FileKind == BINARY) { + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:120:5: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:120:5: assign: Assigning: "" = "llvm::InstrProfCorrelator::get(std::unique_ptr >(std::move(*BufferOrErr)), FileKind)". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:120:5: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 118| return std::move(Err); +# 119| +# 120|-> return get(std::move(*BufferOrErr), FileKind); +# 121| } +# 122| return make_error( + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfReader.cpp:961:5: move: "BitmapByteBuffer" is moved (indicated by "std::move(BitmapByteBuffer)"). +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfReader.cpp:961:5: use_after_move: "BitmapByteBuffer" is used after it has been already moved. +# 959| } +# 960| +# 961|-> DataBuffer.emplace_back(K, Hash, std::move(CounterBuffer), +# 962| std::move(BitmapByteBuffer)); +# 963| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:14:3: var_decl: Declaring variable "List". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:18:3: uninit_use: Using uninitialized value "List". Field "List.InlineElts" is uninitialized. +# 16| #include "llvm/ProfileData/MIBEntryDef.inc" +# 17| #undef MIBEntryDef +# 18|-> return List; +# 19| } +# 20| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:206:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:228:3: uninit_use: Using uninitialized value "Record". Field "Record.AllocSites.InlineElts" is uninitialized. +# 226| } +# 227| +# 228|-> return Record; +# 229| } +# 230| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:248:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:260:3: uninit_use: Using uninitialized value "Record". Field "Record.AllocSites.InlineElts" is uninitialized. +# 258| Record.CallSites.push_back(Callback(CSId)); +# 259| +# 260|-> return Record; +# 261| } +# 262| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:90:3: var_decl: Declaring variable "Items". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:95:3: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 93| Ptr + I * sizeof(SegmentEntry))); +# 94| } +# 95|-> return Items; +# 96| } +# 97| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:104:3: var_decl: Declaring variable "Items". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:113:3: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 111| Ptr += sizeof(MemInfoBlock); +# 112| } +# 113|-> return Items; +# 114| } +# 115| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4290:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloat::IEEEFloat(reciprocal), this->semantics)". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4290:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4288| +# 4289| if (inv) +# 4290|-> *inv = APFloat(reciprocal, *semantics); +# 4291| +# 4292| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5215:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloat::IEEEFloat(std::move(this->getIEEE())), ToSemantics)". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5215:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5213| usesLayout(ToSemantics)) { +# 5214| auto Ret = getIEEE().convert(ToSemantics, RM, losesInfo); +# 5215|-> *this = APFloat(std::move(getIEEE()), ToSemantics); +# 5216| return Ret; +# 5217| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:77:3: open_fn: Returning handle opened by "socket". +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:77:3: var_assign: Assigning: "Socket" = handle returned from "socket(1, SOCK_STREAM, 0)". +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:85:3: noescape: Resource "Socket" is not freed or pointed-to in "connect". +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:86:5: leaked_handle: Handle variable "Socket" going out of scope leaks the handle. +# 84| struct sockaddr_un Addr = setSocketAddr(SocketPath); +# 85| if (::connect(Socket, (struct sockaddr *)&Addr, sizeof(Addr)) == -1) +# 86|-> return llvm::make_error(getLastSocketErrorCode(), +# 87| "Connect socket failed"); +# 88| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp:428:3: return_constant: Function call "llvm::countr_zero(SmallSize)" may return 32. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp:428:3: overrun-local: Overrunning array "RepeatedOnesTable" of 7 8-byte elements at element index 32 (byte offset 263) using index "llvm::countr_zero(SmallSize)" (which evaluates to 32). +# 426| // dividing the 64-bit value into fields of width SmallSize, and placing a +# 427| // one in the least significant bit of each field. +# 428|-> uint64_t SmallOnes = RepeatedOnesTable[countr_zero(SmallSize)]; +# 429| +# 430| // Now we try to find the number of ones in each of the smaller repetitions, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp:1025:3: var_decl: Declaring variable "Opc" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp:1039:3: uninit_use_in_call: Using uninitialized value "Opc" when calling "get". +# 1037| auto TRI = MBB.getParent()->getSubtarget().getRegisterInfo(); +# 1038| unsigned SMReg32 = TRI->getSubReg(PStateSM, AArch64::sub_32); +# 1039|-> MachineInstrBuilder Tbx = +# 1040| BuildMI(MBB, MBBI, DL, TII->get(Opc)).addReg(SMReg32).addImm(0); +# 1041| +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp:1039:3: note: trimmed 1 message(s) with length over 512 + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8258:3: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8258:3: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8554:7: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8627:5: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 8625| // link register. +# 8626| bool ModStackToSaveLR = false; +# 8627|-> if (std::any_of(FirstCand.begin(), std::prev(FirstCand.end()), +# 8628| [](const MachineInstr &MI) { return MI.isCall(); })) +# 8629| ModStackToSaveLR = true; +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8627:5: note: trimmed 1 message(s) with length over 512 + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5609:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5609:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5607| AArch64::LDRQpre}; +# 5608| if (RBI.getRegBank(Dst, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5609|-> Opc = FPROpcodes[Log2_32(MemSize)]; +# 5610| else +# 5611| Opc = GPROpcodes[Log2_32(MemSize)]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5611:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5611:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5609| Opc = FPROpcodes[Log2_32(MemSize)]; +# 5610| else +# 5611|-> Opc = GPROpcodes[Log2_32(MemSize)]; +# 5612| } else { +# 5613| static constexpr unsigned GPROpcodes[] = { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5620:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5620:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5618| AArch64::LDRDpost, AArch64::LDRQpost}; +# 5619| if (RBI.getRegBank(Dst, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5620|-> Opc = FPROpcodes[Log2_32(MemSize)]; +# 5621| else +# 5622| Opc = GPROpcodes[Log2_32(MemSize)]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5622:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5622:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5620| Opc = FPROpcodes[Log2_32(MemSize)]; +# 5621| else +# 5622|-> Opc = GPROpcodes[Log2_32(MemSize)]; +# 5623| } +# 5624| auto Cst = getIConstantVRegVal(Offset, MRI); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5654:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5654:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5652| +# 5653| if (RBI.getRegBank(Val, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5654|-> Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5655| else +# 5656| Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5656:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5656:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5654| Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5655| else +# 5656|-> Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5657| } else { +# 5658| static constexpr unsigned GPROpcodes[] = { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5666:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5666:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5664| +# 5665| if (RBI.getRegBank(Val, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5666|-> Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5667| else +# 5668| Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5668:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5668:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5666| Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5667| else +# 5668|-> Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5669| } +# 5670| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:77:5: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:80:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:85:5: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 360 bytes. +# 83| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 84| "Invalid kind!"); +# 85|-> return Infos[Kind - FirstTargetFixupKind]; +# 86| } +# 87| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp:153:3: var_decl: Declaring variable "AI". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp:174:3: uninit_use: Using uninitialized value "AI". Field "AI.PreloadKernArgs.NumEntries" is uninitialized. +# 172| AI.WorkItemIDY = ArgDescriptor::createRegister(AMDGPU::VGPR31, Mask << 10); +# 173| AI.WorkItemIDZ = ArgDescriptor::createRegister(AMDGPU::VGPR31, Mask << 20); +# 174|-> return AI; +# 175| } +# 176| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3235:3: var_decl: Declaring variable "ModOpcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3252:7: uninit_use_in_call: Using uninitialized value "ModOpcode" when calling "selectWMMAModsNegAbs". +# 3250| // All elements have ModOpcode modifier +# 3251| if (BV->getNumOperands() * 2 == EltsF16.size()) +# 3252|-> selectWMMAModsNegAbs(ModOpcode, Mods, EltsF16, Src, CurDAG, SDLoc(In), +# 3253| 16); +# 3254| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3345:15: var_decl: Declaring variable "FloatVal". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3349:15: uninit_use_in_call: Using uninitialized value "FloatVal.U" when calling "isInlineConstant". +# 3347| : APFloatBase::BFloat(), +# 3348| RawValue.value()); +# 3349|-> if (TII->isInlineConstant(FloatVal)) { +# 3350| Src = CurDAG->getTargetConstant(RawValue.value(), SDLoc(In), +# 3351| MVT::i16); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp:5252:11: var_decl: Declaring variable "Zero". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp:5253:11: uninit_use_in_call: Using uninitialized value "Zero.U" when calling "~APFloat". +# 5251| if (V.isDenormal()) { +# 5252| APFloat Zero(V.getSemantics(), 0); +# 5253|-> return V.isNegative() ? -Zero : Zero; +# 5254| } +# 5255| return V; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:1781:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:1795:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1793| } +# 1794| +# 1795|-> return Result; +# 1796| } +# 1797| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:923:9: cond_at_most: Checking "Interval.first >= NUM_ALL_VGPRS" implies that "Interval.first" may be up to 520 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:931:16: assignment: Assigning: "RegNo" = "Interval.first". The value of "RegNo" may now be up to 520. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:931:69: incr: Incrementing "RegNo". The value of "RegNo" may now be up to 521. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:932:13: overrun-local: Overrunning array "this->VgprVmemTypes" of 521 bytes at byte offset 521 using index "RegNo" (which evaluates to 521). +# 930| VmemType V = getVmemType(Inst); +# 931| for (int RegNo = Interval.first; RegNo < Interval.second; ++RegNo) +# 932|-> VgprVmemTypes[RegNo] |= 1 << V; +# 933| } +# 934| } + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5876:3: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5876:3: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6063:7: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6074:5: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 6072| // check if the range contains a call. These require a save + restore of +# 6073| // the link register. +# 6074|-> if (std::any_of(FirstCand.begin(), std::prev(FirstCand.end()), +# 6075| [](const MachineInstr &MI) { return MI.isCall(); })) +# 6076| NumBytesToCreateFrame += Costs.SaveRestoreLROnStack; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1691:3: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1704:3: overrun-call: Overrunning callee's array of size 653 by passing argument "LC" (which evaluates to 653) in call to "ARMEmitLibcall". +# 1702| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SDIV!"); +# 1703| +# 1704|-> return ARMEmitLibcall(I, LC); +# 1705| } +# 1706| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1720:3: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1733:3: overrun-call: Overrunning callee's array of size 653 by passing argument "LC" (which evaluates to 653) in call to "ARMEmitLibcall". +# 1731| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SREM!"); +# 1732| +# 1733|-> return ARMEmitLibcall(I, LC); +# 1734| } +# 1735| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:198:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:201:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:206:3: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 984 bytes. +# 204| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 205| "Invalid kind!"); +# 206|-> return (Endian == llvm::endianness::little +# 207| ? InfosLE +# 208| : InfosBE)[Kind - FirstTargetFixupKind]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AVR/AVRISelLowering.cpp:2194:3: var_decl: Declaring variable "Opc" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/AVRISelLowering.cpp:2216:3: uninit_use_in_call: Using uninitialized value "Opc" when calling "insertMultibyteShift". +# 2214| +# 2215| // Do the shift. The registers are modified in-place. +# 2216|-> insertMultibyteShift(MI, BB, Registers, Opc, ShiftAmt); +# 2217| +# 2218| // Combine the 8-bit registers into 16-bit register pairs. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:485:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:488:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:489:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 487| +# 488| if (Kind < FirstTargetFixupKind) +# 489|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 490| +# 491| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:485:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:488:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:494:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 840 bytes. +# 492| "Invalid kind!"); +# 493| +# 494|-> return Infos[Kind - FirstTargetFixupKind]; +# 495| } +# 496| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/BPF/BPFTargetTransformInfo.h:74:5: var_decl: Declaring variable "Options". +llvm-project-19.0.0.src/llvm/lib/Target/BPF/BPFTargetTransformInfo.h:77:5: uninit_use: Using uninitialized value "Options". Field "Options.AllowedTailExpansions.InlineElts" is uninitialized. +# 75| Options.LoadSizes = {8, 4, 2, 1}; +# 76| Options.MaxNumLoads = TLI->getMaxExpandSizeMemcmp(OptSize); +# 77|-> return Options; +# 78| } +# 79| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp:63:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp:64:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 62| +# 63| if (Kind < FirstTargetFixupKind) +# 64|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 65| +# 66| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp:147:7: var_decl: Declaring variable "Nodes". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp:149:7: uninit_use: Using uninitialized value "Nodes". Field "Nodes.InlineElts" is uninitialized. +# 147| SmallVector Nodes; +# 148| nodesWith(Root, P, CheckAlign, Nodes); +# 149|-> return Nodes; +# 150| } +# 151| void dump() const; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: alloc_fn: Storage is returned from allocation function "getLoopTripCount". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: var_assign: Assigning: "TripCount" = storage returned from "this->getLoopTripCount(L, OldInsts)". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1211:3: noescape: Resource "TripCount" is not freed or pointed-to in "isReg". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1214:5: noescape: Resource "TripCount" is not freed or pointed-to in "getReg". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1217:7: leaked_storage: Variable "TripCount" going out of scope leaks the storage it points to. +# 1215| MachineBasicBlock *BBDef = TCDef->getParent(); +# 1216| if (!MDT->dominates(BBDef, Preheader)) +# 1217|-> return false; +# 1218| } +# 1219| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: alloc_fn: Storage is returned from allocation function "getLoopTripCount". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: var_assign: Assigning: "TripCount" = storage returned from "this->getLoopTripCount(L, OldInsts)". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1211:3: noescape: Resource "TripCount" is not freed or pointed-to in "isReg". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1229:7: leaked_storage: Variable "TripCount" going out of scope leaks the storage it points to. +# 1227| +# 1228| if (TII->analyzeBranch(*ExitingBlock, TB, FB, Cond, false)) +# 1229|-> return false; +# 1230| +# 1231| if (L->contains(TB)) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1890:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1912:3: uninit_use: Using uninitialized value "Result". Field "Result.Weight" is uninitialized. +# 1910| } +# 1911| +# 1912|-> return Result; +# 1913| } +# 1914| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1917:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1939:3: uninit_use: Using uninitialized value "Result". Field "Result.Weight" is uninitialized. +# 1937| } +# 1938| +# 1939|-> return Result; +# 1940| } +# 1941| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1058:3: var_decl: Declaring variable "SegList". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1060:5: uninit_use: Using uninitialized value "SegList". Field "SegList.InlineElts" is uninitialized. +# 1058| SmallVector SegList; +# 1059| if (SM.MaxSrc == -1) +# 1060|-> return SegList; +# 1061| +# 1062| unsigned Shift = Log2_32(SegLen); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1058:3: var_decl: Declaring variable "SegList". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1072:3: uninit_use: Using uninitialized value "SegList". Field "SegList.InlineElts" is uninitialized. +# 1070| for (unsigned B : Segs.set_bits()) +# 1071| SegList.push_back(B); +# 1072|-> return SegList; +# 1073| } +# 1074| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1340:8: assignment: Assigning: "X" = "*__begin1". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1344:7: assignment: Assigning: "Seg0" = "X". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1345:10: cond_const: Checking "Seg1 != 4294967295U" implies that "Seg1" is 4294967295 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1391:5: cond_at_most: Checking "Seg0 / 2U == Seg1 / 2U" implies that "Seg0" may be up to 4294967293 on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1393:7: overrun-local: Overrunning array "Inp" of 2 24-byte elements at element index 2147483646 (byte offset 51539607527) using index "Seg0 / 2U" (which evaluates to 2147483646). +# 1391| if (Seg0 / 2 == Seg1 / 2) { +# 1392| // Same input vector. +# 1393|-> Va = Inp[Seg0 / 2]; +# 1394| if (Seg0 > Seg1) { +# 1395| // Swap halves. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp:2899:3: var_decl: Declaring variable "TLOpc" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp:2916:3: uninit_use_in_call: Using uninitialized value "TLOpc" when calling "getNode". +# 2914| +# 2915| const SDLoc &dl(Op); +# 2916|-> return DAG.getNode(TLOpc, dl, ty(Op), Op.getOperand(0), +# 2917| DAG.getUNDEF(MVT::i128), // illegal type +# 2918| DAG.getConstant(Opc, dl, MVT::i32)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3361:3: var_decl: Declaring variable "Jumpers". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3365:5: uninit_use: Using uninitialized value "Jumpers". Field "Jumpers.InlineElts" is uninitialized. +# 3363| MachineBasicBlock::instr_iterator I = MBB.instr_end(); +# 3364| if (I == MBB.instr_begin()) +# 3365|-> return Jumpers; +# 3366| +# 3367| // A basic block may looks like this: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3361:3: var_decl: Declaring variable "Jumpers". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3382:7: uninit_use: Using uninitialized value "Jumpers". Field "Jumpers.InlineElts" is uninitialized. +# 3380| --I; +# 3381| if (I->isEHLabel()) +# 3382|-> return Jumpers; +# 3383| } while (I != MBB.instr_begin()); +# 3384| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3361:3: var_decl: Declaring variable "Jumpers". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3390:7: uninit_use: Using uninitialized value "Jumpers". Field "Jumpers.InlineElts" is uninitialized. +# 3388| while (I->isDebugInstr()) { +# 3389| if (I == MBB.instr_begin()) +# 3390|-> return Jumpers; +# 3391| --I; +# 3392| } + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:1140:5: extract: Calling "operator []" which extracts wrapped state from "ASpan.Blocks". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:1140:5: escape: The internal representation of "ASpan.Blocks" escapes into "ASpan.Blocks[Index].Seg.Val", but is destroyed when it exits scope. +# 1138| ASpan.Blocks.emplace_back(nullptr, ScLen, Index * ScLen); +# 1139| for (int Index = 0; Index != NumSectors; ++Index) { +# 1140|-> ASpan.Blocks[Index].Seg.Val = +# 1141| reinterpret_cast(&ASpan.Blocks[Index]); +# 1142| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:2121:3: var_decl: Declaring variable "WordP". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:2127:3: uninit_use: Using uninitialized value "WordP". Field "WordP.InlineElts" is uninitialized. +# 2125| } +# 2126| +# 2127|-> return WordP; +# 2128| } +# 2129| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp:196:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp:197:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 195| +# 196| if (Kind < FirstTargetFixupKind) +# 197|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 198| +# 199| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:697:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:1009:3: uninit_use: Using uninitialized value "Result". Field "Result.Operands.InlineElts" is uninitialized. +# 1007| break; // 1,2 SUBInst $Rd = zxth($Rs) +# 1008| } +# 1009|-> return Result; +# 1010| } +# 1011| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:1032:3: var_decl: Declaring variable "duplexToTry". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:1104:3: uninit_use: Using uninitialized value "duplexToTry". Field "duplexToTry.InlineElts" is uninitialized. +# 1102| } +# 1103| } +# 1104|-> return duplexToTry; +# 1105| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp:108:5: overrun-local: Overrunning array "sbss" of 4 16-byte elements at element index 63 (byte offset 1023) using index "llvm::Log2_64(AccessSize)" (which evaluates to 63). +# 106| +# 107| if (ELFSymbol->getBinding() == ELF::STB_LOCAL) { +# 108|-> StringRef SectionName = +# 109| ((AccessSize == 0) || (Size == 0) || (Size > GPSize)) +# 110| ? ".bss" + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp:576:3: alloc_fn: Storage is returned from allocation function "createHexagonMCSubtargetInfoImpl". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp:576:3: var_assign: Assigning: "X" = storage returned from "llvm::createHexagonMCSubtargetInfoImpl(TT, CPUName, CPUName, ArchFS)". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp:587:5: leaked_storage: Variable "X" going out of scope leaks the storage it points to. +# 585| errs() << "error: invalid CPU \"" << CPUName.str().c_str() +# 586| << "\" specified\n"; +# 587|-> return nullptr; +# 588| } +# 589| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:465:7: uninit_use: Using uninitialized value "Summary.pSlot3Cnt". +# 463| +# 464| if (HexagonMCInstrInfo::prefersSlot3(MCII, ID)) { +# 465|-> ++Summary.pSlot3Cnt; +# 466| Summary.PrefSlot3Inst = ISJ; +# 467| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:470:5: uninit_use: Using uninitialized value "Summary.ReservedSlotMask". +# 468| const unsigned ReservedSlots = +# 469| HexagonMCInstrInfo::getOtherReservedSlots(MCII, STI, ID); +# 470|-> Summary.ReservedSlotMask |= ReservedSlots; +# 471| if (ReservedSlots != 0) +# 472| AppliedRestrictions.push_back(std::make_pair(ID.getLoc(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:491:7: uninit_use: Using uninitialized value "Summary.NonZCVIloads". +# 489| case HexagonII::TypeCVI_GATHER_DV: +# 490| case HexagonII::TypeCVI_GATHER_RST: +# 491|-> ++Summary.NonZCVIloads; +# 492| [[fallthrough]]; +# 493| case HexagonII::TypeCVI_ZW: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:494:7: uninit_use: Using uninitialized value "Summary.AllCVIloads". +# 492| [[fallthrough]]; +# 493| case HexagonII::TypeCVI_ZW: +# 494|-> ++Summary.AllCVIloads; +# 495| [[fallthrough]]; +# 496| case HexagonII::TypeLD: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:497:7: uninit_use: Using uninitialized value "Summary.loads". +# 495| [[fallthrough]]; +# 496| case HexagonII::TypeLD: +# 497|-> ++Summary.loads; +# 498| ++Summary.memory; +# 499| if (ISJ->Core.getUnits() == slotSingleLoad || + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:498:7: uninit_use: Using uninitialized value "Summary.memory". +# 496| case HexagonII::TypeLD: +# 497| ++Summary.loads; +# 498|-> ++Summary.memory; +# 499| if (ISJ->Core.getUnits() == slotSingleLoad || +# 500| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_VP_LDU) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:501:9: uninit_use: Using uninitialized value "Summary.load0". +# 499| if (ISJ->Core.getUnits() == slotSingleLoad || +# 500| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_VP_LDU) +# 501|-> ++Summary.load0; +# 502| if (HexagonMCInstrInfo::getDesc(MCII, ID).isReturn()) +# 503| Summary.branchInsts.push_back(ISJ); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:513:7: uninit_use: Using uninitialized value "Summary.CVIstores". +# 511| case HexagonII::TypeCVI_SCATTER_NEW_RST: +# 512| case HexagonII::TypeCVI_SCATTER_NEW_ST: +# 513|-> ++Summary.CVIstores; +# 514| [[fallthrough]]; +# 515| case HexagonII::TypeST: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:516:7: uninit_use: Using uninitialized value "Summary.stores". +# 514| [[fallthrough]]; +# 515| case HexagonII::TypeST: +# 516|-> ++Summary.stores; +# 517| ++Summary.memory; +# 518| if (ISJ->Core.getUnits() == slotSingleStore || + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:517:7: uninit_use: Using uninitialized value "Summary.memory". +# 515| case HexagonII::TypeST: +# 516| ++Summary.stores; +# 517|-> ++Summary.memory; +# 518| if (ISJ->Core.getUnits() == slotSingleStore || +# 519| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_STU) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:520:9: uninit_use: Using uninitialized value "Summary.store0". +# 518| if (ISJ->Core.getUnits() == slotSingleStore || +# 519| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_STU) +# 520|-> ++Summary.store0; +# 521| break; +# 522| case HexagonII::TypeV4LDST: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:523:7: uninit_use: Using uninitialized value "Summary.loads". +# 521| break; +# 522| case HexagonII::TypeV4LDST: +# 523|-> ++Summary.loads; +# 524| ++Summary.stores; +# 525| ++Summary.store1; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:524:7: uninit_use: Using uninitialized value "Summary.stores". +# 522| case HexagonII::TypeV4LDST: +# 523| ++Summary.loads; +# 524|-> ++Summary.stores; +# 525| ++Summary.store1; +# 526| ++Summary.memops; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:525:7: uninit_use: Using uninitialized value "Summary.store1". +# 523| ++Summary.loads; +# 524| ++Summary.stores; +# 525|-> ++Summary.store1; +# 526| ++Summary.memops; +# 527| ++Summary.memory; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:526:7: uninit_use: Using uninitialized value "Summary.memops". +# 524| ++Summary.stores; +# 525| ++Summary.store1; +# 526|-> ++Summary.memops; +# 527| ++Summary.memory; +# 528| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:527:7: uninit_use: Using uninitialized value "Summary.memory". +# 525| ++Summary.store1; +# 526| ++Summary.memops; +# 527|-> ++Summary.memory; +# 528| break; +# 529| case HexagonII::TypeNCJ: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:530:7: uninit_use: Using uninitialized value "Summary.memory". +# 528| break; +# 529| case HexagonII::TypeNCJ: +# 530|-> ++Summary.memory; // NV insns are memory-like. +# 531| Summary.branchInsts.push_back(ISJ); +# 532| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:535:9: uninit_use: Using uninitialized value "Summary.loads". +# 533| case HexagonII::TypeV2LDST: +# 534| if (HexagonMCInstrInfo::getDesc(MCII, ID).mayLoad()) { +# 535|-> ++Summary.loads; +# 536| ++Summary.memory; +# 537| if (ISJ->Core.getUnits() == slotSingleLoad || + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:536:9: uninit_use: Using uninitialized value "Summary.memory". +# 534| if (HexagonMCInstrInfo::getDesc(MCII, ID).mayLoad()) { +# 535| ++Summary.loads; +# 536|-> ++Summary.memory; +# 537| if (ISJ->Core.getUnits() == slotSingleLoad || +# 538| HexagonMCInstrInfo::getType(MCII, ID) == + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:540:11: uninit_use: Using uninitialized value "Summary.load0". +# 538| HexagonMCInstrInfo::getType(MCII, ID) == +# 539| HexagonII::TypeCVI_VM_VP_LDU) +# 540|-> ++Summary.load0; +# 541| } else { +# 542| assert(HexagonMCInstrInfo::getDesc(MCII, ID).mayStore()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:543:9: uninit_use: Using uninitialized value "Summary.memory". +# 541| } else { +# 542| assert(HexagonMCInstrInfo::getDesc(MCII, ID).mayStore()); +# 543|-> ++Summary.memory; +# 544| ++Summary.stores; +# 545| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:544:9: uninit_use: Using uninitialized value "Summary.stores". +# 542| assert(HexagonMCInstrInfo::getDesc(MCII, ID).mayStore()); +# 543| ++Summary.memory; +# 544|-> ++Summary.stores; +# 545| } +# 546| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:554:7: uninit_use: Using uninitialized value "Summary.duplex". +# 552| break; +# 553| case HexagonII::TypeDUPLEX: { +# 554|-> ++Summary.duplex; +# 555| MCInst const &Inst0 = *ID.getOperand(0).getInst(); +# 556| MCInst const &Inst1 = *ID.getOperand(1).getInst(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:569:3: uninit_use: Using uninitialized value "Summary". Field "Summary.memory" is uninitialized. +# 567| } +# 568| } +# 569|-> return Summary; +# 570| } +# 571| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp:151:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp:152:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 150| +# 151| if (Kind < FirstTargetFixupKind) +# 152|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 153| +# 154| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:74:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:77:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:78:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 76| +# 77| if (Kind < FirstTargetFixupKind) +# 78|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 79| +# 80| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:74:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:77:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:82:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 264 bytes. +# 80| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 81| "Invalid kind!"); +# 82|-> return Infos[Kind - FirstTargetFixupKind]; +# 83| } +# 84| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:27:3: var_decl: Declaring variable "Insts". +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:31:5: uninit_use: Using uninitialized value "Insts". Field "Insts.InlineElts" is uninitialized. +# 29| if (Highest12 != 0 && SignExtend64<52>(Val) == 0) { +# 30| Insts.push_back(Inst(LoongArch::LU52I_D, SignExtend64<12>(Highest12))); +# 31|-> return Insts; +# 32| } +# 33| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:27:3: var_decl: Declaring variable "Insts". +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:50:3: uninit_use: Using uninitialized value "Insts". Field "Insts.InlineElts" is uninitialized. +# 48| Insts.push_back(Inst(LoongArch::LU52I_D, SignExtend64<12>(Highest12))); +# 49| +# 50|-> return Insts; +# 51| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp:87:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp:88:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 86| +# 87| if (Kind < FirstTargetFixupKind) +# 88|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 89| +# 90| return Infos[Kind - FirstTargetFixupKind]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:3414:5: var_decl: Declaring variable "RealVal". +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:3415:5: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "bitcastToAPInt". +# 3413| if ((Hi_32(ImmOp64) & 0x7ff00000) == 0) { +# 3414| APFloat RealVal(APFloat::IEEEdouble(), ImmOp64); +# 3415|-> ImmOp64 = RealVal.bitcastToAPInt().getZExtValue(); +# 3416| } +# 3417| return ImmOp64; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:128:5: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:131:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:136:5: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 264 bytes. +# 134| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 135| "Invalid kind!"); +# 136|-> return (Endian == llvm::endianness::little +# 137| ? InfosLE +# 138| : InfosBE)[Kind - FirstTargetFixupKind]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp:438:3: var_decl: Declaring variable "Options". +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp:441:3: uninit_use: Using uninitialized value "Options". Field "Options.AllowedTailExpansions.InlineElts" is uninitialized. +# 439| Options.LoadSizes = {8, 4, 2, 1}; +# 440| Options.MaxNumLoads = TLI->getMaxExpandSizeMemcmp(OptSize); +# 441|-> return Options; +# 442| } +# 443| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:615:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, this->getFPConst(), false))". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:615:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 613| if (Kind != KindTy::FPImmediate) +# 614| return false; +# 615|-> int Idx = RISCVLoadFPImm::getLoadFPImm( +# 616| APFloat(APFloat::IEEEdouble(), APInt(64, getFPConst()))); +# 617| // Don't allow decimal version of the minimum value. It is a different value + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1210:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, this->getFPConst(), false))". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1210:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1208| } +# 1209| +# 1210|-> int Imm = RISCVLoadFPImm::getLoadFPImm( +# 1211| APFloat(APFloat::IEEEdouble(), APInt(64, getFPConst()))); +# 1212| Inst.addOperand(MCOperand::createImm(Imm)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1944:3: var_decl: Declaring variable "RealVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1945:3: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "convertFromString". +# 1943| // Parse FP representation. +# 1944| APFloat RealVal(APFloat::IEEEdouble()); +# 1945|-> auto StatusOrErr = +# 1946| RealVal.convertFromString(Tok.getString(), APFloat::rmTowardZero); +# 1947| if (errorToBool(StatusOrErr.takeError())) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp:138:5: var_decl: Declaring variable "Instruments". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp:163:5: uninit_use: Using uninitialized value "Instruments". Field "Instruments.InlineElts" is uninitialized. +# 161| createInstrument(RISCVSEWInstrument::DESC_NAME, SEWStr)); +# 162| +# 163|-> return Instruments; +# 164| } +# 165| return SmallVector(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:101:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:104:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:105:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 103| +# 104| if (Kind < FirstTargetFixupKind) +# 105|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 106| +# 107| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:101:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:104:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:109:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 624 bytes. +# 107| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 108| "Invalid kind!"); +# 109|-> return Infos[Kind - FirstTargetFixupKind]; +# 110| } +# 111| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:380:3: var_decl: Declaring variable "NonLibcallCSI". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:388:3: uninit_use: Using uninitialized value "NonLibcallCSI". Field "NonLibcallCSI.InlineElts" is uninitialized. +# 386| } +# 387| +# 388|-> return NonLibcallCSI; +# 389| } +# 390| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:395:3: var_decl: Declaring variable "RVVCSI". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:403:3: uninit_use: Using uninitialized value "RVVCSI". Field "RVVCSI.InlineElts" is uninitialized. +# 401| } +# 402| +# 403|-> return RVVCSI; +# 404| } +# 405| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:840:3: var_decl: Declaring variable "Opcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:873:3: uninit_use_in_call: Using uninitialized value "Opcode" when calling "getMachineNode". +# 871| } +# 872| +# 873|-> ReplaceNode(Node, CurDAG->getMachineNode( +# 874| Opcode, DL, Node->getSimpleValueType(0), Operands)); +# 875| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3025:3: var_decl: Declaring variable "MaxVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3026:3: uninit_use_in_call: Using uninitialized value "MaxVal.U" when calling "convertFromAPInt". +# 3024| unsigned Precision = APFloat::semanticsPrecision(FltSem); +# 3025| APFloat MaxVal = APFloat(FltSem); +# 3026|-> MaxVal.convertFromAPInt(APInt::getOneBitSet(Precision, Precision - 1), +# 3027| /*IsSigned*/ false, APFloat::rmNearestTiesToEven); +# 3028| SDValue MaxValNode = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3135:3: var_decl: Declaring variable "MaxVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3136:3: uninit_use_in_call: Using uninitialized value "MaxVal.U" when calling "convertFromAPInt". +# 3134| unsigned Precision = APFloat::semanticsPrecision(FltSem); +# 3135| APFloat MaxVal = APFloat(FltSem); +# 3136|-> MaxVal.convertFromAPInt(APInt::getOneBitSet(Precision, Precision - 1), +# 3137| /*IsSigned*/ false, APFloat::rmNearestTiesToEven); +# 3138| SDValue MaxValNode = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3215:3: var_decl: Declaring variable "MaxVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3216:3: uninit_use_in_call: Using uninitialized value "MaxVal.U" when calling "convertFromAPInt". +# 3214| unsigned Precision = APFloat::semanticsPrecision(FltSem); +# 3215| APFloat MaxVal = APFloat(FltSem); +# 3216|-> MaxVal.convertFromAPInt(APInt::getOneBitSet(Precision, Precision - 1), +# 3217| /*IsSigned*/ false, APFloat::rmNearestTiesToEven); +# 3218| SDValue MaxValNode = DAG.getConstantFP(MaxVal, DL, VT); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:7606:9: address_of: Taking address with "&NewSel" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:7606:9: callee_ptr_arith: Passing "&NewSel" to function "ReplaceAllUsesWith" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 7604| if (SDValue NewSel = foldBinOpIntoSelectIfProfitable(*Op->use_begin(), +# 7605| DAG, Subtarget)) { +# 7606|-> DAG.ReplaceAllUsesWith(BinOp, &NewSel); +# 7607| return lowerSELECT(NewSel, DAG); +# 7608| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:14478:3: var_decl: Declaring variable "Strategies". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:14525:3: uninit_use: Using uninitialized value "Strategies". Field "Strategies.InlineElts" is uninitialized. +#14523| llvm_unreachable("Unexpected opcode"); +#14524| } +#14525|-> return Strategies; +#14526| } +#14527| } // End anonymous namespace. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:260:7: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:263:7: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:264:9: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 262| +# 263| if (Kind < FirstTargetFixupKind) +# 264|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 265| +# 266| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:260:7: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:263:7: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:269:9: illegal_address: "InfosLE[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1008 bytes. +# 267| "Invalid kind!"); +# 268| if (Endian == llvm::endianness::little) +# 269|-> return InfosLE[Kind - FirstTargetFixupKind]; +# 270| +# 271| return InfosBE[Kind - FirstTargetFixupKind]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:260:7: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:263:7: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:271:7: illegal_address: "InfosBE[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1008 bytes. +# 269| return InfosLE[Kind - FirstTargetFixupKind]; +# 270| +# 271|-> return InfosBE[Kind - FirstTargetFixupKind]; +# 272| } +# 273| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/SparcISelLowering.cpp:3226:3: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(Op)->getSuccessOrdering()" (which evaluates to 15) in call to "isStrongerThanMonotonic". +# 3224| +# 3225| static SDValue LowerATOMIC_LOAD_STORE(SDValue Op, SelectionDAG &DAG) { +# 3226|-> if (isStrongerThanMonotonic(cast(Op)->getSuccessOrdering())) { +# 3227| // Expand with a fence. +# 3228| return SDValue(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:686:5: cond_at_most: Checking "regIdx > 31U" implies that "regIdx" may be up to 31 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:686:5: overrun-local: Overrunning array "MISCRegs" of 31 2-byte elements at element index 31 (byte offset 63) using index "regIdx" (which evaluates to 31). +# 684| return false; +# 685| unsigned regIdx = ConstExpr->getValue(); +# 686|-> if (regIdx > 31 || MISCRegs[regIdx] == VE::NoRegister) +# 687| return false; +# 688| Op.Kind = k_Register; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:686:5: cond_at_most: Checking "regIdx > 31U" implies that "regIdx" may be up to 31 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:689:5: overrun-local: Overrunning array "MISCRegs" of 31 2-byte elements at element index 31 (byte offset 63) using index "regIdx" (which evaluates to 31). +# 687| return false; +# 688| Op.Kind = k_Register; +# 689|-> Op.Reg.RegNum = MISCRegs[regIdx]; +# 690| return true; +# 691| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp:126:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp:127:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 125| +# 126| if (Kind < FirstTargetFixupKind) +# 127|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 128| +# 129| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: assign: Assigning: "MemOpNo" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:652:5: overflow: The expression "MemOpNo + AddrDisp" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:652:5: overflow_sink: "MemOpNo + AddrDisp", which might be negative, is passed to "MI->getOperand(MemOpNo + AddrDisp)". +# 650| return false; +# 651| int MemOpNo = X86::getFirstAddrOperandIdx(MI); +# 652|-> const MachineOperand &DispOp = MI.getOperand(MemOpNo + X86::AddrDisp); +# 653| Register Base = MI.getOperand(MemOpNo + X86::AddrBaseReg).getReg(); +# 654| // If the displacement is a expr, conservatively estimate 4 bytes. + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: assign: Assigning: "MemOpNo" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:658:5: overflow: The expression "MemOpNo + AddrIndexReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:658:5: overflow_sink: "MemOpNo + AddrIndexReg", which might be negative, is passed to "MI->getOperand(MemOpNo + AddrIndexReg)". +# 656| return false; +# 657| // There can only be one of three: SIB, segment override register, ADSIZE +# 658|-> Register Index = MI.getOperand(MemOpNo + X86::AddrIndexReg).getReg(); +# 659| unsigned Count = !!MI.getOperand(MemOpNo + X86::AddrSegmentReg).getReg(); +# 660| if (X86II::needSIB(Base, Index, /*In64BitMode=*/true)) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: assign: Assigning: "MemOpNo" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:659:5: overflow: The expression "MemOpNo + AddrSegmentReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:659:5: overflow_sink: "MemOpNo + AddrSegmentReg", which might be negative, is passed to "MI->getOperand(MemOpNo + AddrSegmentReg)". +# 657| // There can only be one of three: SIB, segment override register, ADSIZE +# 658| Register Index = MI.getOperand(MemOpNo + X86::AddrIndexReg).getReg(); +# 659|-> unsigned Count = !!MI.getOperand(MemOpNo + X86::AddrSegmentReg).getReg(); +# 660| if (X86II::needSIB(Base, Index, /*In64BitMode=*/true)) +# 661| ++Count; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7211:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7211:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7209| if (VT.isFloatingPoint()) { +# 7210| if (ScalarSize == 16) +# 7211|-> return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 7212| if (ScalarSize == 32) +# 7213| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7213:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7213:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7211| return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 7212| if (ScalarSize == 32) +# 7213|-> return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 7214| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 7215| return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7215:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7215:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7213| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 7214| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 7215|-> return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); +# 7216| } +# 7217| return Constant::getIntegerValue(Type::getIntNTy(C, ScalarSize), Val); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:47529:7: var_decl: Declaring variable "ShiftAmt1" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:47540:9: uninit_use_in_call: Using uninitialized value "ShiftAmt1" when calling "Log2_64". +#47538| +#47539| if (Opc) { +#47540|-> SDValue Shift1 = +#47541| DAG.getNode(ISD::SHL, DL, VT, N->getOperand(0), +#47542| DAG.getConstant(Log2_64(ShiftAmt1), DL, ShiftVT)); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5680:9: return_constant: Function call "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5680:9: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5678| return true; +# 5679| UseMI.setDesc(get(X86::MOV32r0)); +# 5680|-> UseMI.removeOperand( +# 5681| UseMI.findRegisterUseOperandIdx(Reg, /*TRI=*/nullptr)); +# 5682| UseMI.addOperand(MachineOperand::CreateReg(X86::EFLAGS, /*isDef=*/true, + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5714:5: return_constant: Function call "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5714:5: assignment: Assigning: "RegIdx" = "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)". The value of "RegIdx" is now 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5724:5: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "RegIdx" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5722| return true; +# 5723| UseMI.setDesc(get(NewOpc)); +# 5724|-> UseMI.removeOperand(RegIdx); +# 5725| UseMI.addOperand(MachineOperand::CreateImm(ImmVal)); +# 5726| // Reg is physical register $cl, so we don't know if DefMI is dead through + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5743:7: return_constant: Function call "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5743:7: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5741| // %100 = COPY %101 +# 5742| UseMI.setDesc(get(TargetOpcode::COPY)); +# 5743|-> UseMI.removeOperand( +# 5744| UseMI.findRegisterUseOperandIdx(Reg, /*TRI=*/nullptr)); +# 5745| UseMI.removeOperand( + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5745:7: return_constant: Function call "UseMI->findRegisterDefOperandIdx(llvm::Register(EFLAGS), NULL, false, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5745:7: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "UseMI->findRegisterDefOperandIdx(llvm::Register(EFLAGS), NULL, false, false)" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5743| UseMI.removeOperand( +# 5744| UseMI.findRegisterUseOperandIdx(Reg, /*TRI=*/nullptr)); +# 5745|-> UseMI.removeOperand( +# 5746| UseMI.findRegisterDefOperandIdx(X86::EFLAGS, /*TRI=*/nullptr)); +# 5747| UseMI.untieRegOperand(0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3934:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3946:3: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 3944| AC.UseLiveness = false; +# 3945| +# 3946|-> Attributor A(Functions, InfoCache, AC); +# 3947| +# 3948| for (Function *F : Functions) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3934:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3946:3: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 3944| AC.UseLiveness = false; +# 3945| +# 3946|-> Attributor A(Functions, InfoCache, AC); +# 3947| +# 3948| for (Function *F : Functions) { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:62:5: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(AttributeText)". The value of "Kind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:63:5: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 92 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:63:5: overrun-call: Overrunning callee's array of size 89 by passing argument "Kind" (which evaluates to 92) in call to "canUseAsFnAttr". +# 61| } +# 62| auto Kind = Attribute::getAttrKindFromName(AttributeText); +# 63|-> if (Kind == Attribute::None || !Attribute::canUseAsFnAttr(Kind)) { +# 64| LLVM_DEBUG(dbgs() << "ForcedAttribute: " << AttributeText +# 65| << " unknown or not a function attribute!\n"); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:112:11: assignment: Assigning: "AttrKind" = "llvm::Attribute::getAttrKindFromName(SplitPair.second)". The value of "AttrKind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:113:11: cond_between: Checking "AttrKind != None" implies that "AttrKind" is between 1 and 92 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:113:11: overrun-call: Overrunning callee's array of size 89 by passing argument "AttrKind" (which evaluates to 92) in call to "canUseAsFnAttr". +# 111| } else { +# 112| auto AttrKind = Attribute::getAttrKindFromName(SplitPair.second); +# 113|-> if (AttrKind != Attribute::None && +# 114| Attribute::canUseAsFnAttr(AttrKind)) { +# 115| // TODO: There could be string attributes without a value, we should + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:2711:7: address_of: Taking address with "&EI" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:2711:7: callee_ptr_arith: Passing "&EI" to function "moveEdgeToExistingCalleeClone" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2709| // The edge iterator is adjusted when we move the CallerEdge to the clone. +# 2710| if (Clone) +# 2711|-> moveEdgeToExistingCalleeClone(CallerEdge, Clone, &EI, /*NewClone=*/false, +# 2712| CallerEdgeContextsForAlloc); +# 2713| else + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:3164:17: address_of: Taking address with "&EI" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:3164:17: callee_ptr_arith: Passing "&EI" to function "moveEdgeToExistingCalleeClone" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3162| ContextNode *NewClone = +# 3163| FuncCloneToNewCallsiteCloneMap[FuncCloneCalledByCaller]; +# 3164|-> moveEdgeToExistingCalleeClone(Edge, NewClone, &EI); +# 3165| // Cleanup any none type edges cloned over. +# 3166| removeNoneTypeCalleeEdges(NewClone); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:260:3: var_decl: Declaring variable "T". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:261:3: uninit_use_in_call: Using uninitialized value "T.U" when calling "changeSign". +# 259| +# 260| APFloat T(Sem, 0 - Val); +# 261|-> T.changeSign(); +# 262| +# 263| return T; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:3291:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(FPType->getFltSemantics(), C)". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:3291:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3289| Attribute::NoImplicitFloat) && +# 3290| Cmp.isEquality() && FPType->isIEEELikeFPTy()) { +# 3291|-> FPClassTest Mask = APFloat(FPType->getFltSemantics(), *C).classify(); +# 3292| if (Mask & (fcInf | fcZero)) { +# 3293| if (Pred == ICmpInst::ICMP_NE) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4012:7: var_decl: Declaring variable "NewOps". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4018:7: uninit_use: Using uninitialized value "NewOps". Field "NewOps.InlineElts" is uninitialized. +# 4016| else +# 4017| NewOps.push_back(Op); +# 4018|-> return NewOps; +# 4019| }; +# 4020| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4102:7: var_decl: Declaring variable "NewOps". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4108:7: uninit_use: Using uninitialized value "NewOps". Field "NewOps.InlineElts" is uninitialized. +# 4106| else +# 4107| NewOps.push_back(Op); +# 4108|-> return NewOps; +# 4109| }; +# 4110| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/InlineFunction.cpp:1442:3: var_decl: Declaring variable "Valid". +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/InlineFunction.cpp:1447:3: uninit_use: Using uninitialized value "Valid". Field "Valid.Attrs.InlineElts" is uninitialized. +# 1445| if (CB.hasRetAttr(Attribute::Alignment)) +# 1446| Valid.addAlignmentAttr(CB.getRetAlign()); +# 1447|-> return Valid; +# 1448| } +# 1449| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:9033:3: var_decl: Declaring variable "ArgTys". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:9048:3: uninit_use: Using uninitialized value "ArgTys". Field "ArgTys.InlineElts" is uninitialized. +# 9046| ArgTys.push_back(FixedVectorType::get(Arg->getType(), VF)); +# 9047| } +# 9048|-> return ArgTys; +# 9049| } +# 9050| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15155:5: var_decl: Declaring variable "CallChecker". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15211:5: uninit_use_in_call: Using uninitialized value "CallChecker.callable" when calling "operator ()". +#15209| (void)AttemptCheckBitwidth(Checker, NeedToExit); +#15210| BitWidth = BestBitWidth; +#15211|-> return TryProcessInstruction(BitWidth, Operands, CallChecker); +#15212| } +#15213| +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15211:5: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15832:9: var_decl: Declaring variable "AnyProfitableGraph" without initializer. +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15959:9: uninit_use: Using uninitialized value "AnyProfitableGraph". +#15957| break; +#15958| // Check if tried all attempts or no need for the last attempts at all. +#15959|-> if (Repeat >= MaxAttempts || +#15960| (Repeat > 1 && (RepeatChanged || !AnyProfitableGraph))) +#15961| break; +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15959:9: note: trimmed 5 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:1235:3: var_decl: Declaring variable "HeaderMasks". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:1250:3: uninit_use: Using uninitialized value "HeaderMasks". Field "HeaderMasks.InlineElts" is uninitialized. +# 1248| } +# 1249| } +# 1250|-> return HeaderMasks; +# 1251| } +# 1252| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VectorCombine.cpp:1702:9: var_decl: Declaring variable "NItem". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VectorCombine.cpp:1710:9: uninit_use: Using uninitialized value "NItem". Field "NItem.InlineElts" is uninitialized. +# 1708| cast(V.first)->getOperand(Op), V.second)); +# 1709| } +# 1710|-> return NItem; +# 1711| }; +# 1712| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: alloc_fn: Storage is returned from allocation function "strdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: var_assign: Assigning: "NewDefinedDefaultHref" = storage returned from "strdup(reinterpret_cast(Def->href))". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: overwrite_var: Overwriting "NewDefinedDefaultHref" in "NewDefinedDefaultHref = reinterpret_cast(strdup(reinterpret_cast(Def->href)))" leaks the storage that "NewDefinedDefaultHref" points to. +# 346| if (!Def->prefix) { +# 347| if (namespaceOverrides(Def->href, OriginalNsDef->href)) { +# 348|-> NewDefinedDefaultHref = TO_XML_CHAR(strdup(FROM_XML_CHAR(Def->href))); +# 349| } +# 350| } else if (!xmlStringsEqual(OriginalNsDef->href, Def->href)) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: alloc_fn: Storage is returned from allocation function "strdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: var_assign: Assigning: "NewDefinedDefaultHref" = storage returned from "strdup(reinterpret_cast(Def->href))". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:351:9: leaked_storage: Variable "NewDefinedDefaultHref" going out of scope leaks the storage it points to. +# 349| } +# 350| } else if (!xmlStringsEqual(OriginalNsDef->href, Def->href)) { +# 351|-> return make_error( +# 352| Twine("conflicting namespace definitions for ") + +# 353| FROM_XML_CHAR(Def->prefix)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:337:5: alloc_fn: Storage is returned from allocation function "xmlStrdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:337:5: var_assign: Assigning: "OriginalDefinedDefaultHref" = storage returned from "xmlStrdup(OriginalDefinedDefaultNs->href)". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:351:9: leaked_storage: Variable "OriginalDefinedDefaultHref" going out of scope leaks the storage it points to. +# 349| } +# 350| } else if (!xmlStringsEqual(OriginalNsDef->href, Def->href)) { +# 351|-> return make_error( +# 352| Twine("conflicting namespace definitions for ") + +# 353| FROM_XML_CHAR(Def->prefix)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: alloc_fn: Storage is returned from allocation function "strdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: var_assign: Assigning: "NewDefinedDefaultHref" = storage returned from "strdup(reinterpret_cast(Def->href))". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:385:11: leaked_storage: Variable "NewDefinedDefaultHref" going out of scope leaks the storage it points to. +# 383| searchOrDefine(OriginalDefinedDefaultHref, DominantNode); +# 384| if (!EC) { +# 385|-> return EC.takeError(); +# 386| } +# 387| xmlNsPtr PrefixDominantDefinedDefault = std::move(EC.get()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48129:3: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48130:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isReleaseOrStronger". +#48128| +#48129| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#48130|-> return !isReleaseOrStronger(Ordering); +#48131| +#48132| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48199:3: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48200:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isReleaseOrStronger". +#48198| +#48199| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#48200|-> return isReleaseOrStronger(Ordering); +#48201| +#48202| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:579:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(floatSema, value)". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:579:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 577| const llvm::fltSemantics &floatSema = llvm::APFloatBase::EnumToSemantics( +# 578| static_cast(semantics)); +# 579|-> return APValue(llvm::APFloat(floatSema, value)); +# 580| +# 581| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:604:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(sema, imag)". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:604:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 602| const llvm::fltSemantics &sema = llvm::APFloatBase::EnumToSemantics( +# 603| static_cast(semantics)); +# 604|-> return APValue(llvm::APFloat(sema, real), +# 605| llvm::APFloat(sema, imag)); +# 606| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:629:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:633:7: uninit_use_in_call: Using uninitialized value "result.Data" when calling "getArrayInitializedElt". +# 631| result.MakeArray(initLength, totalLength); +# 632| for (unsigned i = 0; i < initLength; ++i) +# 633|-> result.getArrayInitializedElt(i) = elements[i]; +# 634| if (hasFiller) +# 635| result.getArrayFiller() = elements.back(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:646:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:649:7: uninit_use_in_call: Using uninitialized value "result.Data" when calling "getStructBase". +# 647| result.MakeStruct(bases.size(), fields.size()); +# 648| for (unsigned i = 0; i < bases.size(); ++i) +# 649|-> result.getStructBase(i) = bases[i]; +# 650| for (unsigned i = 0; i < fields.size(); ++i) +# 651| result.getStructField(i) = fields[i]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:678:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:684:5: uninit_use: Using uninitialized value "result". Field "result.Data" is uninitialized. +# 682| for (unsigned i = 0; i < pathSize; ++i) +# 683| pathArray[i] = memberPath[i]->getCanonicalDecl(); +# 684|-> return result; +# 685| +# 686| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/gold/gold-plugin.cpp:128:34: destructor_uses_global_object: The destructor of global object "ResInfo" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "ResInfo" might be called after "fuzzer::TPC" has already been destroyed. +# 126| static std::list Modules; +# 127| static DenseMap FDToLeaderHandle; +# 128|-> static StringMap ResInfo; +# 129| static std::vector Cleanup; +# 130| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:351:5: move: "CoverageInfo" is moved (indicated by "std::move(CoverageInfo)"). +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:351:5: use_after_move: "CoverageInfo" is used after it has been already moved. +# 349| ViewBranches.push_back(*NextBranch++); +# 350| +# 351|-> View.addBranch(CurrentLine, std::move(ViewBranches), +# 352| SourceCoverageView::create(SourceName, File, ViewOpts, +# 353| std::move(CoverageInfo))); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:377:5: move: "CoverageInfo" is moved (indicated by "std::move(CoverageInfo)"). +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:377:5: use_after_move: "CoverageInfo" is used after it has been already moved. +# 375| ViewMCDCRecords.push_back(*NextRecord++); +# 376| +# 377|-> View.addMCDCRecord(CurrentLine, std::move(ViewMCDCRecords), +# 378| SourceCoverageView::create(SourceName, File, ViewOpts, +# 379| std::move(CoverageInfo))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp:439:5: var_decl: Declaring variable "rlim" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp:442:5: uninit_use_in_call: Using uninitialized value "rlim". Field "rlim.rlim_max" is uninitialized when calling "setrlimit". +# 440| +# 441| rlim.rlim_cur = 0; +# 442|-> setrlimit(RLIMIT_CORE, &rlim); +# 443| } +# 444| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/llvm-exegesis.cpp:427:13: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/llvm-exegesis.cpp:429:11: use_after_move: "Err" is used after it has been already moved. +# 427| ExitOnErr(std::move(Err)); +# 428| +# 429|-> BenchmarkResult.Error = toString(std::move(Err)); +# 430| } +# 431| AllResults.push_back(std::move(BenchmarkResult)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-nm/llvm-nm.cpp:665:3: var_decl: Declaring variable "Line" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-nm/llvm-nm.cpp:724:3: uninit_use_in_call: Using uninitialized value "Line" when calling "operator <<". +# 722| } +# 723| } +# 724|-> outs() << '\t' << FileName << ':' << Line; +# 725| } +# 726| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp:283:37: destructor_uses_global_object: The destructor of global object "TargetMap" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "TargetMap" might be called after "fuzzer::TPC" has already been destroyed. +# 281| +# 282| // FIXME: consolidate with the bfd parsing used by lld. +# 283|-> static const StringMap TargetMap{ +# 284| // Name, {EMachine, 64bit, LittleEndian} +# 285| // x86 + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-profgen/PerfReader.cpp:1227:52: destructor_uses_global_object: The destructor of global object "llvm::sampleprof::PerfScriptReader::TempFileCleanups" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::sampleprof::PerfScriptReader::TempFileCleanups" might be called after "fuzzer::TPC" has already been destroyed. +# 1225| } +# 1226| +# 1227|-> SmallVector PerfScriptReader::TempFileCleanups; +# 1228| +# 1229| } // end namespace sampleprof + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/ResourceScriptStmt.cpp:149:44: destructor_uses_global_object: The destructor of global object "llvm::rc::Control::SupportedCtls" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::rc::Control::SupportedCtls" might be called after "fuzzer::TPC" has already been destroyed. +# 147| } +# 148| +# 149|-> const StringMap Control::SupportedCtls = { +# 150| {"LTEXT", CtlInfo{0x50020000, ClsStatic, true}}, +# 151| {"CTEXT", CtlInfo{0x50020001, ClsStatic, true}}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/ResourceScriptStmt.cpp:220:57: destructor_uses_global_object: The destructor of global object "llvm::rc::VersionInfoResource::VersionInfoFixed::FixedFieldsInfoMap" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::rc::VersionInfoResource::VersionInfoFixed::FixedFieldsInfoMap" might be called after "fuzzer::TPC" has already been destroyed. +# 218| "FILEFLAGS", "FILEOS", "FILETYPE", "FILESUBTYPE"}; +# 219| +# 220|-> const StringMap VersionInfoFixed::FixedFieldsInfoMap = { +# 221| {FixedFieldsNames[FtFileVersion], FtFileVersion}, +# 222| {FixedFieldsNames[FtProductVersion], FtProductVersion}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/llvm-rc.cpp:109:20: destructor_uses_global_object: The destructor of global object "::TempPreprocFile" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::TempPreprocFile" might be called after "fuzzer::TPC" has already been destroyed. +# 107| +# 108| static ExitOnError ExitOnErr; +# 109|-> static FileRemover TempPreprocFile; +# 110| static FileRemover TempResFile; +# 111| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/llvm-rc.cpp:110:20: destructor_uses_global_object: The destructor of global object "::TempResFile" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::TempResFile" might be called after "fuzzer::TPC" has already been destroyed. +# 108| static ExitOnError ExitOnErr; +# 109| static FileRemover TempPreprocFile; +# 110|-> static FileRemover TempResFile; +# 111| +# 112| [[noreturn]] static void fatalError(const Twine &Message) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/dxcontainer2yaml.cpp:20:3: var_decl: Declaring variable "YAML". +llvm-project-19.0.0.src/llvm/tools/obj2yaml/dxcontainer2yaml.cpp:26:3: uninit_use: Using uninitialized value "YAML". Field "YAML.Parameters.InlineElts" is uninitialized. +# 24| Param.SystemValue, Param.CompType, Param.Register, Param.Mask, +# 25| Param.ExclusiveMask, Param.MinPrecision}); +# 26|-> return YAML; +# 27| } +# 28| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:583:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:584:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "minnum". +# 582| APFloat zp(0.0); +# 583| APFloat zn(-0.0); +# 584|-> EXPECT_EQ(-0.0, minnum(zp, zn).convertToDouble()); +# 585| EXPECT_EQ(-0.0, minnum(zn, zp).convertToDouble()); +# 586| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:582:3: var_decl: Declaring variable "zp". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:584:3: uninit_use_in_call: Using uninitialized value "zp.U" when calling "minnum". +# 582| APFloat zp(0.0); +# 583| APFloat zn(-0.0); +# 584|-> EXPECT_EQ(-0.0, minnum(zp, zn).convertToDouble()); +# 585| EXPECT_EQ(-0.0, minnum(zn, zp).convertToDouble()); +# 586| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:599:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:600:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "maxnum". +# 598| APFloat zp(0.0); +# 599| APFloat zn(-0.0); +# 600|-> EXPECT_EQ(0.0, maxnum(zp, zn).convertToDouble()); +# 601| EXPECT_EQ(0.0, maxnum(zn, zp).convertToDouble()); +# 602| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:598:3: var_decl: Declaring variable "zp". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:600:3: uninit_use_in_call: Using uninitialized value "zp.U" when calling "maxnum". +# 598| APFloat zp(0.0); +# 599| APFloat zn(-0.0); +# 600|-> EXPECT_EQ(0.0, maxnum(zp, zn).convertToDouble()); +# 601| EXPECT_EQ(0.0, maxnum(zn, zp).convertToDouble()); +# 602| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:136:3: move: "two" is moved (indicated by "std::move(two)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:142:3: use_after_move: "two" is used after it has been already moved. +# 140| +# 141| std::unique_ptr p(new int(3)); +# 142|-> auto try3 = mv.try_emplace(std::move(two), 3, std::move(p)); +# 143| EXPECT_FALSE(try3.second); +# 144| EXPECT_EQ(2, try3.first->second.a.v); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:175:3: move: "two" is moved (indicated by "std::move(two)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:180:3: use_after_move: "two" is used after it has been already moved. +# 178| EXPECT_EQ(1, try2.first->second.move); +# 179| +# 180|-> auto try3 = mv.insert_or_assign(std::move(two), 3); +# 181| EXPECT_FALSE(try3.second); +# 182| EXPECT_EQ(3, try3.first->second.v); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/MLRegAllocDevelopmentFeatures.cpp:50:5: var_decl: Declaring variable "PositionsToReturn". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/MLRegAllocDevelopmentFeatures.cpp:80:5: uninit_use: Using uninitialized value "PositionsToReturn". Field "PositionsToReturn.InlineElts" is uninitialized. +# 78| CurrentIndex += SlotIndex::InstrDist; +# 79| } +# 80|-> return PositionsToReturn; +# 81| } +# 82| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/LogicalView/DWARFReaderTest.cpp:323:3: extract: Calling "get" which extracts wrapped state from local "Reference". +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/LogicalView/DWARFReaderTest.cpp:323:3: escape: The internal representation of local "Reference" escapes, but is destroyed when it exits scope. +# 321| std::unique_ptr Target = +# 322| createReader(ReaderHandler, InputsDir, DwarfGcc); +# 323|-> checkElementComparison(Reference.get(), Target.get()); +# 324| } +# 325| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:540:3: alloc_fn: Storage is returned from allocation function "LLVMOrcLLJITEnableDebugSupport". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:540:3: var_assign: Assigning: "E" = storage returned from "LLVMOrcLLJITEnableDebugSupport(this->Jit)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:544:5: leaked_storage: Variable "E" going out of scope leaks the storage it points to. +# 542| << "Error testing LLJIT debug support " +# 543| << "(triple = " << TargetTriple << "): " << toString(E); +# 544|-> GTEST_SKIP() << "LLJIT C bindings provide debug support only for JITLink"; +# 545| } +# 546| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537:3: alloc_fn: Storage is returned from allocation function "createTestObject". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537:3: var_assign: Assigning: "ObjBuffer" = storage returned from "OrcCAPITestBase::createTestObject(::SumDebugExample, llvm::StringRef("sum.ll"))". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:544:5: leaked_storage: Variable "ObjBuffer" going out of scope leaks the storage it points to. +# 542| << "Error testing LLJIT debug support " +# 543| << "(triple = " << TargetTriple << "): " << toString(E); +# 544|-> GTEST_SKIP() << "LLJIT C bindings provide debug support only for JITLink"; +# 545| } +# 546| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:699:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyEmitted". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:699:3: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyEmitted(MR, &DependenceSet, 1UL)" leaks it. +# 697| /* .NumDependencies = */ 1}; +# 698| +# 699|-> LLVMOrcMaterializationResponsibilityNotifyEmitted(MR, &DependenceSet, 1); +# 700| LLVMOrcDisposeMaterializationResponsibility(MR); +# 701| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:573:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:573:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 571| +# 572| TEST_F(PatternMatchTest, BitCast) { +# 573|-> Value *OneDouble = ConstantFP::get(IRB.getDoubleTy(), APFloat(1.0)); +# 574| Value *ScalableDouble = ConstantFP::get( +# 575| VectorType::get(IRB.getDoubleTy(), 2, /*Scalable=*/true), APFloat(1.0)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:574:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:574:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 572| TEST_F(PatternMatchTest, BitCast) { +# 573| Value *OneDouble = ConstantFP::get(IRB.getDoubleTy(), APFloat(1.0)); +# 574|-> Value *ScalableDouble = ConstantFP::get( +# 575| VectorType::get(IRB.getDoubleTy(), 2, /*Scalable=*/true), APFloat(1.0)); +# 576| // scalar -> scalar + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/unittests/IR/VFABIDemanglerTest.cpp:24:20: destructor_uses_global_object: The destructor of global object "::Ctx" itself makes use of global object "UseConstantFPForFixedLengthSplat" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::Ctx" might be called after "UseConstantFPForFixedLengthSplat" has already been destroyed. +# 22| namespace { +# 23| +# 24|-> static LLVMContext Ctx; +# 25| +# 26| /// Perform tests against VFABI Rules. `invokeParser` creates a VFInfo object + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/unittests/IR/VFABIDemanglerTest.cpp:24:20: destructor_uses_global_object: The destructor of global object "::Ctx" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::Ctx" might be called after "fuzzer::TPC" has already been destroyed. +# 22| namespace { +# 23| +# 24|-> static LLVMContext Ctx; +# 25| +# 26| /// Perform tests against VFABI Rules. `invokeParser` creates a VFInfo object + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ProfileData/CoverageMappingTest.cpp:29:3: var_decl: Declaring variable "Found" without initializer. +llvm-project-19.0.0.src/llvm/unittests/ProfileData/CoverageMappingTest.cpp:37:3: uninit_use: Using uninitialized value "Found". +# 35| FoundMsg = CME.message(); +# 36| }); +# 37|-> if (Expected_Err == Found && Msg == Expected_Msg) +# 38| return ::testing::AssertionSuccess(); +# 39| return ::testing::AssertionFailure() << "error: " << FoundMsg << "\n"; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:411:3: var_decl: Declaring variable "MR". +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:419:3: uninit_use: Using uninitialized value "MR". Field "MR.AllocSites.InlineElts" is uninitialized. +# 417| for (const auto &CSId : CallSiteFrames) +# 418| MR.CallSiteIds.push_back(CSId); +# 419|-> return MR; +# 420| } +# 421| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1458:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: identity_transfer: Passing "FD" as argument 1 to function "convertFDToNativeFile", which returns that argument. +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "FD" is not freed or pointed-to in "convertFDToNativeFile". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "llvm::sys::fs::convertFDToNativeFile(FD)" is not freed or pointed-to in "mapped_file_region". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1462:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1460| fs::mapped_file_region mfr(fs::convertFDToNativeFile(FD), +# 1461| fs::mapped_file_region::readonly, Size, 0, EC); +# 1462|-> ASSERT_NO_ERROR(EC); +# 1463| +# 1464| // Verify content + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1458:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: identity_transfer: Passing "FD" as argument 1 to function "convertFDToNativeFile", which returns that argument. +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "FD" is not freed or pointed-to in "convertFDToNativeFile". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "llvm::sys::fs::convertFDToNativeFile(FD)" is not freed or pointed-to in "mapped_file_region". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1468:5: identity_transfer: Passing "FD" as argument 1 to function "convertFDToNativeFile", which returns that argument. +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1468:5: noescape: Resource "FD" is not freed or pointed-to in "convertFDToNativeFile". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1468:5: noescape: Resource "llvm::sys::fs::convertFDToNativeFile(FD)" is not freed or pointed-to in "mapped_file_region". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1470:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1468| fs::mapped_file_region m(fs::convertFDToNativeFile(FD), +# 1469| fs::mapped_file_region::readonly, Size, 0, EC); +# 1470|-> ASSERT_NO_ERROR(EC); +# 1471| ASSERT_EQ(close(FD), 0); +# 1472| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:463:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:478:3: noescape: Resource "fd" is not freed or pointed-to in "read". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:478:3: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 476| #else +# 477| char buf[10]; +# 478|-> ASSERT_EQ(::read(fd, buf, 10), 10); +# 479| ASSERT_EQ(strncmp(buf, utf8_text, 10), 0); +# 480| #endif + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:463:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:478:3: noescape: Resource "fd" is not freed or pointed-to in "read". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:479:3: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 477| char buf[10]; +# 478| ASSERT_EQ(::read(fd, buf, 10), 10); +# 479|-> ASSERT_EQ(strncmp(buf, utf8_text, 10), 0); +# 480| #endif +# 481| ::close(fd); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:405:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:406:5: noescape: Resource "FD" is not freed or pointed-to in "lseek". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:407:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 405| ASSERT_NO_ERROR(fs::openFileForRead(OutputPath, FD)); +# 406| Size = ::lseek(FD, 0, SEEK_END); +# 407|-> ASSERT_NE(-1, Size); +# 408| ::lseek(FD, 0, SEEK_SET); +# 409| Buffer = std::make_unique(Size); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:405:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:406:5: noescape: Resource "FD" is not freed or pointed-to in "lseek". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:408:5: noescape: Resource "FD" is not freed or pointed-to in "lseek". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:410:5: noescape: Resource "FD" is not freed or pointed-to in "read". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:410:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 408| ::lseek(FD, 0, SEEK_SET); +# 409| Buffer = std::make_unique(Size); +# 410|-> ASSERT_EQ(::read(FD, Buffer.get(), Size), Size); +# 411| ::close(FD); +# 412| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/CodeGenRegisters.cpp:502:7: var_decl: Declaring variable "Parts". +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/CodeGenRegisters.cpp:526:7: uninit_use_in_call: Using uninitialized value "Parts". Field "Parts.InlineElts" is uninitialized when calling "getConcatSubRegIndex". +# 524| // Each part of Cand is a sub-register of this. Make the full Cand also +# 525| // a sub-register with a concatenated sub-register index. +# 526|-> CodeGenSubRegIndex *Concat = +# 527| RegBank.getConcatSubRegIndex(Parts, RegBank.getHwModes()); +# 528| std::pair NewSubReg = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/GlobalISel/MatchDataInfo.cpp:19:37: destructor_uses_global_object: The destructor of global object "llvm::gi::AllMatchDataVars[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::gi::AllMatchDataVars[abi:cxx11]" might be called after "fuzzer::TPC" has already been destroyed. +# 17| namespace gi { +# 18| +# 19|-> StringMap> AllMatchDataVars; +# 20| +# 21| StringRef MatchDataInfo::getVariableName() const { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:512:5: var_decl: Declaring variable "SymbolType" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:532:5: uninit_use: Using uninitialized value "SymbolType". +# 530| +# 531| // Make sure it is a kernel symbol. +# 532|-> if (SymbolType != HSA_SYMBOL_KIND_KERNEL) +# 533| return Plugin::error("Symbol %s is not a kernel function"); +# 534| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:2792:5: var_decl: Declaring variable "AMDGPUKernel". +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:2799:5: uninit_use_in_call: Using uninitialized value "AMDGPUKernel.ArgsSize" when calling "launchImpl". +# 2797| +# 2798| KernelArgsTy KernelArgs = {}; +# 2799|-> if (auto Err = AMDGPUKernel.launchImpl(*this, /*NumThread=*/1u, +# 2800| /*NumBlocks=*/1ul, KernelArgs, +# 2801| /*Args=*/nullptr, AsyncInfoWrapper)) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3014:5: var_decl: Declaring variable "SymbolSize" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3030:5: uninit_use: Using uninitialized value "SymbolSize". +# 3028| +# 3029| // Check the size of the symbol. +# 3030|-> if (SymbolSize != DeviceGlobal.getSize()) +# 3031| return Plugin::error( +# 3032| "Failed to load global '%s' due to size mismatch (%zu != %zu)", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3013:5: var_decl: Declaring variable "SymbolAddr" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3037:5: uninit_use_in_call: Using uninitialized value "reinterpret_cast(SymbolAddr)" when calling "setPtr". +# 3035| +# 3036| // Store the symbol address on the device global metadata. +# 3037|-> DeviceGlobal.setPtr(reinterpret_cast(SymbolAddr)); +# 3038| +# 3039| return Plugin::success(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h:241:5: var_decl: Declaring variable "KernelData" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h:248:5: uninit_use_in_call: Using uninitialized value "KernelData". Field "KernelData.KernelObject" is uninitialized when calling "pair". +# 246| return Err; +# 247| +# 248|-> KernelInfoMap.insert({KernelName, KernelData}); +# 249| return Error::success(); +# 250| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:139:3: identity_transfer: Passing "4294967295U" as argument 2 to constructor for class "GlobalTy", which sets "ImageGlobal.Size" to that argument. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: identity_transfer: Member function call "ImageGlobal.getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: cond_const: Checking "ImageGlobal.getSize() != HostGlobal->getSize()" implies that "HostGlobal->getSize()" and "HostGlobal.Size" are 4294967295 on the false branch. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: identity_transfer: Member function call "HostGlobal->getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: overrun-buffer-arg: Calling "memcpy" with "HostGlobal->getPtr()" and "HostGlobal->getSize()" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 158| +# 159| // Perform the copy from the image to the host memory. +# 160|-> std::memcpy(HostGlobal.getPtr(), ImageGlobal.getPtr(), HostGlobal.getSize()); +# 161| +# 162| return Plugin::success(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:139:3: identity_transfer: Passing "4294967295U" as argument 2 to constructor for class "GlobalTy", which sets "ImageGlobal.Size" to that argument. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: identity_transfer: Member function call "ImageGlobal.getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: cond_const: Checking "ImageGlobal.getSize() != HostGlobal->getSize()" implies that "HostGlobal->getSize()" and "HostGlobal.Size" are 4294967295 on the false branch. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: identity_transfer: Member function call "HostGlobal->getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: overrun-buffer-arg: Calling "memcpy" with "ImageGlobal.getPtr()" and "HostGlobal->getSize()" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 158| +# 159| // Perform the copy from the image to the host memory. +# 160|-> std::memcpy(HostGlobal.getPtr(), ImageGlobal.getPtr(), HostGlobal.getSize()); +# 161| +# 162| return Plugin::success(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:185:5: alloc_fn: Storage is returned from allocation function "fdopen". +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:185:5: var_assign: Assigning: "TmpFile" = storage returned from "fdopen(TmpFileFd, "wb")". +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:191:5: noescape: Resource "TmpFile" is not freed or pointed-to in "fwrite". +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:193:7: leaked_storage: Variable "TmpFile" going out of scope leaks the storage it points to. +# 191| size_t Written = fwrite(Image->getStart(), Image->getSize(), 1, TmpFile); +# 192| if (Written != 1) +# 193|-> return Plugin::error("Failed to write target image to tmpfile %s", +# 194| TmpFileName); +# 195| + +Error: BAD_FREE (CWE-763): +llvm-project-19.0.0.src/offload/src/OpenMP/Mapping.cpp:104:3: address: Taking address of "*It->HDTT". +llvm-project-19.0.0.src/offload/src/OpenMP/Mapping.cpp:104:3: assign: Assigning: "HDTT" = "*It->HDTT". +llvm-project-19.0.0.src/offload/src/OpenMP/Mapping.cpp:119:5: incorrect_free: "operator delete" frees incorrect pointer "HDTT". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 117| DP("Association found, removing it\n"); +# 118| void *Event = HDTT.getEvent(); +# 119|-> delete &HDTT; +# 120| if (Event) +# 121| Device.destroyEvent(Event); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: var_assign: Assigning: "PostProcessingPtrs" = storage returned from "new llvm::SmallVector<::PostProcessingInfo, 1u>". +llvm-project-19.0.0.src/offload/src/omptarget.cpp:867:9: leaked_storage: Variable "PostProcessingPtrs" going out of scope leaks the storage it points to. +# 865| REPORT("Call to targetDataEnd via targetDataMapper for custom mapper" +# 866| " failed.\n"); +# 867|-> return OFFLOAD_FAIL; +# 868| } +# 869| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: var_assign: Assigning: "PostProcessingPtrs" = storage returned from "new llvm::SmallVector<::PostProcessingInfo, 1u>". +llvm-project-19.0.0.src/offload/src/omptarget.cpp:912:9: leaked_storage: Variable "PostProcessingPtrs" going out of scope leaks the storage it points to. +# 910| "not exist for host address " DPxMOD " (%" PRId64 " bytes)", +# 911| DPxPTR(HstPtrBegin), DataSize); +# 912|-> return OFFLOAD_FAIL; +# 913| } +# 914| } else { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:112:3: address_of: Taking address with "&KernelEntry" yields a singleton pointer. +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:112:3: ptr_arith: Using "&KernelEntry" as an array. This might corrupt or misinterpret adjacent memory locations. +# 110| DeviceImage.ImageEnd = const_cast(ImageMB.get()->getBufferEnd()); +# 111| DeviceImage.EntriesBegin = &KernelEntry; +# 112|-> DeviceImage.EntriesEnd = &KernelEntry + 1; +# 113| +# 114| __tgt_bin_desc Desc; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:117:3: address_of: Taking address with "&KernelEntry" yields a singleton pointer. +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:117:3: ptr_arith: Using "&KernelEntry" as an array. This might corrupt or misinterpret adjacent memory locations. +# 115| Desc.NumDeviceImages = 1; +# 116| Desc.HostEntriesBegin = &KernelEntry; +# 117|-> Desc.HostEntriesEnd = &KernelEntry + 1; +# 118| Desc.DeviceImages = &DeviceImage; +# 119| + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: equal: The address of "*((int8_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: overlapping_assignment: Assigning "*((int8_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: target_type: "buf" has type "int". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: source_type: "*((int8_t *)buf)" has type "signed char". +# 236| switch (baseTypeSize) { +# 237| case 1: +# 238|-> buf = (T) * ((int8_t *)&buf); +# 239| break; +# 240| case 2: + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: equal: The address of "*((int16_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: overlapping_assignment: Assigning "*((int16_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: target_type: "buf" has type "signed char". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: source_type: "*((int16_t *)buf)" has type "short". +# 239| break; +# 240| case 2: +# 241|-> buf = (T) * ((int16_t *)&buf); +# 242| break; +# 243| case 4: + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: equal: The address of "*((int32_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: overlapping_assignment: Assigning "*((int32_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: target_type: "buf" has type "signed char". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: source_type: "*((int32_t *)buf)" has type "int". +# 242| break; +# 243| case 4: +# 244|-> buf = (T) * ((int32_t *)&buf); +# 245| break; +# 246| case 8: + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: equal: The address of "*((int64_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: overlapping_assignment: Assigning "*((int64_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: target_type: "buf" has type "signed char". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: source_type: "*((int64_t *)buf)" has type "long". +# 245| break; +# 246| case 8: +# 247|-> buf = (T) * ((int64_t *)&buf); +# 248| break; +# 249| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_affinity.cpp:4718:3: var_decl: Declaring variable "numUnique" without initializer. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_affinity.cpp:4750:5: uninit_use: Using uninitialized value "numUnique". +# 4748| } +# 4749| if (affinity.gran_levels == 0) { +# 4750|-> KMP_DEBUG_ASSERT((int)numUnique == __kmp_avail_proc); +# 4751| } +# 4752| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:442:5: assignment: Assigning: "size" = "16L". +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:445:3: assignment: Assigning: "size" = "size + 7L & 0xfffffffffffffff8L". The value of "size" is now 16. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:448:3: assignment: Assigning: "size" += "32UL". The value of "size" is now 48. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:461:5: cond_at_most: Checking "bin < 20" implies that "bin" may be up to 19 on the true branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:467:9: alias: Assigning: "best" = "&thr->freelist[bin]". "best" may now point to as high as element 19 of "thr->freelist" (which consists of 20 48-byte elements). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:482:9: alias: Assigning: "b" = "best". "b" may now point to as high as element 19 of "thr->freelist" (which consists of 20 48-byte elements). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:495:11: cond_between: Checking "b->bh.bb.bsize - (bufsize)size > 48L" implies that "b->bh.bb.bsize" is between 48 and 96 (inclusive) on the false branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:532:13: alias: Assigning: "ba" = "(char *)b + b->bh.bb.bsize". "ba" may now point to as high as byte 1008 of "thr->freelist" (which consists of 960 bytes). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:534:13: overrun-local: Overrunning array of 960 bytes at byte offset 1008 by dereferencing pointer "ba". +# 532| ba = BH(((char *)b) + b->bh.bb.bsize); +# 533| +# 534|-> KMP_DEBUG_ASSERT(ba->bb.prevfree == b->bh.bb.bsize); +# 535| +# 536| /* The buffer isn't big enough to split. Give the whole + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_barrier.cpp:1665:11: overrun-buffer-arg: Overrunning struct type kmp_internal_control_t of 56 bytes by passing it to a function which accesses it at byte offset 63 using argument "64UL". +# 1663| // Use ngo store (if available) to both store ICVs and release child +# 1664| // via child's b_go +# 1665|-> ngo_store_go(&child_bar->th_fixed_icvs, &thr_bar->th_fixed_icvs); +# 1666| } +# 1667| ngo_sync(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:1545:3: assignment: Assigning: "lockseq" = "__kmp_map_hint_to_lock(hint)". The value of "lockseq" is now between 0 and 14 (inclusive). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:1547:5: cond_const: Checking "lockseq >= lockseq_tas" implies that "lockseq" is 0 on the false branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:1552:7: overrun-call: Overrunning callee's array of size 10 by passing argument "(kmp_indirect_locktag_t)(lockseq - lockseq_ticket)" (which evaluates to 4294967291) in call to "__kmp_init_indirect_csptr". +# 1550| KMP_GET_D_TAG(lockseq)); +# 1551| } else { +# 1552|-> __kmp_init_indirect_csptr(crit, loc, global_tid, KMP_GET_I_TAG(lockseq)); +# 1553| } +# 1554| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:3444:5: cond_const: Checking "__kmp_user_lock_seq >= lockseq_tas" implies that "__kmp_user_lock_seq" is 0 on the false branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:3448:7: overrun-call: Overrunning callee's array of size 10 by passing argument "(kmp_indirect_locktag_t)(__kmp_user_lock_seq - lockseq_ticket)" (which evaluates to 4294967291) in call to "__kmp_init_indirect_csptr". +# 3446| KMP_GET_D_TAG(__kmp_user_lock_seq)); +# 3447| } else { +# 3448|-> __kmp_init_indirect_csptr(crit, loc, global_tid, +# 3449| KMP_GET_I_TAG(__kmp_user_lock_seq)); +# 3450| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: alloc_fn: Storage is returned from allocation function "dlopen". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: var_assign: Assigning: "h" = storage returned from "dlopen(fname, 1)". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:368:7: noescape: Resource "h" is not freed or pointed-to in "dlsym". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:377:11: leaked_storage: Variable "h" going out of scope leaks the storage it points to. +# 375| OMPT_VERBOSE_INIT_PRINT( +# 376| "----- END LOGGING OF TOOL REGISTRATION -----\n"); +# 377|-> return ret; +# 378| } +# 379| OMPT_VERBOSE_INIT_CONTINUED_PRINT( + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: alloc_fn: Storage is returned from allocation function "dlopen". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: var_assign: Assigning: "h" = storage returned from "dlopen(fname, 1)". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:368:7: noescape: Resource "h" is not freed or pointed-to in "dlsym". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:385:3: leaked_storage: Variable "h" going out of scope leaks the storage it points to. +# 383| } +# 384| } +# 385|-> } +# 386| #endif +# 387| OMPT_VERBOSE_INIT_PRINT("No OMP tool loaded.\n"); + +Error: LOCK_EVASION (CWE-543): +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: thread1_checks_field: Thread1 uses the value read from field "api_initialized" in the condition "__kmp_itt__ittapi_global.api_initialized". It sees that the condition is true. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1283:5: thread1_acquires_lock: Thread1 acquires lock "___itt_global.mutex". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1284:9: thread1_double_checks_field: Thread1 double checks the field "api_initialized" in the condition "__kmp_itt__ittapi_global.api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1303:9: thread1_modifies_field: Thread1 modifies the field "api_initialized". "api_initialized" is of type "long", a scalar type whose values cannot be accessed atomically. This modification will be split into multiple writes which can complete at different times and can be re-ordered independently. Also, these modifications can be re-ordered with other correlated field assignments within this critical section at runtime. Thus, checking the value of "api_initialized" is not an adequate test that the critical section has completed unless t [...] +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: thread2_checks_field_early: Thread2 checks "api_initialized", reading it after Thread1 assigns to "api_initialized" but before some of the correlated field assignments can occur. It sees the condition "__kmp_itt__ittapi_global.api_initialized" as being false. It continues on before the critical section has completed, and can read data changed by that critical section while it is in an inconsistent state. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: remove_unlocked_check: Remove this outer, unlocked check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1283:5: correlated_field: The modification of "mutex_initialized" can race with the unguarded check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1304:9: code_after_assignment: Any code run after the execution of "__kmp_itt__ittapi_global.api_initialized = 0L;" may not necessarily run when a second thread reaches "if (__kmp_itt__ittapi_global.api_initialized)". +# 1280| static volatile TIDT current_thread = 0; +# 1281| +# 1282|-> if (_N_(_ittapi_global).api_initialized) { +# 1283| ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); +# 1284| if (_N_(_ittapi_global).api_initialized) { +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: note: trimmed 1 message(s) with length over 512 + +Error: LOCK_EVASION (CWE-543): +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: thread1_checks_field: Thread1 uses the value read from field "api_initialized" in the condition "!__kmp_itt__ittapi_global.api_initialized". It sees that the condition is true. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1376:5: thread1_acquires_lock: Thread1 acquires lock "___itt_global.mutex". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1379:9: thread1_double_checks_field: Thread1 double checks the field "api_initialized" in the condition "!__kmp_itt__ittapi_global.api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1478:9: thread1_modifies_field: Thread1 modifies the field "api_initialized". "api_initialized" is of type "long", a scalar type whose values cannot be accessed atomically. This modification will be split into multiple writes which can complete at different times and can be re-ordered independently. Also, these modifications can be re-ordered with other correlated field assignments within this critical section at runtime. Thus, checking the value of "api_initialized" is not an adequate test that the critical section has completed unless t [...] +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: thread2_checks_field_early: Thread2 checks "api_initialized", reading it after Thread1 assigns to "api_initialized" but before some of the correlated field assignments can occur. It sees the condition "!__kmp_itt__ittapi_global.api_initialized" as being false. It continues on before the critical section has completed, and can read data changed by that critical section while it is in an inconsistent state. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: remove_unlocked_check: Remove this outer, unlocked check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1376:5: correlated_field: The modification of "mutex_initialized" can race with the unguarded check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1388:11: correlated_field: The modification of "lib" can race with the unguarded check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1431:17: correlated_field: The modification of "__kmp_itt_thread_ignore_ptr__3_0" can race with the unguarded check of "api_initialized". +# 1372| static volatile TIDT current_thread = 0; +# 1373| +# 1374|-> if (!_N_(_ittapi_global).api_initialized) { +# 1375| #ifndef ITT_SIMPLE_INIT +# 1376| ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: note: trimmed 1 message(s) with length over 512 + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/clang/lib/Basic/Targets/ARM.cpp:1191:7: identical_branches: The same code is executed regardless of whether "!this->supportsThumb2()" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 1189| case 'K': +# 1190| if (isThumb()) { +# 1191|-> if (!supportsThumb2()) +# 1192| // FIXME: should check if immediate value can be obtained from shifting +# 1193| // a value between 0 and 255 left by any amount + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/clang/lib/Basic/Targets/ARM.cpp:1218:5: identical_branches: The same code is executed regardless of whether "this->isThumb() && !this->supportsThumb2()" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 1216| return true; +# 1217| case 'M': +# 1218|-> if (isThumb() && !supportsThumb2()) +# 1219| // FIXME: should check if immediate value is a multiple of 4 between 0 and +# 1220| // 1020 + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/CodeGen/ItaniumCXXABI.cpp:4071:18: original: "VMI_NonDiamondRepeat" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/CodeGen/ItaniumCXXABI.cpp:4061:18: copy_paste_error: "VMI_NonDiamondRepeat" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/CodeGen/ItaniumCXXABI.cpp:4061:18: remediation: Should it say "VMI_DiamondShaped" instead? +# 4059| } else { +# 4060| if (Bases.NonVirtualBases.count(BaseDecl)) +# 4061|-> Flags |= ItaniumRTTIBuilder::VMI_NonDiamondRepeat; +# 4062| } +# 4063| } else { + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-project-19.0.0.src/clang/lib/Parse/ParseTentative.cpp:1970:7: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-project-19.0.0.src/clang/lib/Parse/ParseTentative.cpp:1977:12: do_while_false_condition: This loop will never continue since the condition "false" is never true. +# 1968| if (Tok.is(tok::comma)) { +# 1969| ConsumeToken(); +# 1970|-> continue; +# 1971| } +# 1972| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:7144:32: original: "MD->isDeleted()" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:7158:32: copy_paste_error: "isDeleted" in "MD->isDeleted()" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:7158:32: remediation: Should it say "isConsteval" instead? +# 7156| return MD->isConsteval() != V->isConsteval(); +# 7157| })) { +# 7158|-> if (MD->isDefaulted() && MD->isDeleted()) +# 7159| // Explain why this defaulted function was deleted. +# 7160| DiagnoseDeletedDefaultedFunction(MD); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:7704:14: original: "CK_IntegralCast" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:7670:14: copy_paste_error: "CK_IntegralCast" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:7670:14: remediation: Should it say "CK_FloatingCast" instead? +# 7668| diag::err_unimplemented_conversion_with_fixed_point_type) +# 7669| << SrcTy; +# 7670|-> return CK_IntegralCast; +# 7671| } +# 7672| llvm_unreachable("Should have returned before this"); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/Sema/SemaObjCProperty.cpp:674:20: original: "kind_unsafe_unretained" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/Sema/SemaObjCProperty.cpp:687:20: copy_paste_error: "kind_unsafe_unretained" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/Sema/SemaObjCProperty.cpp:687:20: remediation: Should it say "kind_assign" instead? +# 685| +# 686| // 'unsafe_unretained' is alias for 'assign'. +# 687|-> if (Attributes & ObjCPropertyAttribute::kind_unsafe_unretained) +# 688| PDecl->setPropertyAttributes(ObjCPropertyAttribute::kind_assign); +# 689| if (isAssign) + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/tools/libclang/CIndexHigh.cpp:446:51: original: "clang::cxcursor::getCursorTU(cursor)" looks like the original copy. +llvm-project-19.0.0.src/clang/tools/libclang/CIndexHigh.cpp:471:46: copy_paste_error: "cursor" in "clang::cxcursor::getCursorTU(cursor)" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/tools/libclang/CIndexHigh.cpp:471:46: remediation: Should it say "refCursor" instead? +# 469| } +# 470| +# 471|-> if (findIdRefsInFile(cxcursor::getCursorTU(cursor), +# 472| refCursor, +# 473| *cxfile::getFileEntryRef(file), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/clang/tools/scan-build-py/lib/libear/__init__.py:140:17: identical_branches: Ternary expression on condition "release" has identical then and else expressions: "{}". Should one of the expressions be modified, or the entire ternary expression replaced? +# 138| +# 139| def shared_library_ld_flags(self, release, name): +# 140|-> extra = [] if release else [] +# 141| return extra + ["-shared", "-Wl,-soname," + name] +# 142| + +Error: IDENTIFIER_TYPO (CWE-688): +llvm-project-19.0.0.src/clang/utils/ClangDataFormat.py:124:9: identifier_typo: Using "getTypename" appears to be a typo: +* Identifier "getTypename" is only known to be referenced here, or in copies of this code. +* Identifier "getTypeName" is referenced elsewhere at least 17 times. +llvm-project-19.0.0.src/clang/utils/ClangDataFormat.py:124:9: remediation: Should identifier "getTypename" be replaced by "getTypeName"? +llvm-project-19.0.0.src/clang/utils/ABITest/ABITestGen.py:220:20: identifier_use: Example 2: Using identifier "getTypeName". +llvm-project-19.0.0.src/clang/utils/ABITest/TypeGen.py:160:23: identifier_use: Example 3: Using identifier "getTypeName". +llvm-project-19.0.0.src/clang/utils/ABITest/TypeGen.py:53:9: identifier_use: Example 5: Using identifier "getTypeName". +# 122| def getTypename(value): +# 123| # FIXME: lldb should provide something like getBaseType +# 124|-> ty = value.GetType() +# 125| if ty.IsPointerType() or ty.IsReferenceType(): +# 126| return ty.GetPointeeType().GetName() + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/utils/update_options_td_flags.py:35:68: original: "m.end" looks like the original copy. +llvm-project-19.0.0.src/clang/utils/update_options_td_flags.py:41:69: copy_paste_error: "end" in "m.end" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/utils/update_options_td_flags.py:41:69: remediation: Should it say "start" instead? +# 39| m = re.search(r'let Flags = \[([A-Za-z0-9, ]*)\]', line) +# 40| if m: +# 41|-> return process_letflags(m.group(1), line[:m.start(1)], line[m.end():]) +# 42| +# 43| return [line] + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/compiler-rt/lib/builtins/udivmoddi4.c:44:26: original: "d.s.low" looks like the original copy. +llvm-project-19.0.0.src/compiler-rt/lib/builtins/udivmoddi4.c:61:27: copy_paste_error: "low" in "d.s.low" looks like a copy-paste error. +llvm-project-19.0.0.src/compiler-rt/lib/builtins/udivmoddi4.c:61:27: remediation: Should it say "high" instead? +# 59| // 0 0 +# 60| if (rem) +# 61|-> *rem = n.s.high % d.s.low; +# 62| return n.s.high / d.s.low; +# 63| } + +Error: IDENTIFIER_TYPO (CWE-688): +llvm-project-19.0.0.src/cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/control.py:331:22: identifier_typo: Using "WaitforEvent" appears to be a typo: +* Identifier "WaitforEvent" is only known to be referenced here, or in copies of this code. +* Identifier "WaitForEvent" is referenced elsewhere at least 10 times. +llvm-project-19.0.0.src/cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/control.py:331:22: remediation: Should identifier "WaitforEvent" be replaced by "WaitForEvent"? +llvm-project-19.0.0.src/cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/setup.py:93:11: identifier_use: Example 2: Using identifier "WaitForEvent" (2 total uses in this function). +llvm-project-19.0.0.src/lldb/examples/python/performance.py:201:20: identifier_use: Example 3: Using identifier "WaitForEvent". +llvm-project-19.0.0.src/lldb/examples/python/process_events.py:347:24: identifier_use: Example 4: Using identifier "WaitForEvent". +llvm-project-19.0.0.src/lldb/utils/lui/debuggerdriver.py:117:25: identifier_use: Example 5: Using identifier "WaitForEvent". +# 329| # No flags are taken by WaitForEvent, hence 0 +# 330| ret = self.vt.WaitForEvent(self.control, 0, timeout) +# 331|-> aborter(ret, "WaitforEvent", ignore=[S_FALSE]) +# 332| return ret +# 333| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/lld/wasm/Writer.cpp:455:9: original: "memoryPtr > lld::wasm::config->initialMemory" looks like the original copy. +llvm-project-19.0.0.src/lld/wasm/Writer.cpp:480:9: copy_paste_error: "memoryPtr" in "memoryPtr > lld::wasm::config->maxMemory" looks like a copy-paste error. +llvm-project-19.0.0.src/lld/wasm/Writer.cpp:480:9: remediation: Should it say "maxMemory" instead? +# 478| if (config->maxMemory != alignTo(config->maxMemory, WasmPageSize)) +# 479| error("maximum memory must be " + Twine(WasmPageSize) + "-byte aligned"); +# 480|-> if (memoryPtr > config->maxMemory) +# 481| error("maximum memory too small, " + Twine(memoryPtr) + " bytes needed"); +# 482| if (config->maxMemory > maxMemorySetting) + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/lldb/examples/summaries/cocoa/NSIndexSet.py:48:21: original: "lldb.eBasicTypeUnsignedInt" looks like the original copy. +llvm-project-19.0.0.src/lldb/examples/summaries/cocoa/NSIndexSet.py:41:21: copy_paste_error: "eBasicTypeUnsignedInt" in "lldb.eBasicTypeUnsignedInt" looks like a copy-paste error. +llvm-project-19.0.0.src/lldb/examples/summaries/cocoa/NSIndexSet.py:41:21: remediation: Should it say "eBasicTypeUnsignedLong" instead? +# 39| ) +# 40| self.sys_params.types_cache.uint32 = self.valobj.GetType().GetBasicType( +# 41|-> lldb.eBasicTypeUnsignedInt +# 42| ) +# 43| else: + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SmallVector.h:643:7: identical_branches: The same code is executed regardless of whether "true" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 641| this->reserve(N); +# 642| for (auto I = this->end(), E = this->begin() + N; I != E; ++I) +# 643|-> if (ForOverwrite) +# 644| new (&*I) T; +# 645| else + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:10139:7: original: "VecVT" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:10109:9: copy_paste_error: "VecVT" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:10109:9: remediation: Should it say "ContainerVT" instead? +#10107| if (SubVecVT.isFixedLengthVector() && !VLen) { +#10108| MVT ContainerVT = VecVT; +#10109|-> if (VecVT.isFixedLengthVector()) { +#10110| ContainerVT = getContainerForFixedLengthVector(VecVT); +#10111| Vec = convertToScalableVector(ContainerVT, Vec, DAG, Subtarget); + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/libear/__init__.py:140:17: identical_branches: Ternary expression on condition "release" has identical then and else expressions: "{}". Should one of the expressions be modified, or the entire ternary expression replaced? +# 138| +# 139| def shared_library_ld_flags(self, release, name): +# 140|-> extra = [] if release else [] +# 141| return extra + ["-shared", "-Wl,-soname," + name] +# 142| diff --git a/tests/csdiff/diff-misc/25-llvm-17-path-filter-add.err b/tests/csdiff/diff-misc/25-llvm-17-path-filter-add.err new file mode 100644 index 00000000..1b90c98a --- /dev/null +++ b/tests/csdiff/diff-misc/25-llvm-17-path-filter-add.err @@ -0,0 +1,17178 @@ +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:30:29: constructor_uses_global_object: The constructor of global object "Directory[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Directory[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace clang::replace; +# 29| +# 30|-> static cl::opt Directory(cl::Positional, cl::Required, +# 31| cl::desc("")); +# 32| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "Allocator" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "GlobalParser" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "fuzzer::TPC" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "Allocator" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "GlobalParser" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "fuzzer::TPC" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "Allocator" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "fuzzer::TPC" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "scudo::RegionPageMap::Buffers" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "Allocator" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "fuzzer::TPC" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "scudo::RegionPageMap::Buffers" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "Allocator" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "fuzzer::TPC" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "scudo::RegionPageMap::Buffers" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "Allocator" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "Allocator" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "Allocator" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "GlobalParser" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "fuzzer::TPC" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "Allocator" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "Allocator" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "Allocator" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "Allocator" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "fuzzer::TPC" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "scudo::RegionPageMap::Buffers" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "Allocator" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "fuzzer::TPC" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "scudo::RegionPageMap::Buffers" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "Allocator" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "Allocator" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/HTMLGenerator.cpp:569:3: var_decl: Declaring variable "Idx". +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/HTMLGenerator.cpp:573:3: uninit_use: Using uninitialized value "Idx". Field "Idx.Path.InlineElts" is uninitialized. +# 571| Idx.Children.emplace_back(C.extractName(), +# 572| llvm::toHex(llvm::toStringRef(C.USR))); +# 573|-> return Idx; +# 574| } +# 575| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/Serialize.cpp:50:3: var_decl: Declaring variable "Path". +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/Serialize.cpp:53:3: uninit_use: Using uninitialized value "Path". Field "Path.InlineElts" is uninitialized. +# 51| for (auto R = Namespaces.rbegin(), E = Namespaces.rend(); R != E; ++R) +# 52| llvm::sys::path::append(Path, R->Name); +# 53|-> return Path; +# 54| } +# 55| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/YAMLGenerator.cpp:100:5: var_decl: Declaring variable "USR" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/YAMLGenerator.cpp:103:5: uninit_use: Using uninitialized value "USR". +# 101| std::string HexString = fromHex(Value); +# 102| std::copy(HexString.begin(), HexString.end(), USR.begin()); +# 103|-> return SymbolID(USR); +# 104| } +# 105| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:53:28: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 51| using namespace clang; +# 52| +# 53|-> static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54| static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "Allocator" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "GlobalParser" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "fuzzer::TPC" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "Allocator" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "Allocator" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "fuzzer::TPC" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "scudo::RegionPageMap::Buffers" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "Allocator" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "Allocator" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "fuzzer::TPC" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "scudo::RegionPageMap::Buffers" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "Allocator" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "fuzzer::TPC" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "scudo::RegionPageMap::Buffers" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "Allocator" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "Allocator" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "Allocator" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "Allocator" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "fuzzer::TPC" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "scudo::RegionPageMap::Buffers" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp:286:5: var_decl: Declaring variable "Correction". +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp:296:7: uninit_use: Using uninitialized value "Correction". Field "Correction.CorrectionDecls.InlineElts" is uninitialized. +# 294| MatchedSymbols), +# 295| Code, StartOfFile, CI->getASTContext())) +# 296|-> return Correction; +# 297| } +# 298| return TypoCorrection(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixerContext.cpp:20:3: var_decl: Declaring variable "Qualifiers". +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixerContext.cpp:22:3: uninit_use: Using uninitialized value "Qualifiers". Field "Qualifiers.InlineElts" is uninitialized. +# 20| llvm::SmallVector Qualifiers; +# 21| StringQualifiers.split(Qualifiers, "::"); +# 22|-> return Qualifiers; +# 23| } +# 24| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "Allocator" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "GlobalParser" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "fuzzer::TPC" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:47:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 45| // command-line options related to the compilation database and input files. +# 46| // It's nice to have this help message in all tools. +# 47|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 48| +# 49| // A help message for this specific tool can be added afterwards. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "MoreHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "MoreHelp" might be created before "GlobalParser" is available. +# 48| +# 49| // A help message for this specific tool can be added afterwards. +# 50|-> static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52| static cl::opt OutputDir("output-dir", cl::desc(R"( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "Allocator" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "Allocator" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "Allocator" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "GlobalParser" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "fuzzer::TPC" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "Allocator" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "fuzzer::TPC" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "scudo::RegionPageMap::Buffers" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "Allocator" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "Allocator" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "Allocator" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "fuzzer::TPC" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "scudo::RegionPageMap::Buffers" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "Allocator" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "fuzzer::TPC" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "scudo::RegionPageMap::Buffers" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "Allocator" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "fuzzer::TPC" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "scudo::RegionPageMap::Buffers" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "Allocator" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "fuzzer::TPC" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "scudo::RegionPageMap::Buffers" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "Allocator" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "Allocator" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "Allocator" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "GlobalParser" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "fuzzer::TPC" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "Allocator" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "Allocator" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "Allocator" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "Allocator" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "Allocator" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "Allocator" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "fuzzer::TPC" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "scudo::RegionPageMap::Buffers" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "Allocator" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "fuzzer::TPC" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "scudo::RegionPageMap::Buffers" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "Allocator" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "Allocator" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "fuzzer::TPC" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "Allocator" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "fuzzer::TPC" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:50:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 48| using namespace llvm; +# 49| +# 50|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51| static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "Allocator" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "GlobalParser" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "fuzzer::TPC" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "Allocator" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "fuzzer::TPC" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "scudo::RegionPageMap::Buffers" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "Allocator" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "Allocator" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "Allocator" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp:102:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp:116:3: uninit_use: Using uninitialized value "Results". Field "Results.vector_.InlineElts" is uninitialized. +# 114| if (auto *FD = dyn_cast(MemExpr->getMemberDecl())) +# 115| Results.insert(FD); +# 116|-> return Results; +# 117| } +# 118| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "Allocator" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "GlobalParser" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "fuzzer::TPC" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "Allocator" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "Allocator" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "Allocator" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "fuzzer::TPC" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "scudo::RegionPageMap::Buffers" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:114:3: var_decl: Declaring variable "NoLints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:148:3: uninit_use: Using uninitialized value "NoLints". Field "NoLints.InlineElts" is uninitialized. +# 146| } +# 147| +# 148|-> return NoLints; +# 149| } +# 150| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:188:3: var_decl: Declaring variable "CompletedBlocks". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:211:3: uninit_use: Using uninitialized value "CompletedBlocks". Field "CompletedBlocks.InlineElts" is uninitialized. +# 209| +# 210| llvm::move(Stack, std::back_inserter(UnmatchedTokens)); +# 211|-> return CompletedBlocks; +# 212| } +# 213| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:366:3: var_decl: Declaring variable "Error". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:377:3: uninit_use: Using uninitialized value "Error". Field "Error.Notes.InlineElts" is uninitialized. +# 375| SourceLocation Loc = SrcMgr.getComposedLoc(File, NoLint.Pos); +# 376| Error.Message = tooling::DiagnosticMessage(Message, SrcMgr, Loc); +# 377|-> return Error; +# 378| } +# 379| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp:236:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp:242:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 240| RHS->EvaluateAsRValue(Result, *Context); +# 241| else +# 242|-> return false; // Cannot evaluate either side. +# 243| if (!Result.Val.isInt()) +# 244| return false; // Cannot check number of iterations, return false to be + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1419:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1495:3: uninit_use: Using uninitialized value "Ret". Field "Ret.Mixes.InlineElts" is uninitialized. +# 1493| } +# 1494| +# 1495|-> return Ret; +# 1496| } +# 1497| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1917:3: var_decl: Declaring variable "Name". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1920:3: uninit_use: Using uninitialized value "Name". Field "Name.InlineElts" is uninitialized. +# 1918| llvm::raw_svector_ostream OS{Name}; +# 1919| ND->getNameForDiagnostic(OS, ND->getASTContext().getPrintingPolicy(), false); +# 1920|-> return Name; +# 1921| } +# 1922| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp:21:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Semantics, 1UL)". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp:21:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 19| +# 20| static llvm::APFloat getHalf(const llvm::fltSemantics &Semantics) { +# 21|-> return llvm::APFloat(Semantics, 1U) / llvm::APFloat(Semantics, 2U); +# 22| } +# 23| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp:67:3: var_decl: Declaring variable "Length". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp:90:3: uninit_use_in_call: Using uninitialized value "Length.Val.Data" when calling "~EvalResult". +# 88| return SrcSL->getLength(); +# 89| +# 90|-> return 0; +# 91| } +# 92| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp:39:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp:56:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 54| } +# 55| +# 56|-> return Result; +# 57| } +# 58| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp:44:3: var_decl: Declaring variable "AllowedIdentifiers". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp:55:3: uninit_use: Using uninitialized value "AllowedIdentifiers". Field "AllowedIdentifiers.InlineElts" is uninitialized. +# 53| } +# 54| +# 55|-> return AllowedIdentifiers; +# 56| } +# 57| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:145:5: var_decl: Declaring variable "EVResult". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:156:3: uninit_use_in_call: Using uninitialized value "EVResult.Val.Data" when calling "~EvalResult". +# 154| diag(Comparison->getBeginLoc(), +# 155| "comparison between 'signed char' and 'unsigned char'"); +# 156|-> } else if (Result.Nodes.getNodeAs("arraySubscript")) { +# 157| diag(SignedCastExpression->getBeginLoc(), +# 158| "'signed char' to %0 conversion in array subscript; " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:131:3: var_decl: Declaring variable "EVResult". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:167:1: uninit_use_in_call: Using uninitialized value "EVResult.Val.Data" when calling "~EvalResult". +# 165| << *IntegerType; +# 166| } +# 167|-> } +# 168| +# 169| } // namespace clang::tidy::bugprone + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp:168:5: var_decl: Declaring variable "ConstPtr". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp:181:3: uninit_use_in_call: Using uninitialized value "ConstPtr.Val.Data" when calling "~EvalResult". +# 179| diag(Loc, "constructing string from nullptr is undefined behaviour"); +# 180| } +# 181|-> } +# 182| } +# 183| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp:102:5: var_decl: Declaring variable "Value2". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp:106:7: uninit_use_in_call: Using uninitialized value "Value2.Val.Data" when calling "~EvalResult". +# 104| !ByteCount->EvaluateAsInt(Value2, *Result.Context) || +# 105| Value2.Val.getInt() != 0) +# 106|-> return; +# 107| +# 108| // Return if `fill_char` is known to be zero or negative at compile + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp:305:3: var_decl: Declaring variable "Str". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp:316:3: uninit_use: Using uninitialized value "Str". Field "Str.InlineElts" is uninitialized. +# 314| Str.append(")"); +# 315| } +# 316|-> return Str; +# 317| } +# 318| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp:202:3: var_decl: Declaring variable "Insertions". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp:237:3: uninit_use: Using uninitialized value "Insertions". Field "Insertions.InlineElts" is uninitialized. +# 235| } +# 236| } +# 237|-> return Insertions; +# 238| } +# 239| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp:39:32: constructor_uses_global_object: The constructor of global object "clang::tidy::llvm_libc::IgnoredFunctions" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::llvm_libc::IgnoredFunctions" might be created before "Allocator" is available. +# 37| // functions are specifically allowed to be external so that they can be +# 38| // intercepted. +# 39|-> static const llvm::StringSet<> IgnoredFunctions = { +# 40| "__errno_location", "malloc", "calloc", "realloc", "free", "aligned_alloc"}; +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp:39:32: constructor_uses_global_object: The constructor of global object "clang::tidy::llvm_libc::IgnoredFunctions" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::llvm_libc::IgnoredFunctions" might be created before "fuzzer::TPC" is available. +# 37| // functions are specifically allowed to be external so that they can be +# 38| // intercepted. +# 39|-> static const llvm::StringSet<> IgnoredFunctions = { +# 40| "__errno_location", "malloc", "calloc", "realloc", "free", "aligned_alloc"}; +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp:39:32: constructor_uses_global_object: The constructor of global object "clang::tidy::llvm_libc::IgnoredFunctions" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::llvm_libc::IgnoredFunctions" might be created before "scudo::RegionPageMap::Buffers" is available. +# 37| // functions are specifically allowed to be external so that they can be +# 38| // intercepted. +# 39|-> static const llvm::StringSet<> IgnoredFunctions = { +# 40| "__errno_location", "malloc", "calloc", "realloc", "free", "aligned_alloc"}; +# 41| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp:51:3: var_decl: Declaring variable "Skeleton". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp:89:3: uninit_use: Using uninitialized value "Skeleton". Field "Skeleton.InlineElts" is uninitialized. +# 87| } +# 88| } +# 89|-> return Skeleton; +# 90| } +# 91| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp:257:3: var_decl: Declaring variable "BindArguments". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp:318:3: uninit_use: Using uninitialized value "BindArguments". Field "BindArguments.InlineElts" is uninitialized. +# 316| } +# 317| } +# 318|-> return BindArguments; +# 319| } +# 320| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:71:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::MemberNames" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::MemberNames" might be created before "Allocator" is available. +# 69| static const char DerefByValueResultName[] = "derefByValueResult"; +# 70| static const char DerefByRefResultName[] = "derefByRefResult"; +# 71|-> static const llvm::StringSet<> MemberNames{"begin", "cbegin", "rbegin", +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:71:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::MemberNames" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::MemberNames" might be created before "fuzzer::TPC" is available. +# 69| static const char DerefByValueResultName[] = "derefByValueResult"; +# 70| static const char DerefByRefResultName[] = "derefByRefResult"; +# 71|-> static const llvm::StringSet<> MemberNames{"begin", "cbegin", "rbegin", +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:71:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::MemberNames" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::MemberNames" might be created before "scudo::RegionPageMap::Buffers" is available. +# 69| static const char DerefByValueResultName[] = "derefByValueResult"; +# 70| static const char DerefByRefResultName[] = "derefByRefResult"; +# 71|-> static const llvm::StringSet<> MemberNames{"begin", "cbegin", "rbegin", +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:74:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ADLNames" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ADLNames" might be created before "Allocator" is available. +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; +# 74|-> static const llvm::StringSet<> ADLNames{"begin", "cbegin", "rbegin", +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:74:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ADLNames" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ADLNames" might be created before "fuzzer::TPC" is available. +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; +# 74|-> static const llvm::StringSet<> ADLNames{"begin", "cbegin", "rbegin", +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:74:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ADLNames" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ADLNames" might be created before "scudo::RegionPageMap::Buffers" is available. +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; +# 74|-> static const llvm::StringSet<> ADLNames{"begin", "cbegin", "rbegin", +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:77:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::StdNames" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::StdNames" might be created before "Allocator" is available. +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; +# 77|-> static const llvm::StringSet<> StdNames{ +# 78| "std::begin", "std::cbegin", "std::rbegin", "std::crbegin", "std::end", +# 79| "std::cend", "std::rend", "std::crend", "std::size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:77:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::StdNames" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::StdNames" might be created before "fuzzer::TPC" is available. +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; +# 77|-> static const llvm::StringSet<> StdNames{ +# 78| "std::begin", "std::cbegin", "std::rbegin", "std::crbegin", "std::end", +# 79| "std::cend", "std::rend", "std::crend", "std::size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:77:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::StdNames" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::StdNames" might be created before "scudo::RegionPageMap::Buffers" is available. +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; +# 77|-> static const llvm::StringSet<> StdNames{ +# 78| "std::begin", "std::cbegin", "std::rbegin", "std::crbegin", "std::end", +# 79| "std::cend", "std::rend", "std::crend", "std::size"}; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:34:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:61:7: uninit_use: Using uninitialized value "Result". Field "Result.Args.InlineElts" is uninitialized. +# 59| Result.Compare = *ArgIterator; +# 60| +# 61|-> return Result; +# 62| } +# 63| Result.Args = SmallVector(Call->arguments()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:80:3: var_decl: Declaring variable "FixItHints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:94:5: uninit_use: Using uninitialized value "FixItHints". Field "FixItHints.InlineElts" is uninitialized. +# 92| +# 93| if ((!IsResultTypeTrivial && IgnoreNonTrivialTypes)) +# 94|-> return FixItHints; +# 95| +# 96| if (IsResultTypeTrivial && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:80:3: var_decl: Declaring variable "FixItHints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:100:5: uninit_use: Using uninitialized value "FixItHints". Field "FixItHints.InlineElts" is uninitialized. +# 98| Match.Context->getTypeSizeInChars(ResultType).getQuantity()) > +# 99| IgnoreTrivialTypesOfSizeAbove) +# 100|-> return FixItHints; +# 101| +# 102| for (const Expr *Arg : Result.Args) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:80:3: var_decl: Declaring variable "FixItHints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:192:3: uninit_use: Using uninitialized value "FixItHints". Field "FixItHints.InlineElts" is uninitialized. +# 190| } +# 191| +# 192|-> return FixItHints; +# 193| } +# 194| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp:181:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp:186:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 184| for (const FunctionDecl *Redecl : Ctor->redecls()) +# 185| Results.push_back(Redecl->getParamDecl(ParamIdx)); +# 186|-> return Results; +# 187| } +# 188| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp:36:3: return_constant: Function call "Text.find('"', 0UL)" may return 18446744073709551615. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp:36:3: assignment: Assigning: "QuotePos" = "Text.find('"', 0UL)". The value of "QuotePos" is now 18446744073709551615. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp:38:3: overrun-buffer-arg: Calling "operator []" with "Text.Data" and "QuotePos - 1UL" is suspicious because of the very large index, 18446744073709551614. The index may be due to a negative parameter being interpreted as unsigned. +# 36| const size_t QuotePos = Text.find('"'); +# 37| assert(QuotePos != StringRef::npos); +# 38|-> return (QuotePos > 0) && (Text[QuotePos - 1] == 'R'); +# 39| } +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:18:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ValueTraits" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ValueTraits" might be created before "Allocator" is available. +# 16| namespace clang::tidy::modernize { +# 17| +# 18|-> static const llvm::StringSet<> ValueTraits = { +# 19| "alignment_of", +# 20| "conjunction", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:18:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ValueTraits" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ValueTraits" might be created before "fuzzer::TPC" is available. +# 16| namespace clang::tidy::modernize { +# 17| +# 18|-> static const llvm::StringSet<> ValueTraits = { +# 19| "alignment_of", +# 20| "conjunction", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:18:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ValueTraits" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ValueTraits" might be created before "scudo::RegionPageMap::Buffers" is available. +# 16| namespace clang::tidy::modernize { +# 17| +# 18|-> static const llvm::StringSet<> ValueTraits = { +# 19| "alignment_of", +# 20| "conjunction", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:105:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::TypeTraits" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::TypeTraits" might be created before "Allocator" is available. +# 103| }; +# 104| +# 105|-> static const llvm::StringSet<> TypeTraits = { +# 106| "remove_cv", +# 107| "remove_const", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:105:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::TypeTraits" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::TypeTraits" might be created before "fuzzer::TPC" is available. +# 103| }; +# 104| +# 105|-> static const llvm::StringSet<> TypeTraits = { +# 106| "remove_cv", +# 107| "remove_const", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:105:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::TypeTraits" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::TypeTraits" might be created before "scudo::RegionPageMap::Buffers" is available. +# 103| }; +# 104| +# 105|-> static const llvm::StringSet<> TypeTraits = { +# 106| "remove_cv", +# 107| "remove_const", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp:74:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp:77:5: uninit_use: Using uninitialized value "Result". Field "Result.Hints.InlineElts" is uninitialized. +# 75| std::optional Tok = findConstToRemove(Def, MatchResult); +# 76| if (!Tok) +# 77|-> return Result; +# 78| +# 79| Result.ConstRange = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:103:3: var_decl: Declaring variable "DifferingParams". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:132:3: uninit_use: Using uninitialized value "DifferingParams". Field "DifferingParams.InlineElts" is uninitialized. +# 130| } +# 131| +# 132|-> return DifferingParams; +# 133| } +# 134| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:139:3: var_decl: Declaring variable "InconsistentDeclarations". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:165:3: uninit_use: Using uninitialized value "InconsistentDeclarations". Field "InconsistentDeclarations.InlineElts" is uninitialized. +# 163| Info2.DeclarationLocation); +# 164| }); +# 165|-> return InconsistentDeclarations; +# 166| } +# 167| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:109:7: var_decl: Declaring variable "FloatValue". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:110:7: uninit_use_in_call: Using uninitialized value "FloatValue.U" when calling "convertFromString". +# 108| for (const auto &InputValue : IgnoredFloatingPointValuesInput) { +# 109| llvm::APFloat FloatValue(llvm::APFloat::IEEEsingle()); +# 110|-> auto StatusOrErr = +# 111| FloatValue.convertFromString(InputValue, DefaultRoundingMode); +# 112| assert(StatusOrErr && "Invalid floating point representation"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:116:7: var_decl: Declaring variable "DoubleValue". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:117:7: uninit_use_in_call: Using uninitialized value "DoubleValue.U" when calling "convertFromString". +# 115| +# 116| llvm::APFloat DoubleValue(llvm::APFloat::IEEEdouble()); +# 117|-> StatusOrErr = +# 118| DoubleValue.convertFromString(InputValue, DefaultRoundingMode); +# 119| assert(StatusOrErr && "Invalid floating point representation"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "Allocator" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "GlobalParser" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "fuzzer::TPC" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:38:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 36| static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 39| static cl::extrahelp ClangTidyHelp(R"( +# 40| Configuration files: + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "ClangTidyHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyHelp" might be created before "GlobalParser" is available. +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 39|-> static cl::extrahelp ClangTidyHelp(R"( +# 40| Configuration files: +# 41| clang-tidy attempts to read configuration for each source file from a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "Allocator" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "Allocator" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "Allocator" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "Allocator" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "fuzzer::TPC" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "scudo::RegionPageMap::Buffers" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "Allocator" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "Allocator" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "fuzzer::TPC" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "scudo::RegionPageMap::Buffers" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "Allocator" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "fuzzer::TPC" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "scudo::RegionPageMap::Buffers" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "Allocator" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "fuzzer::TPC" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "scudo::RegionPageMap::Buffers" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "Allocator" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "Allocator" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "fuzzer::TPC" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "scudo::RegionPageMap::Buffers" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "Allocator" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "fuzzer::TPC" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "Allocator" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "Allocator" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "Allocator" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "fuzzer::TPC" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "Allocator" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "fuzzer::TPC" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "scudo::RegionPageMap::Buffers" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "Allocator" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "Allocator" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "fuzzer::TPC" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "scudo::RegionPageMap::Buffers" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "Allocator" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "fuzzer::TPC" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "scudo::RegionPageMap::Buffers" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "Allocator" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "Allocator" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "fuzzer::TPC" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "scudo::RegionPageMap::Buffers" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "Allocator" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "Allocator" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "fuzzer::TPC" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "scudo::RegionPageMap::Buffers" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "Allocator" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "fuzzer::TPC" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:20:3: var_decl: Declaring variable "Token" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:25:5: uninit_use_in_call: Using uninitialized value "Token". Field "Token.Loc" is uninitialized when calling "pair". +# 23| Location = Location.getLocWithOffset(-1); +# 24| if (Location.isInvalid()) +# 25|-> return {Token, Location}; +# 26| +# 27| auto StartOfFile = SM.getLocForStartOfFile(SM.getFileID(Location)); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:278:3: zero_return: Function call "FuncDecl->getNumParams()" returns 0. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:278:3: overrun-buffer-arg: Calling "getParamDecl" with "FuncDecl->ParamInfo" and "FuncDecl->getNumParams() - 1U" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 276| +# 277| // FunctionDecl with parameters +# 278|-> const SourceLocation NoexceptLoc = +# 279| FuncDecl->getParamDecl(FuncDecl->getNumParams() - 1)->getEndLoc(); +# 280| if (NoexceptLoc.isValid()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/ClangdServer.cpp:196:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/clang-tools-extra/clangd/ClangdServer.cpp:200:3: uninit_use: Using uninitialized value "Opts". Field "Opts.ClangTidyProvider.callable" is uninitialized. +# 198| Opts.StorePreamblesInMemory = true; +# 199| Opts.AsyncThreadsCount = 4; // Consistent! +# 200|-> return Opts; +# 201| } +# 202| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/CodeComplete.cpp:2191:5: var_decl: Declaring variable "Item". +llvm-project-19.0.0.src/clang-tools-extra/clangd/CodeComplete.cpp:2197:5: uninit_use_in_call: Using uninitialized value "Item". Field "Item.Includes.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 2195| Item.CompletionTokenRange = CompletionRange; +# 2196| Item.Origin = SymbolOrigin::AST; +# 2197|-> Result.Completions.push_back(Item); +# 2198| } +# 2199| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/CompileCommands.cpp:190:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/CompileCommands.cpp:194:3: uninit_use: Using uninitialized value "Result". Field "Result.SystemIncludeExtractor.StorageUnion" is uninitialized. +# 192| Result.ResourceDir = detectStandardResourceDir(); +# 193| Result.Sysroot = detectSysroot(); +# 194|-> return Result; +# 195| } +# 196| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Compiler.cpp:163:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang-tools-extra/clangd/Compiler.cpp:163:3: leaked_storage: Ignoring storage allocated by "Buffer.release()" leaks it. +# 161| // RemappedFileBuffers will handle the lifetime of the Buffer pointer, +# 162| // release it. +# 163|-> Buffer.release(); +# 164| return Clang; +# 165| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:160:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:164:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 162| for (const auto &Elem : Decls) +# 163| Result[Elem.second.second] = {Elem.first, Elem.second.first}; +# 164|-> return Result; +# 165| } +# 166| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:584:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:589:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 587| Result.push_back(Entry.first); +# 588| } +# 589|-> return Result; +# 590| } +# 591| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:605:3: var_decl: Declaring variable "Targets". +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:621:3: uninit_use: Using uninitialized value "Targets". Field "Targets.InlineElts" is uninitialized. +# 619| Targets.insert(Targets.end(), TemplatePatterns.begin(), +# 620| TemplatePatterns.end()); +# 621|-> return Targets; +# 622| } +# 623| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:486:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:501:7: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:501:7: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 499| Queue.pop_front(); +# 500| +# 501|-> Lock.unlock(); +# 502| { +# 503| WithContext WithCtx(std::move(ActiveTask->Ctx)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:172:3: var_decl: Declaring variable "Headers". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:175:3: uninit_use: Using uninitialized value "Headers". Field "Headers.InlineElts" is uninitialized. +# 173| for (const auto &Include : Includes) +# 174| Headers.push_back({Include.IncludeHeader, Include.supportedDirectives()}); +# 175|-> return Headers; +# 176| } +# 177| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:257:3: var_decl: Declaring variable "Includes". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:260:3: uninit_use: Using uninitialized value "Includes". Field "Includes.InlineElts" is uninitialized. +# 258| for (auto Idx : MainFileIncludesBySpelling.lookup(Spelling)) +# 259| Includes.push_back(&MainFileIncludes[Idx]); +# 260|-> return Includes; +# 261| } +# 262| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/IncludeCleaner.cpp:257:3: var_decl: Declaring variable "FixAll". +llvm-project-19.0.0.src/clang-tools-extra/clangd/IncludeCleaner.cpp:264:3: uninit_use: Using uninitialized value "FixAll". Field "FixAll.Edits.InlineElts" is uninitialized. +# 262| for (const auto &F : AddAllMissing.Edits) +# 263| FixAll.Edits.push_back(F); +# 264|-> return FixAll; +# 265| } +# 266| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/InlayHints.cpp:897:5: var_decl: Declaring variable "ParameterNames". +llvm-project-19.0.0.src/clang-tools-extra/clangd/InlayHints.cpp:922:5: uninit_use: Using uninitialized value "ParameterNames". Field "ParameterNames.InlineElts" is uninitialized. +# 920| stripLeadingUnderscores(Name); +# 921| +# 922|-> return ParameterNames; +# 923| } +# 924| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:112:5: var_decl: Declaring variable "Out". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:114:7: uninit_use: Using uninitialized value "Out". Field "Out.InlineElts" is uninitialized. +# 112| llvm::SmallVector> Out; +# 113| if (Claim.empty()) +# 114|-> return Out; +# 115| +# 116| // General case: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:112:5: var_decl: Declaring variable "Out". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:132:7: uninit_use: Using uninitialized value "Out". Field "Out.InlineElts" is uninitialized. +# 130| } +# 131| if (Overlap.first == Overlap.second) +# 132|-> return Out; +# 133| +# 134| // First, copy all overlapping ranges into the output. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:112:5: var_decl: Declaring variable "Out". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:157:5: uninit_use: Using uninitialized value "Out". Field "Out.InlineElts" is uninitialized. +# 155| UnclaimedRanges.insert(RemainingTail); +# 156| +# 157|-> return Out; +# 158| } +# 159| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:998:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:1010:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1008| Result.append(" …"); +# 1009| } +# 1010|-> return Result; +# 1011| } +# 1012| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:1041:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:1052:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1050| if (Result.empty()) +# 1051| Result.emplace_back(Offset, Offset); +# 1052|-> return Result; +# 1053| } +# 1054| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:159:5: extract: Calling "get" which extracts wrapped state from "Tail->parent". +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:159:5: assign: Assigning: "Tail" = "Tail->parent.get()". +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:158:5: invalidate: Calling "operator =" invalidates the internal representation of "Tail->parent". +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:159:5: use_after_free: Using invalidated internal representation of "Tail->parent". +# 157| llvm::MutableArrayRef(Ranges.data(), Ranges.size()).drop_front()) { +# 158| Tail->parent = std::make_unique(); +# 159|-> Tail = Tail->parent.get(); +# 160| Tail->range = std::move(Range); +# 161| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/TUScheduler.cpp:170:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/TUScheduler.cpp:180:5: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/TUScheduler.cpp:180:5: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 178| LRU.pop_back(); +# 179| // Run the expensive destructor outside the lock. +# 180|-> Lock.unlock(); +# 181| ForCleanup.reset(); +# 182| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp:33:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/clang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp:38:3: uninit_use_in_call: Using uninitialized value "Opts.ClangTidyProvider". Field "Opts.ClangTidyProvider.callable" is uninitialized when calling "ClangdLSPServer". +# 36| +# 37| // Initialize and run ClangdLSPServer. +# 38|-> ClangdLSPServer LSPServer(*Transport, FS, Opts); +# 39| LSPServer.run(); +# 40| return 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/BackgroundQueue.cpp:48:7: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/BackgroundQueue.cpp:55:11: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/BackgroundQueue.cpp:55:11: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 53| Stat.LastIdle = Stat.Completed; +# 54| if (OnIdle) { +# 55|-> Lock.unlock(); +# 56| OnIdle(); +# 57| Lock.lock(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/StdLib.cpp:214:3: var_decl: Declaring variable "Symbols". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/StdLib.cpp:224:5: uninit_use: Using uninitialized value "Symbols". Field "Symbols.Arena.Slabs.InlineElts" is uninitialized. +# 222| if (!Clang) { +# 223| elog("Standard Library Index: Couldn't build compiler instance"); +# 224|-> return Symbols; +# 225| } +# 226| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:216:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:219:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 217| for (auto &H : Headers) +# 218| Result.emplace_back(H.IncludeHeader, H.References, H.SupportedDirectives); +# 219|-> return Result; +# 220| } +# 221| llvm::SmallVector Headers; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:373:5: var_decl: Declaring variable "Digest" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:380:5: uninit_use: Using uninitialized value "Digest". +# 378| I.setError(std::string("Bad hex file digest: ") + HexString); +# 379| } +# 380|-> return Digest; +# 381| } +# 382| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp:30:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexLocation[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexLocation[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| namespace { +# 29| +# 30|-> llvm::cl::opt IndexLocation( +# 31| llvm::cl::desc(""), +# 32| llvm::cl::Positional); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp:35:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::ExecCommand[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ExecCommand[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| llvm::cl::opt +# 35|-> ExecCommand("c", llvm::cl::desc("Command to execute and then exit.")); +# 36| +# 37| llvm::cl::opt ProjectRoot( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp:37:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::ProjectRoot[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ProjectRoot[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| ExecCommand("c", llvm::cl::desc("Command to execute and then exit.")); +# 36| +# 37|-> llvm::cl::opt ProjectRoot( +# 38| "project-root", +# 39| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "Allocator" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "fuzzer::TPC" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "scudo::RegionPageMap::Buffers" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:41:36: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| llvm::cl::init(IndexFileFormat::RIFF)); +# 40| +# 41|-> static llvm::cl::list QueryDriverGlobs{ +# 42| "query-driver", +# 43| llvm::cl::desc( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/refactor/tweaks/ObjCMemberwiseInitializer.cpp:104:3: var_decl: Declaring variable "Params". +llvm-project-19.0.0.src/clang-tools-extra/clangd/refactor/tweaks/ObjCMemberwiseInitializer.cpp:120:3: uninit_use: Using uninitialized value "Params". Field "Params.InlineElts" is uninitialized. +# 118| Params.push_back(P); +# 119| } +# 120|-> return Params; +# 121| } +# 122| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/support/Threading.cpp:66:3: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/support/Threading.cpp:68:3: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/support/Threading.cpp:68:3: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 66| std::unique_lock Lock(Mutex); +# 67| ++FreeSlots; +# 68|-> Lock.unlock(); +# 69| +# 70| SlotsChanged.notify_one(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:86:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckTidyTime[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckTidyTime[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| // These will never be shown in --help, ClangdMain doesn't list the category. +# 86|-> llvm::cl::opt CheckTidyTime{ +# 87| "check-tidy-time", +# 88| llvm::cl::desc("Print the overhead of checks matching this glob"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:90:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFileLines[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFileLines[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| llvm::cl::desc("Print the overhead of checks matching this glob"), +# 89| llvm::cl::init("")}; +# 90|-> llvm::cl::opt CheckFileLines{ +# 91| "check-lines", +# 92| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:98:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| "to one line. Default is testing entire file."), +# 97| llvm::cl::init("")}; +# 98|-> llvm::cl::opt CheckLocations{ +# 99| "check-locations", +# 100| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:104:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckCompletion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckCompletion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| "Somewhat slow."), +# 103| llvm::cl::init(true)}; +# 104|-> llvm::cl::opt CheckCompletion{ +# 105| "check-completion", +# 106| llvm::cl::desc("Run code-completion at each point (slow)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:108:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckWarnings" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckWarnings" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| llvm::cl::desc("Run code-completion at each point (slow)"), +# 107| llvm::cl::init(false)}; +# 108|-> llvm::cl::opt CheckWarnings{ +# 109| "check-warnings", +# 110| llvm::cl::desc("Print warnings as well as errors"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "Allocator" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "GlobalParser" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "fuzzer::TPC" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "scudo::RegionPageMap::Buffers" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "Allocator" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "GlobalParser" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "fuzzer::TPC" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "scudo::RegionPageMap::Buffers" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "Allocator" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "GlobalParser" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "fuzzer::TPC" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "scudo::RegionPageMap::Buffers" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "Allocator" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "GlobalParser" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "fuzzer::TPC" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "Allocator" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "GlobalParser" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "fuzzer::TPC" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "scudo::RegionPageMap::Buffers" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "Allocator" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "fuzzer::TPC" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "scudo::RegionPageMap::Buffers" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "Allocator" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "Allocator" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "Allocator" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "Allocator" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "fuzzer::TPC" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "scudo::RegionPageMap::Buffers" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "Allocator" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "fuzzer::TPC" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "scudo::RegionPageMap::Buffers" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "Allocator" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "fuzzer::TPC" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "scudo::RegionPageMap::Buffers" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "Allocator" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "fuzzer::TPC" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "scudo::RegionPageMap::Buffers" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "Allocator" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "fuzzer::TPC" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "scudo::RegionPageMap::Buffers" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "Allocator" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "fuzzer::TPC" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "scudo::RegionPageMap::Buffers" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "Allocator" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "fuzzer::TPC" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "scudo::RegionPageMap::Buffers" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "Allocator" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "fuzzer::TPC" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "scudo::RegionPageMap::Buffers" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "Allocator" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "Allocator" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "fuzzer::TPC" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "scudo::RegionPageMap::Buffers" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "Allocator" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "fuzzer::TPC" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "scudo::RegionPageMap::Buffers" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "Allocator" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "fuzzer::TPC" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "scudo::RegionPageMap::Buffers" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "Allocator" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "fuzzer::TPC" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "scudo::RegionPageMap::Buffers" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "Allocator" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "fuzzer::TPC" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "scudo::RegionPageMap::Buffers" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "Allocator" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "fuzzer::TPC" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "scudo::RegionPageMap::Buffers" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "Allocator" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "fuzzer::TPC" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "scudo::RegionPageMap::Buffers" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "Allocator" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "fuzzer::TPC" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "Allocator" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "fuzzer::TPC" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "Allocator" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "Allocator" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "fuzzer::TPC" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "scudo::RegionPageMap::Buffers" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "Allocator" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "Allocator" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "fuzzer::TPC" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "scudo::RegionPageMap::Buffers" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "Allocator" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "fuzzer::TPC" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "scudo::RegionPageMap::Buffers" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "Allocator" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "Allocator" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "fuzzer::TPC" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "scudo::RegionPageMap::Buffers" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "Allocator" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "fuzzer::TPC" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "scudo::RegionPageMap::Buffers" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "Allocator" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "fuzzer::TPC" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "scudo::RegionPageMap::Buffers" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "Allocator" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "fuzzer::TPC" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "scudo::RegionPageMap::Buffers" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "Allocator" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "Allocator" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "Allocator" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "fuzzer::TPC" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "scudo::RegionPageMap::Buffers" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "Allocator" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "fuzzer::TPC" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "scudo::RegionPageMap::Buffers" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "Allocator" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "fuzzer::TPC" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "scudo::RegionPageMap::Buffers" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "Allocator" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "fuzzer::TPC" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "Allocator" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "fuzzer::TPC" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "scudo::RegionPageMap::Buffers" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "Allocator" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "fuzzer::TPC" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "scudo::RegionPageMap::Buffers" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "Allocator" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "fuzzer::TPC" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "scudo::RegionPageMap::Buffers" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:453:5: var_decl: Declaring variable "TargetDecl" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:469:9: uninit_use_in_call: Using uninitialized value "TargetDecl" when calling "getQualification". +# 467| const Decl *D = InsertionPoints[I]; +# 468| if (Case.VisibleNamespaces.empty()) { +# 469|-> EXPECT_EQ(getQualification(AST.getASTContext(), +# 470| D->getLexicalDeclContext(), D->getBeginLoc(), +# 471| TargetDecl), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:453:5: var_decl: Declaring variable "TargetDecl" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:474:9: uninit_use_in_call: Using uninitialized value "TargetDecl" when calling "getQualification". +# 472| Case.Qualifications[I]); +# 473| } else { +# 474|-> EXPECT_EQ(getQualification(AST.getASTContext(), +# 475| D->getLexicalDeclContext(), TargetDecl, +# 476| Case.VisibleNamespaces), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:94:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_NoCrashOnErrorFile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_NoCrashOnErrorFile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 92| }; +# 93| +# 94|-> TEST_F(BackgroundIndexTest, NoCrashOnErrorFile) { +# 95| MockFS FS; +# 96| FS.Files[testPath("root/A.cc")] = "error file"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:113:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_Config_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_Config_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 111| } +# 112| +# 113|-> TEST_F(BackgroundIndexTest, Config) { +# 114| MockFS FS; +# 115| // Set up two identical TUs, foo and bar. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:165:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_IndexTwoFiles_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_IndexTwoFiles_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 163| } +# 164| +# 165|-> TEST_F(BackgroundIndexTest, IndexTwoFiles) { +# 166| MockFS FS; +# 167| // a.h yields different symbols when included by A.cc vs B.cc. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:236:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_MainFileRefs_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_MainFileRefs_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 234| } +# 235| +# 236|-> TEST_F(BackgroundIndexTest, MainFileRefs) { +# 237| MockFS FS; +# 238| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:265:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_ShardStorageTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_ShardStorageTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 263| } +# 264| +# 265|-> TEST_F(BackgroundIndexTest, ShardStorageTest) { +# 266| MockFS FS; +# 267| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:336:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_DirectIncludesTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_DirectIncludesTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 334| } +# 335| +# 336|-> TEST_F(BackgroundIndexTest, DirectIncludesTest) { +# 337| MockFS FS; +# 338| FS.Files[testPath("root/B.h")] = ""; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:387:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_ShardStorageLoad_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_ShardStorageLoad_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 385| } +# 386| +# 387|-> TEST_F(BackgroundIndexTest, ShardStorageLoad) { +# 388| MockFS FS; +# 389| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:458:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_ShardStorageEmptyFile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_ShardStorageEmptyFile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 456| } +# 457| +# 458|-> TEST_F(BackgroundIndexTest, ShardStorageEmptyFile) { +# 459| MockFS FS; +# 460| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:526:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_NoDotsInAbsPath_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_NoDotsInAbsPath_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 524| } +# 525| +# 526|-> TEST_F(BackgroundIndexTest, NoDotsInAbsPath) { +# 527| MockFS FS; +# 528| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:557:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_UncompilableFiles_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_UncompilableFiles_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 555| } +# 556| +# 557|-> TEST_F(BackgroundIndexTest, UncompilableFiles) { +# 558| MockFS FS; +# 559| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:621:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_CmdLineHash_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_CmdLineHash_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 619| } +# 620| +# 621|-> TEST_F(BackgroundIndexTest, CmdLineHash) { +# 622| MockFS FS; +# 623| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:649:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_Reindex_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_Reindex_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 647| } +# 648| +# 649|-> TEST_F(BackgroundIndexTest, Reindex) { +# 650| MockFS FS; +# 651| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:724:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexRebuilderTest_IndexingTUs_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexRebuilderTest_IndexingTUs_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 722| }; +# 723| +# 724|-> TEST_F(BackgroundIndexRebuilderTest, IndexingTUs) { +# 725| for (unsigned I = 0; I < Rebuilder.TUsBeforeFirstBuild - 1; ++I) +# 726| EXPECT_FALSE(checkRebuild([&] { Rebuilder.indexedTU(); })); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:733:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexRebuilderTest_LoadingShards_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexRebuilderTest_LoadingShards_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 731| } +# 732| +# 733|-> TEST_F(BackgroundIndexRebuilderTest, LoadingShards) { +# 734| Rebuilder.startLoading(); +# 735| Rebuilder.loadedShard(10); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:760:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Priority_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Priority_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 758| } +# 759| +# 760|-> TEST(BackgroundQueueTest, Priority) { +# 761| // Create high and low priority tasks. +# 762| // Once a bunch of high priority tasks have run, the queue is stopped. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:792:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Boost_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Boost_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 790| } +# 791| +# 792|-> TEST(BackgroundQueueTest, Boost) { +# 793| std::string Sequence; +# 794| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:827:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Duplicates_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Duplicates_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 825| } +# 826| +# 827|-> TEST(BackgroundQueueTest, Duplicates) { +# 828| std::string Sequence; +# 829| BackgroundQueue::Task A([&] { Sequence.push_back('A'); }); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:852:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Progress_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Progress_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 850| } +# 851| +# 852|-> TEST(BackgroundQueueTest, Progress) { +# 853| using testing::AnyOf; +# 854| BackgroundQueue::Stats S; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:900:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndex_Profile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndex_Profile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 898| } +# 899| +# 900|-> TEST(BackgroundIndex, Profile) { +# 901| MockFS FS; +# 902| MockCompilationDatabase CDB; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp:294:3: extract: Calling "get" which extracts wrapped state from local "CfgProvider". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp:294:3: escape: The internal representation of local "CfgProvider" escapes into "this->Opts.ConfigProvider", but is destroyed when it exits scope. +# 292| auto CfgProvider = +# 293| config::Provider::fromAncestorRelativeYAMLFiles(".clangd", FS); +# 294|-> Opts.ConfigProvider = CfgProvider.get(); +# 295| +# 296| // Map bar.cpp to a different compilation database which defines FOO->BAR. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:298:3: var_decl: Declaring variable "FS". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:323:3: uninit_use_in_call: Using uninitialized value "FS.Got" when calling "Compare". +# 321| } +# 322| ASSERT_TRUE(Server.blockUntilIdleForTest()); +# 323|-> EXPECT_EQ(FS.Got, 42); +# 324| EXPECT_EQ(Callbacks.Got, 42); +# 325| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:307:3: var_decl: Declaring variable "Callbacks". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:324:3: uninit_use_in_call: Using uninitialized value "Callbacks.Got" when calling "Compare". +# 322| ASSERT_TRUE(Server.blockUntilIdleForTest()); +# 323| EXPECT_EQ(FS.Got, 42); +# 324|-> EXPECT_EQ(Callbacks.Got, 42); +# 325| } +# 326| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/DecisionForestTests.cpp:8:1: constructor_uses_global_object: The constructor of global object "clang::clangd::DecisionForestRuntime_Evaluate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::DecisionForestRuntime_Evaluate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 6| namespace clangd { +# 7| +# 8|-> TEST(DecisionForestRuntime, Evaluate) { +# 9| using Example = ::ns1::ns2::test::Example; +# 10| using Cat = ::ns1::ns2::TestEnum; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp:1150:3: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp:1152:3: uninit_use_in_call: Using uninitialized value "F". Field "F.Edits.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1150| clangd::Fix F; +# 1151| F.Message = "do something"; +# 1152|-> D.Fixes.push_back(F); +# 1153| +# 1154| // Diagnostics should turn into these: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FileIndexTests.cpp:77:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FileIndexTests.cpp:80:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 78| Sym.ID = SymbolID(ID); +# 79| Sym.Name = ID; +# 80|-> return Sym; +# 81| } +# 82| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FindTargetTests.cpp:1281:5: var_decl: Declaring variable "TU". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FindTargetTests.cpp:1289:5: uninit_use: Using uninitialized value "TU". Field "TU.ClangTidyProvider.StorageUnion" is uninitialized. +# 1287| TU.ExtraArgs.push_back("-xobjective-c++"); +# 1288| +# 1289|-> return TU; +# 1290| } +# 1291| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FuzzyMatchTests.cpp:202:5: var_decl: Declaring variable "LastMatch" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FuzzyMatchTests.cpp:221:11: uninit_use: Using uninitialized value "LastMatch". +# 219| Ok = false; +# 220| } else if (LastScore && *LastScore < *Score) { +# 221|-> *OS << "\nRanks '" << Str.Word << "'=" << *Score << " above '" +# 222| << LastMatch->Word << "'=" << *LastScore << "\n" +# 223| << Info.str(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp:517:1: constructor_uses_global_object: The constructor of global object "clang::clangd::DirectoryBasedGlobalCompilationDatabaseCacheTest_Cacheable_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::DirectoryBasedGlobalCompilationDatabaseCacheTest_Cacheable_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 515| } +# 516| +# 517|-> TEST_F(DirectoryBasedGlobalCompilationDatabaseCacheTest, Cacheable) { +# 518| MockFS FS; +# 519| auto Stale = std::chrono::steady_clock::now() - std::chrono::minutes(1); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:344:3: var_decl: Declaring variable "Inc". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:347:3: uninit_use_in_call: Using uninitialized value "Inc.Directive" when calling "Inclusion". +# 345| Inc.Written = "\"bar.h\""; +# 346| Inc.Resolved = ""; +# 347|-> EXPECT_EQ(calculate(testPath("sub/bar.h"), "\"bar.h\"", {Inc}), ""); +# 348| EXPECT_EQ(calculate("\"x.h\"", "\"bar.h\"", {Inc}), ""); +# 349| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:352:3: var_decl: Declaring variable "Inc". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:355:3: uninit_use_in_call: Using uninitialized value "Inc.Directive" when calling "Inclusion". +# 353| Inc.Written = "fake-bar.h"; +# 354| Inc.Resolved = testPath("sub/bar.h"); +# 355|-> EXPECT_EQ(calculate(Inc.Resolved, "", {Inc}), ""); +# 356| // Do not insert preferred. +# 357| EXPECT_EQ(calculate(Inc.Resolved, "\"BAR.h\"", {Inc}), ""); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:528:3: move: "StaticRefs" is moved (indicated by "std::move(StaticRefs)"). +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:531:3: use_after_move: "StaticRefs" is used after it has been already moved. +# 529| std::make_pair(std::move(StaticSymbols), std::move(StaticRefs)); +# 530| llvm::StringSet<> StaticFiles = {"unittest:///foo.cc", "unittest:///bar.cc"}; +# 531|-> MemIndex StaticIndex( +# 532| std::move(StaticData.first), std::move(StaticData.second), RelationSlab(), +# 533| std::move(StaticFiles), IndexContents::References, std::move(StaticData), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:528:3: move: "StaticSymbols" is moved (indicated by "std::move(StaticSymbols)"). +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:531:3: use_after_move: "StaticSymbols" is used after it has been already moved. +# 529| std::make_pair(std::move(StaticSymbols), std::move(StaticRefs)); +# 530| llvm::StringSet<> StaticFiles = {"unittest:///foo.cc", "unittest:///bar.cc"}; +# 531|-> MemIndex StaticIndex( +# 532| std::move(StaticData.first), std::move(StaticData.second), RelationSlab(), +# 533| std::move(StaticFiles), IndexContents::References, std::move(StaticData), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/LSPClient.cpp:156:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/LSPClient.cpp:163:7: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/LSPClient.cpp:163:7: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 161| auto Action = std::move(Actions.front()); +# 162| Actions.pop(); +# 163|-> Lock.unlock(); +# 164| Action(H); +# 165| Lock.lock(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ProjectAwareIndexTests.cpp:35:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ProjectAware_Test_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ProjectAware_Test_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 33| } +# 34| +# 35|-> TEST(ProjectAware, Test) { +# 36| IndexFactory Gen = [](const Config::ExternalIndexSpec &, AsyncTaskRunner *) { +# 37| return createIndex(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ProjectAwareIndexTests.cpp:55:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ProjectAware_CreatedOnce_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ProjectAware_CreatedOnce_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 53| } +# 54| +# 55|-> TEST(ProjectAware, CreatedOnce) { +# 56| unsigned InvocationCount = 0; +# 57| IndexFactory Gen = [&](const Config::ExternalIndexSpec &, AsyncTaskRunner *) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp:98:5: var_decl: Declaring variable "Inputs". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp:103:5: uninit_use: Using uninitialized value "Inputs". Field "Inputs.ClangTidyProvider.callable" is uninitialized. +# 101| Inputs.Contents = std::move(Contents); +# 102| Inputs.Opts = ParseOptions(); +# 103|-> return Inputs; +# 104| } +# 105| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:18:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:28:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 26| Sym.Scope = QName.substr(0, Pos + 2); +# 27| } +# 28|-> return Sym; +# 29| } +# 30| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:42:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:59:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 57| Sym.Origin = SymbolOrigin::Static; +# 58| Sym.Signature = Signature; +# 59|-> return Sym; +# 60| } +# 61| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:96:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:105:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 103| Sym.Flags |= Symbol::IndexedForCodeCompletion; +# 104| Sym.Origin = SymbolOrigin::Static; +# 105|-> return Sym; +# 106| } +# 107| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:37:5: var_decl: Declaring variable "TU". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:39:5: uninit_use: Using uninitialized value "TU". Field "TU.ClangTidyProvider.StorageUnion" is uninitialized. +# 37| TestTU TU; +# 38| TU.Code = std::string(Code); +# 39|-> return TU; +# 40| } +# 41| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:43:5: var_decl: Declaring variable "TU". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:45:5: uninit_use: Using uninitialized value "TU". Field "TU.ClangTidyProvider.StorageUnion" is uninitialized. +# 43| TestTU TU; +# 44| TU.HeaderCode = std::string(HeaderCode); +# 45|-> return TU; +# 46| } +# 47| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ContextTests.cpp:16:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ContextTests_Simple_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ContextTests_Simple_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 14| namespace clangd { +# 15| +# 16|-> TEST(ContextTests, Simple) { +# 17| Key IntParam; +# 18| Key ExtraIntParam; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ContextTests.cpp:26:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ContextTests_MoveOps_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ContextTests_MoveOps_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 24| } +# 25| +# 26|-> TEST(ContextTests, MoveOps) { +# 27| Key> Param; +# 28| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ContextTests.cpp:36:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ContextTests_Builders_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ContextTests_Builders_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 34| } +# 35| +# 36|-> TEST(ContextTests, Builders) { +# 37| Key ParentParam; +# 38| Key ParentAndChildParam; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:20:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ThreadingTest_TaskRunner_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ThreadingTest_TaskRunner_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 18| class ThreadingTest : public ::testing::Test {}; +# 19| +# 20|-> TEST_F(ThreadingTest, TaskRunner) { +# 21| const int TasksCnt = 100; +# 22| // This should be const, but MSVC does not allow to use const vars in lambdas + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:67:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ThreadingTest_Memoize_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ThreadingTest_Memoize_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 65| } +# 66| +# 67|-> TEST_F(ThreadingTest, Memoize) { +# 68| const unsigned NumThreads = 5; +# 69| const unsigned NumKeys = 100; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ThreadingTest_MemoizeDeterministic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ThreadingTest_MemoizeDeterministic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST_F(ThreadingTest, MemoizeDeterministic) { +# 97| Memoize> Cache; +# 98| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:127:1: constructor_uses_global_object: The constructor of global object "clang::clangd::PeriodicThrottlerTest_Minimal_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::PeriodicThrottlerTest_Minimal_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 125| // It's hard to write a real test of this class, std::chrono is awkward to mock. +# 126| // But test some degenerate cases at least. +# 127|-> TEST(PeriodicThrottlerTest, Minimal) { +# 128| PeriodicThrottler Once(std::chrono::hours(24)); +# 129| EXPECT_TRUE(Once()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/FindHeaders.cpp:99:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/FindHeaders.cpp:111:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 109| if (!Results.empty()) +# 110| Results.front().Hint |= Hints::PreferredHeader; +# 111|-> return Results; +# 112| } +# 113| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Record.cpp:392:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Record.cpp:399:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 397| Results.push_back(*FE); +# 398| } +# 399|-> return Results; +# 400| } +# 401| llvm::SmallVector + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Types.cpp:157:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Types.cpp:177:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 175| } +# 176| } +# 177|-> return Result; +# 178| } +# 179| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "Allocator" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "GlobalParser" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "fuzzer::TPC" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "scudo::RegionPageMap::Buffers" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "Allocator" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "Allocator" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "Allocator" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "Allocator" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "fuzzer::TPC" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "scudo::RegionPageMap::Buffers" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "Allocator" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "fuzzer::TPC" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "Allocator" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "fuzzer::TPC" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "scudo::RegionPageMap::Buffers" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "Allocator" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "fuzzer::TPC" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "scudo::RegionPageMap::Buffers" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:265:5: constructor_uses_global_object: The constructor of global object "ListFileNames[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ListFileNames[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 263| // Option to specify a file name for a list of header files to check. +# 264| static cl::list +# 265|-> ListFileNames(cl::Positional, cl::value_desc("list"), +# 266| cl::desc(""), +# 267| cl::CommaSeparated); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:271:5: constructor_uses_global_object: The constructor of global object "CC1Arguments[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CC1Arguments[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 269| // Collect all other arguments, which will be passed to the front end. +# 270| static cl::list +# 271|-> CC1Arguments(cl::ConsumeAfter, +# 272| cl::desc("...")); +# 273| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:275:29: constructor_uses_global_object: The constructor of global object "HeaderPrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HeaderPrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 273| +# 274| // Option to specify a prefix to be prepended to the header names. +# 275|-> static cl::opt HeaderPrefix( +# 276| "prefix", cl::init(""), +# 277| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:284:29: constructor_uses_global_object: The constructor of global object "ModuleMapPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ModuleMapPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 282| // Option for assistant mode, telling modularize to output a module map +# 283| // based on the headers list, and where to put it. +# 284|-> static cl::opt ModuleMapPath( +# 285| "module-map-path", cl::init(""), +# 286| cl::desc("Turn on module map output and specify output path or file name." + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:292:29: constructor_uses_global_object: The constructor of global object "ProblemFilesList[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProblemFilesList[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 290| // Option to specify list of problem files for assistant. +# 291| // This will cause assistant to exclude these files. +# 292|-> static cl::opt ProblemFilesList( +# 293| "problem-files-list", cl::init(""), +# 294| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:300:1: constructor_uses_global_object: The constructor of global object "RootModule[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RootModule[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 298| // Option for assistant mode, telling modularize the name of the root module. +# 299| static cl::opt +# 300|-> RootModule("root-module", cl::init(""), +# 301| cl::desc("Specify the name of the root module.")); +# 302| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:308:1: constructor_uses_global_object: The constructor of global object "BlockCheckHeaderListOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockCheckHeaderListOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 306| // included inside blocks. +# 307| static cl::opt +# 308|-> BlockCheckHeaderListOnly("block-check-header-list-only", cl::init(false), +# 309| cl::desc("Only warn if #include directives are inside extern or namespace" +# 310| " blocks if the included header is in the header list.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:314:5: constructor_uses_global_object: The constructor of global object "IncludePaths[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IncludePaths[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 312| // Option for include paths for coverage check. +# 313| static cl::list +# 314|-> IncludePaths("I", cl::desc("Include path for coverage check."), +# 315| cl::value_desc("path")); +# 316| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:318:22: constructor_uses_global_object: The constructor of global object "NoCoverageCheck" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoCoverageCheck" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 316| +# 317| // Option for disabling the coverage check. +# 318|-> static cl::opt NoCoverageCheck("no-coverage-check", +# 319| cl::desc("Don't do the coverage check.")); +# 320| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:323:1: constructor_uses_global_object: The constructor of global object "CoverageCheckOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CoverageCheckOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 321| // Option for just doing the coverage check. +# 322| static cl::opt +# 323|-> CoverageCheckOnly("coverage-check-only", cl::init(false), +# 324| cl::desc("Only do the coverage check.")); +# 325| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:328:1: constructor_uses_global_object: The constructor of global object "DisplayFileLists" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisplayFileLists" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 326| // Option for displaying lists of good, bad, and mixed files. +# 327| static cl::opt +# 328|-> DisplayFileLists("display-file-lists", cl::init(false), +# 329| cl::desc("Display lists of good files (no compile errors), problem files," +# 330| " and a combined list with problem files preceded by a '#'.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "Allocator" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "GlobalParser" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "fuzzer::TPC" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "Allocator" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "Allocator" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:37:18: constructor_uses_global_object: The constructor of global object "::Grammar[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Grammar[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| }; +# 36| +# 37|-> opt Grammar("grammar", desc("Parse a BNF grammar file."), +# 38| Required); +# 39| opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "Allocator" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "fuzzer::TPC" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:46:18: constructor_uses_global_object: The constructor of global object "::OutputFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OutputFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| "Print the BNF grammar content as a string"))); +# 45| +# 46|-> opt OutputFilename("o", init("-"), desc("Output"), +# 47| value_desc("file")); +# 48| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/lib/Token.cpp:98:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/clang-tools-extra/pseudo/lib/Token.cpp:115:3: uninit_use: Using uninitialized value "Opts". Field "Opts.GPUDefaultStream" is uninitialized. +# 113| Opts.WChar = true; +# 114| +# 115|-> return Opts; +# 116| } +# 117| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/lib/cli/CLI.cpp:16:35: constructor_uses_global_object: The constructor of global object "Grammar[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Grammar[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 14| #include "llvm/Support/MemoryBuffer.h" +# 15| +# 16|-> static llvm::cl::opt Grammar( +# 17| "grammar", +# 18| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:36:18: constructor_uses_global_object: The constructor of global object "PrintGrammar" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintGrammar" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| using llvm::cl::opt; +# 35| +# 36|-> static opt PrintGrammar("print-grammar", desc("Print the grammar")); +# 37| static opt PrintGraph("print-graph", +# 38| desc("Print the LR graph for the grammar")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:37:18: constructor_uses_global_object: The constructor of global object "PrintGraph" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintGraph" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static opt PrintGrammar("print-grammar", desc("Print the grammar")); +# 37|-> static opt PrintGraph("print-graph", +# 38| desc("Print the LR graph for the grammar")); +# 39| static opt PrintTable("print-table", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:39:18: constructor_uses_global_object: The constructor of global object "PrintTable" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintTable" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| static opt PrintGraph("print-graph", +# 38| desc("Print the LR graph for the grammar")); +# 39|-> static opt PrintTable("print-table", +# 40| desc("Print the LR table for the grammar")); +# 41| static opt Source("source", desc("Source file")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:41:25: constructor_uses_global_object: The constructor of global object "Source[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Source[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| static opt PrintTable("print-table", +# 40| desc("Print the LR table for the grammar")); +# 41|-> static opt Source("source", desc("Source file")); +# 42| static opt PrintSource("print-source", desc("Print token stream")); +# 43| static opt PrintTokens("print-tokens", desc("Print detailed token info")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:42:18: constructor_uses_global_object: The constructor of global object "PrintSource" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintSource" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| desc("Print the LR table for the grammar")); +# 41| static opt Source("source", desc("Source file")); +# 42|-> static opt PrintSource("print-source", desc("Print token stream")); +# 43| static opt PrintTokens("print-tokens", desc("Print detailed token info")); +# 44| static opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:43:18: constructor_uses_global_object: The constructor of global object "PrintTokens" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintTokens" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| static opt Source("source", desc("Source file")); +# 42| static opt PrintSource("print-source", desc("Print token stream")); +# 43|-> static opt PrintTokens("print-tokens", desc("Print detailed token info")); +# 44| static opt +# 45| PrintDirectiveTree("print-directive-tree", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:45:5: constructor_uses_global_object: The constructor of global object "PrintDirectiveTree" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintDirectiveTree" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| static opt PrintTokens("print-tokens", desc("Print detailed token info")); +# 44| static opt +# 45|-> PrintDirectiveTree("print-directive-tree", +# 46| desc("Print directive structure of source code")); +# 47| static opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:48:5: constructor_uses_global_object: The constructor of global object "StripDirectives" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StripDirectives" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| desc("Print directive structure of source code")); +# 47| static opt +# 48|-> StripDirectives("strip-directives", +# 49| desc("Strip directives and select conditional sections")); +# 50| static opt Disambiguate("disambiguate", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:50:18: constructor_uses_global_object: The constructor of global object "Disambiguate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Disambiguate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| StripDirectives("strip-directives", +# 49| desc("Strip directives and select conditional sections")); +# 50|-> static opt Disambiguate("disambiguate", +# 51| desc("Choose best tree from parse forest")); +# 52| static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:52:18: constructor_uses_global_object: The constructor of global object "PrintStatistics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintStatistics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| static opt Disambiguate("disambiguate", +# 51| desc("Choose best tree from parse forest")); +# 52|-> static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); +# 53| static opt PrintForest("print-forest", desc("Print parse forest")); +# 54| static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:53:18: constructor_uses_global_object: The constructor of global object "PrintForest" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintForest" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| desc("Choose best tree from parse forest")); +# 52| static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); +# 53|-> static opt PrintForest("print-forest", desc("Print parse forest")); +# 54| static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), +# 55| init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:54:18: constructor_uses_global_object: The constructor of global object "ForestAbbrev" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForestAbbrev" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); +# 53| static opt PrintForest("print-forest", desc("Print parse forest")); +# 54|-> static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), +# 55| init(true)); +# 56| static opt HTMLForest("html-forest", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:56:25: constructor_uses_global_object: The constructor of global object "HTMLForest[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HTMLForest[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), +# 55| init(true)); +# 56|-> static opt HTMLForest("html-forest", +# 57| desc("output file for HTML forest")); +# 58| static opt StartSymbol("start-symbol", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:58:25: constructor_uses_global_object: The constructor of global object "StartSymbol[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StartSymbol[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| static opt HTMLForest("html-forest", +# 57| desc("output file for HTML forest")); +# 58|-> static opt StartSymbol("start-symbol", +# 59| desc("Specify the start symbol to parse"), +# 60| init("translation-unit")); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:45:8: address_of: Taking address with "*__begin2" yields a singleton pointer. +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:45:8: assign: Assigning: "Tok" = "*__begin2". +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:50:7: callee_ptr_arith: Passing "Tok" to function "pair" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 48| else if (Tok.Pair < 0) { +# 49| ASSERT_FALSE(Stack.empty()) << Tok; +# 50|-> ASSERT_EQ(Stack.back(), Tok.pair()) +# 51| << *Stack.back() << " != " << *Tok.pair() << " = pair of " << Tok; +# 52| Stack.pop_back(); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:60:8: address_of: Taking address with "*__begin2" yields a singleton pointer. +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:60:8: assign: Assigning: "Tok" = "*__begin2". +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:83:5: callee_ptr_arith: Passing "Tok" to function "pair" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 81| }(); +# 82| EXPECT_EQ(Tok.Pair > 0, Want.first) << Tok; +# 83|-> EXPECT_EQ(Tok.pair()->Kind, Want.second) << Tok; +# 84| } +# 85| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:110:1: constructor_uses_global_object: The constructor of global object "clang::pseudo::Bracket_SimplePair_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pseudo::Bracket_SimplePair_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 108| } +# 109| +# 110|-> TEST(Bracket, SimplePair) { +# 111| verifyBrackets("^{ ^[ ^( ^) ^( ^) ^] ^}"); +# 112| verifyBrackets(") ^{ ^[ ^] ^} ("); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:87:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 85| +# 86| // Set up the command line options +# 87|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88| static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "Allocator" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "GlobalParser" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "fuzzer::TPC" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-apply-replacements/ApplyReplacementsTest.cpp:34:1: constructor_uses_global_object: The constructor of global object "clang::tooling::ApplyReplacementsTest_mergeDiagnosticsWithNoFixes_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::ApplyReplacementsTest_mergeDiagnosticsWithNoFixes_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 32| // Test to ensure diagnostics with no fixes, will be merged correctly +# 33| // before applying. +# 34|-> TEST(ApplyReplacementsTest, mergeDiagnosticsWithNoFixes) { +# 35| IntrusiveRefCntPtr DiagOpts(new DiagnosticOptions()); +# 36| DiagnosticsEngine Diagnostics( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:57:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitNamespaceInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitNamespaceInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 55| } +# 56| +# 57|-> TEST(BitcodeTest, emitNamespaceInfoBitcode) { +# 58| NamespaceInfo I; +# 59| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:75:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitRecordInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitRecordInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 73| } +# 74| +# 75|-> TEST(BitcodeTest, emitRecordInfoBitcode) { +# 76| RecordInfo I; +# 77| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:117:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitFunctionInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitFunctionInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 115| } +# 116| +# 117|-> TEST(BitcodeTest, emitFunctionInfoBitcode) { +# 118| FunctionInfo I; +# 119| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:137:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitMethodInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitMethodInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 135| } +# 136| +# 137|-> TEST(BitcodeTest, emitMethodInfoBitcode) { +# 138| FunctionInfo I; +# 139| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:159:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitEnumInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitEnumInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 157| } +# 158| +# 159|-> TEST(BitcodeTest, emitEnumInfoBitcode) { +# 160| EnumInfo I; +# 161| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:177:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitTypedefInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitTypedefInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 175| } +# 176| +# 177|-> TEST(BitcodeTest, emitTypedefInfoBitcode) { +# 178| TypedefInfo I; +# 179| I.Name = "MyInt"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:215:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInfoWithCommentBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInfoWithCommentBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 213| } +# 214| +# 215|-> TEST(SerializeTest, emitInfoWithCommentBitcode) { +# 216| FunctionInfo F; +# 217| F.Name = "F"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/GeneratorTest.cpp:18:1: constructor_uses_global_object: The constructor of global object "clang::doc::GeneratorTest_emitIndex_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::GeneratorTest_emitIndex_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 16| namespace doc { +# 17| +# 18|-> TEST(GeneratorTest, emitIndex) { +# 19| Index Idx; +# 20| auto InfoA = std::make_unique(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/GeneratorTest.cpp:73:1: constructor_uses_global_object: The constructor of global object "clang::doc::GeneratorTest_sortIndex_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::GeneratorTest_sortIndex_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 71| } +# 72| +# 73|-> TEST(GeneratorTest, sortIndex) { +# 74| Index Idx; +# 75| Idx.Children.emplace_back("b"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:32:3: var_decl: Declaring variable "CDCtx". +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:38:3: uninit_use: Using uninitialized value "CDCtx". Field "CDCtx.Idx.Path.InlineElts" is uninitialized. +# 36| "../share/clang/clang-doc-default-stylesheet.css"); +# 37| CDCtx.JsScripts.emplace_back("index.js"); +# 38|-> return CDCtx; +# 39| } +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:41:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitNamespaceHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitNamespaceHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 39| } +# 40| +# 41|-> TEST(HTMLGeneratorTest, emitNamespaceHTML) { +# 42| NamespaceInfo I; +# 43| I.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:145:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitRecordHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitRecordHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 143| } +# 144| +# 145|-> TEST(HTMLGeneratorTest, emitRecordHTML) { +# 146| RecordInfo I; +# 147| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:264:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitFunctionHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitFunctionHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 262| } +# 263| +# 264|-> TEST(HTMLGeneratorTest, emitFunctionHTML) { +# 265| FunctionInfo I; +# 266| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:318:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitEnumHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitEnumHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 316| } +# 317| +# 318|-> TEST(HTMLGeneratorTest, emitEnumHTML) { +# 319| EnumInfo I; +# 320| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:367:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitCommentHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitCommentHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 365| } +# 366| +# 367|-> TEST(HTMLGeneratorTest, emitCommentHTML) { +# 368| FunctionInfo I; +# 369| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:24:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitNamespaceMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitNamespaceMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 22| } +# 23| +# 24|-> TEST(MDGeneratorTest, emitNamespaceMD) { +# 25| NamespaceInfo I; +# 26| I.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:80:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitRecordMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitRecordMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 78| } +# 79| +# 80|-> TEST(MDGeneratorTest, emitRecordMD) { +# 81| RecordInfo I; +# 82| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:147:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitFunctionMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitFunctionMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 145| } +# 146| +# 147|-> TEST(MDGeneratorTest, emitFunctionMD) { +# 148| FunctionInfo I; +# 149| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:179:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitEnumMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitEnumMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 177| } +# 178| +# 179|-> TEST(MDGeneratorTest, emitEnumMD) { +# 180| EnumInfo I; +# 181| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:210:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitCommentMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitCommentMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 208| } +# 209| +# 210|-> TEST(MDGeneratorTest, emitCommentMD) { +# 211| FunctionInfo I; +# 212| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:16:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeNamespaceInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeNamespaceInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 14| namespace doc { +# 15| +# 16|-> TEST(MergeTest, mergeNamespaceInfos) { +# 17| NamespaceInfo One; +# 18| One.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:78:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeRecordInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeRecordInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 76| } +# 77| +# 78|-> TEST(MergeTest, mergeRecordInfos) { +# 79| RecordInfo One; +# 80| One.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:156:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeFunctionInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeFunctionInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 154| } +# 155| +# 156|-> TEST(MergeTest, mergeFunctionInfos) { +# 157| FunctionInfo One; +# 158| One.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:231:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeEnumInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeEnumInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 229| } +# 230| +# 231|-> TEST(MergeTest, mergeEnumInfos) { +# 232| EnumInfo One; +# 233| One.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:108:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitNamespaceInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitNamespaceInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 106| +# 107| // Test serialization of namespace declarations. +# 108|-> TEST(SerializeTest, emitNamespaceInfo) { +# 109| EmittedInfoList Infos; +# 110| ExtractInfosFromCode("namespace A { namespace B { void f() {} } }", 5, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:135:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitAnonymousNamespaceInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitAnonymousNamespaceInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 133| } +# 134| +# 135|-> TEST(SerializeTest, emitAnonymousNamespaceInfo) { +# 136| EmittedInfoList Infos; +# 137| ExtractInfosFromCode("namespace { }", 2, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:146:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 144| +# 145| // Test serialization of record declarations. +# 146|-> TEST(SerializeTest, emitRecordInfo) { +# 147| EmittedInfoList Infos; +# 148| ExtractInfosFromCode(R"raw(class E { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:263:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitEnumInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitEnumInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 261| +# 262| // Test serialization of enum declarations. +# 263|-> TEST(SerializeTest, emitEnumInfo) { +# 264| EmittedInfoList Infos; +# 265| ExtractInfosFromCode("enum E { X, Y }; enum class G { A, B };", 2, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:290:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitUndefinedRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitUndefinedRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 288| } +# 289| +# 290|-> TEST(SerializeTest, emitUndefinedRecordInfo) { +# 291| EmittedInfoList Infos; +# 292| ExtractInfosFromCode("class E;", 2, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:303:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitRecordMemberInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitRecordMemberInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 301| } +# 302| +# 303|-> TEST(SerializeTest, emitRecordMemberInfo) { +# 304| EmittedInfoList Infos; +# 305| ExtractInfosFromCode("struct E { int I; };", 2, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:318:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInternalRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInternalRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 316| } +# 317| +# 318|-> TEST(SerializeTest, emitInternalRecordInfo) { +# 319| EmittedInfoList Infos; +# 320| ExtractInfosFromCode("class E { class G {}; };", 4, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:342:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitPublicAnonymousNamespaceInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitPublicAnonymousNamespaceInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 340| } +# 341| +# 342|-> TEST(SerializeTest, emitPublicAnonymousNamespaceInfo) { +# 343| EmittedInfoList Infos; +# 344| ExtractInfosFromCode("namespace { class A; }", 0, /*Public=*/true, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:347:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitPublicFunctionInternalInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitPublicFunctionInternalInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 345| } +# 346| +# 347|-> TEST(SerializeTest, emitPublicFunctionInternalInfo) { +# 348| EmittedInfoList Infos; +# 349| ExtractInfosFromCode("int F() { class G {}; return 0; };", 1, /*Public=*/true, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:363:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInlinedFunctionInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInlinedFunctionInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 361| } +# 362| +# 363|-> TEST(SerializeTest, emitInlinedFunctionInfo) { +# 364| EmittedInfoList Infos; +# 365| ExtractInfosFromCode("inline void F(int I) { };", 1, /*Public=*/true, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:379:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInheritedRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInheritedRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 377| } +# 378| +# 379|-> TEST(SerializeTest, emitInheritedRecordInfo) { +# 380| EmittedInfoList Infos; +# 381| ExtractInfosFromCode(R"raw(class F { protected: void set(int N); }; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:521:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitModulePublicLFunctions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitModulePublicLFunctions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 519| } +# 520| +# 521|-> TEST(SerializeTest, emitModulePublicLFunctions) { +# 522| EmittedInfoList Infos; +# 523| std::vector Args; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:559:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitChildRecords_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitChildRecords_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 557| +# 558| // Test serialization of child records in namespaces and other records +# 559|-> TEST(SerializeTest, emitChildRecords) { +# 560| EmittedInfoList Infos; +# 561| ExtractInfosFromCode("class A { class B {}; }; namespace { class C {}; } ", 8, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:586:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitChildNamespaces_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitChildNamespaces_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 584| +# 585| // Test serialization of child namespaces +# 586|-> TEST(SerializeTest, emitChildNamespaces) { +# 587| EmittedInfoList Infos; +# 588| ExtractInfosFromCode("namespace A { namespace B { } }", 4, /*Public=*/false, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:604:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTests_emitTypedefs_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTests_emitTypedefs_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 602| } +# 603| +# 604|-> TEST(SerializeTests, emitTypedefs) { +# 605| EmittedInfoList Infos; +# 606| ExtractInfosFromCode("typedef int MyInt; using MyDouble = double;", 2, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:631:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTests_emitFunctionTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTests_emitFunctionTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 629| } +# 630| +# 631|-> TEST(SerializeTests, emitFunctionTemplate) { +# 632| EmittedInfoList Infos; +# 633| // A template and a specialization. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:671:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTests_emitClassTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTests_emitClassTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 669| } +# 670| +# 671|-> TEST(SerializeTests, emitClassTemplate) { +# 672| EmittedInfoList Infos; +# 673| // This will generate 2x the number of infos: each Record will be followed by + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:25:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitNamespaceYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitNamespaceYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 23| } +# 24| +# 25|-> TEST(YAMLGeneratorTest, emitNamespaceYAML) { +# 26| NamespaceInfo I; +# 27| I.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:80:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitRecordYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitRecordYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 78| } +# 79| +# 80|-> TEST(YAMLGeneratorTest, emitRecordYAML) { +# 81| RecordInfo I; +# 82| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:205:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitFunctionYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitFunctionYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 203| } +# 204| +# 205|-> TEST(YAMLGeneratorTest, emitFunctionYAML) { +# 206| FunctionInfo I; +# 207| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:270:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitSimpleEnumYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitSimpleEnumYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 268| // enum e { X }; +# 269| // } +# 270|-> TEST(YAMLGeneratorTest, emitSimpleEnumYAML) { +# 271| EnumInfo I; +# 272| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:311:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_enumTypedScopedEnumYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_enumTypedScopedEnumYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 309| // Tests the equivalent of: +# 310| // enum class e : short { X = FOO_BAR + 2 }; +# 311|-> TEST(YAMLGeneratorTest, enumTypedScopedEnumYAML) { +# 312| EnumInfo I; +# 313| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:343:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_enumTypedefYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_enumTypedefYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 341| } +# 342| +# 343|-> TEST(YAMLGeneratorTest, enumTypedefYAML) { +# 344| TypedefInfo I; +# 345| I.Name = "MyUsing"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:368:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitCommentYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitCommentYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 366| } +# 367| +# 368|-> TEST(YAMLGeneratorTest, emitCommentYAML) { +# 369| FunctionInfo I; +# 370| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:141:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_VariableSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_VariableSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 139| }; +# 140| +# 141|-> TEST_F(FindAllSymbolsTest, VariableSymbols) { +# 142| static const char Header[] = R"( +# 143| extern int xargc; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:171:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_ExternCSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_ExternCSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 169| } +# 170| +# 171|-> TEST_F(FindAllSymbolsTest, ExternCSymbols) { +# 172| static const char Header[] = R"( +# 173| extern "C" { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:198:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 196| } +# 197| +# 198|-> TEST_F(FindAllSymbolsTest, CXXRecordSymbols) { +# 199| static const char Header[] = R"( +# 200| struct Glob {}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:235:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbolsTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbolsTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 233| } +# 234| +# 235|-> TEST_F(FindAllSymbolsTest, CXXRecordSymbolsTemplate) { +# 236| static const char Header[] = R"( +# 237| template + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:262:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_DontIgnoreTemplatePartialSpecialization_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_DontIgnoreTemplatePartialSpecialization_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 260| } +# 261| +# 262|-> TEST_F(FindAllSymbolsTest, DontIgnoreTemplatePartialSpecialization) { +# 263| static const char Code[] = R"( +# 264| template class Class; // undefined + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:280:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_FunctionSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_FunctionSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 278| } +# 279| +# 280|-> TEST_F(FindAllSymbolsTest, FunctionSymbols) { +# 281| static const char Header[] = R"( +# 282| namespace na { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:327:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_NamespaceTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_NamespaceTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 325| } +# 326| +# 327|-> TEST_F(FindAllSymbolsTest, NamespaceTest) { +# 328| static const char Header[] = R"( +# 329| int X1; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:373:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_DecayedTypeTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_DecayedTypeTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 371| } +# 372| +# 373|-> TEST_F(FindAllSymbolsTest, DecayedTypeTest) { +# 374| static const char Header[] = "void DecayedFunc(int x[], int y[10]) {}"; +# 375| static const char Main[] = R"(int main() { DecayedFunc(nullptr, nullptr); })"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:383:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_CTypedefTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_CTypedefTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 381| } +# 382| +# 383|-> TEST_F(FindAllSymbolsTest, CTypedefTest) { +# 384| static const char Header[] = R"( +# 385| typedef unsigned size_t_; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:412:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_EnumTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_EnumTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 410| } +# 411| +# 412|-> TEST_F(FindAllSymbolsTest, EnumTest) { +# 413| static const char Header[] = R"( +# 414| enum Glob_E { G1, G2 }; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:485:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_IWYUPrivatePragmaTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_IWYUPrivatePragmaTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 483| } +# 484| +# 485|-> TEST_F(FindAllSymbolsTest, IWYUPrivatePragmaTest) { +# 486| static const char Header[] = R"( +# 487| // IWYU pragma: private, include "bar.h" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:502:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_MacroTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_MacroTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 500| } +# 501| +# 502|-> TEST_F(FindAllSymbolsTest, MacroTest) { +# 503| static const char Header[] = R"( +# 504| #define X + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:528:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_MacroTestWithIWYU_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_MacroTestWithIWYU_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 526| } +# 527| +# 528|-> TEST_F(FindAllSymbolsTest, MacroTestWithIWYU) { +# 529| static const char Header[] = R"( +# 530| // IWYU pragma: private, include "bar.h" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:555:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_NoFriendTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_NoFriendTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 553| } +# 554| +# 555|-> TEST_F(FindAllSymbolsTest, NoFriendTest) { +# 556| static const char Header[] = R"( +# 557| class WorstFriend { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryEngineTest.cpp:50:1: constructor_uses_global_object: The constructor of global object "QueryEngineTest_Basic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryEngineTest_Basic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 48| }; +# 49| +# 50|-> TEST_F(QueryEngineTest, Basic) { +# 51| DynTypedMatcher FnMatcher = functionDecl(); +# 52| DynTypedMatcher FooMatcher = functionDecl(hasName("foo1")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryEngineTest.cpp:138:1: constructor_uses_global_object: The constructor of global object "QueryEngineTest_LetAndMatch_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryEngineTest_LetAndMatch_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 136| } +# 137| +# 138|-> TEST_F(QueryEngineTest, LetAndMatch) { +# 139| EXPECT_TRUE(QueryParser::parse("let x \"foo1\"", S)->run(OS, S)); +# 140| EXPECT_EQ("", OS.str()); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:27:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_NoOp_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_NoOp_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 25| }; +# 26| +# 27|-> TEST_F(QueryParserTest, NoOp) { +# 28| QueryRef Q = parse(""); +# 29| EXPECT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:35:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Invalid_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Invalid_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 33| } +# 34| +# 35|-> TEST_F(QueryParserTest, Invalid) { +# 36| QueryRef Q = parse("foo"); +# 37| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:41:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Help_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Help_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 39| } +# 40| +# 41|-> TEST_F(QueryParserTest, Help) { +# 42| QueryRef Q = parse("help"); +# 43| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:50:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Quit_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Quit_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 48| } +# 49| +# 50|-> TEST_F(QueryParserTest, Quit) { +# 51| QueryRef Q = parse("quit"); +# 52| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:62:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Set_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Set_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 60| } +# 61| +# 62|-> TEST_F(QueryParserTest, Set) { +# 63| +# 64| bool HasIntrospection = tooling::NodeIntrospection::hasIntrospectionSupport(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:99:3: overrun-local: Overrunning array of 8 bytes at byte offset 15 by dereferencing pointer "llvm::cast(Q)->Var". +# 97| Q = parse("set output dump"); +# 98| ASSERT_TRUE(isa(Q)); +# 99|-> EXPECT_EQ(&QuerySession::DetailedASTOutput, cast(Q)->Var); +# 100| +# 101| Q = parse("set output detailed-ast"); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:103:3: overrun-local: Overrunning array of 8 bytes at byte offset 15 by dereferencing pointer "llvm::cast(Q)->Var". +# 101| Q = parse("set output detailed-ast"); +# 102| ASSERT_TRUE(isa(Q)); +# 103|-> EXPECT_EQ(&QuerySession::DetailedASTOutput, cast(Q)->Var); +# 104| +# 105| Q = parse("enable output detailed-ast"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:138:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Match_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Match_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 136| } +# 137| +# 138|-> TEST_F(QueryParserTest, Match) { +# 139| QueryRef Q = parse("match decl()"); +# 140| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:148:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_LetUnlet_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_LetUnlet_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 146| } +# 147| +# 148|-> TEST_F(QueryParserTest, LetUnlet) { +# 149| QueryRef Q = parse("let foo decl()"); +# 150| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:186:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Comment_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Comment_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 184| } +# 185| +# 186|-> TEST_F(QueryParserTest, Comment) { +# 187| QueryRef Q = parse("# let foo decl()"); +# 188| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:197:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Complete_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Complete_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 195| } +# 196| +# 197|-> TEST_F(QueryParserTest, Complete) { +# 198| std::vector Comps = +# 199| QueryParser::complete("", 0, QS); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:276:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Multiline_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Multiline_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 274| } +# 275| +# 276|-> TEST_F(QueryParserTest, Multiline) { +# 277| +# 278| // Single string with multiple commands + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:54:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_Builtin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_Builtin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 52| // ---------------------------------------------------------------------------- +# 53| +# 54|-> TEST(Values, Builtin) { +# 55| StringRef Snippet = "int target = 0;"; +# 56| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:65:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_TypedefBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_TypedefBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 63| runCheckOnCode(Snippet)); +# 64| } +# 65|-> TEST(Values, TypedefBuiltin) { +# 66| StringRef T = "typedef int MyInt;"; +# 67| StringRef S = "MyInt target = 0;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:80:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_TypedefBuiltinPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_TypedefBuiltinPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 78| runCheckOnCode(Cat(S))); +# 79| } +# 80|-> TEST(Values, TypedefBuiltinPointer) { +# 81| StringRef T = "typedef int* MyInt;"; +# 82| StringRef S = "MyInt target = nullptr;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:95:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_UsingBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_UsingBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 93| runCheckOnCode(Cat(S))); +# 94| } +# 95|-> TEST(Values, UsingBuiltin) { +# 96| StringRef T = "using MyInt = int;"; +# 97| StringRef S = "MyInt target = 0;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:110:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_UsingBuiltinPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_UsingBuiltinPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 108| runCheckOnCode(Cat(S))); +# 109| } +# 110|-> TEST(Values, UsingBuiltinPointer) { +# 111| StringRef T = "using MyInt = int*;"; +# 112| StringRef S = "MyInt target = nullptr;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:125:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_AutoValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_AutoValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 123| runCheckOnCode(Cat(S))); +# 124| } +# 125|-> TEST(Values, AutoValue) { +# 126| StringRef T = "int f() { return 42; }\n"; +# 127| StringRef S = "auto target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:140:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_AutoPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_AutoPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 138| runCheckOnCode(Cat(S))); +# 139| } +# 140|-> TEST(Values, AutoPointer) { +# 141| StringRef T = "int* f() { return nullptr; }\n"; +# 142| StringRef S = "auto target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:155:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_AutoReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_AutoReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 153| runCheckOnCode(Cat(S))); +# 154| } +# 155|-> TEST(Values, AutoReference) { +# 156| StringRef T = "static int global = 42; int& f() { return global; }\n"; +# 157| StringRef S = "auto target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:170:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_DeclTypeValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_DeclTypeValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 168| runCheckOnCode(Cat(S))); +# 169| } +# 170|-> TEST(Values, DeclTypeValue) { +# 171| StringRef T = "int f() { return 42; }\n"; +# 172| StringRef S = "decltype(f()) target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:185:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_DeclTypePointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_DeclTypePointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 183| runCheckOnCode(Cat(S))); +# 184| } +# 185|-> TEST(Values, DeclTypePointer) { +# 186| // The pointer itself will be changed to 'const'. There is no +# 187| // way to make the pointee 'const' with this syntax. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:202:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_DeclTypeReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_DeclTypeReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 200| runCheckOnCode(Cat(S))); +# 201| } +# 202|-> TEST(Values, DeclTypeReference) { +# 203| // Same as pointer, but the reference itself will be marked 'const'. +# 204| // This has no effect and will result in a warning afterwards. The + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:220:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_Parens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_Parens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 218| runCheckOnCode(Cat(S))); +# 219| } +# 220|-> TEST(Values, Parens) { +# 221| StringRef Snippet = "int ((target)) = 0;"; +# 222| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:238:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_Builtin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_Builtin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 236| // ---------------------------------------------------------------------------- +# 237| +# 238|-> TEST(Arrays, Builtin) { +# 239| StringRef Snippet = "int target[][1] = {{1}, {2}, {3}};"; +# 240| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:251:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_BuiltinParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_BuiltinParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 249| runCheckOnCode(Snippet)); +# 250| } +# 251|-> TEST(Arrays, BuiltinParens) { +# 252| StringRef Snippet = "int ((target))[][1] = {{1}, {2}, {3}};"; +# 253| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:264:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_Pointers_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_Pointers_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 262| runCheckOnCode(Snippet)); +# 263| } +# 264|-> TEST(Arrays, Pointers) { +# 265| StringRef Snippet = "int x; int* target[] = {&x, &x, &x};"; +# 266| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:277:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_PointerPointers_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_PointerPointers_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 275| runCheckOnCode(Snippet)); +# 276| } +# 277|-> TEST(Arrays, PointerPointers) { +# 278| StringRef Snippet = "int* x = nullptr; int** target[] = {&x, &x, &x};"; +# 279| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:290:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_PointersParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_PointersParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 288| runCheckOnCode(Snippet)); +# 289| } +# 290|-> TEST(Arrays, PointersParens) { +# 291| StringRef Snippet = "int x; int* (target)[] = {&x, &x, &x};"; +# 292| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:308:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_LValueBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_LValueBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 306| // ---------------------------------------------------------------------------- +# 307| +# 308|-> TEST(Reference, LValueBuiltin) { +# 309| StringRef Snippet = "int x = 42; int& target = x;"; +# 310| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:321:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_RValueBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_RValueBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 319| runCheckOnCode(Snippet)); +# 320| } +# 321|-> TEST(Reference, RValueBuiltin) { +# 322| StringRef Snippet = "int&& target = 42;"; +# 323| EXPECT_EQ("const int&& target = 42;", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:333:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_LValueToPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_LValueToPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 331| runCheckOnCode(Snippet)); +# 332| } +# 333|-> TEST(Reference, LValueToPointer) { +# 334| StringRef Snippet = "int* p; int *& target = p;"; +# 335| EXPECT_EQ("int* p; int * const& target = p;", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:345:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_LValueParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_LValueParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 343| runCheckOnCode(Snippet)); +# 344| } +# 345|-> TEST(Reference, LValueParens) { +# 346| StringRef Snippet = "int x = 42; int ((& target)) = x;"; +# 347| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:358:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_ToArray_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_ToArray_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 356| runCheckOnCode(Snippet)); +# 357| } +# 358|-> TEST(Reference, ToArray) { +# 359| StringRef ArraySnippet = "int a[4] = {1, 2, 3, 4};"; +# 360| StringRef Snippet = "int (&target)[4] = a;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:373:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_Auto_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_Auto_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 371| runCheckOnCode(Cat(Snippet))); +# 372| } +# 373|-> TEST(Reference, Auto) { +# 374| StringRef T = "static int global = 42; int& f() { return global; }\n"; +# 375| StringRef S = "auto& target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:393:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_SingleBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_SingleBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 391| // ---------------------------------------------------------------------------- +# 392| +# 393|-> TEST(Pointers, SingleBuiltin) { +# 394| StringRef Snippet = "int* target = nullptr;"; +# 395| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:406:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_MultiBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_MultiBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 404| runCheckOnCode(Snippet)); +# 405| } +# 406|-> TEST(Pointers, MultiBuiltin) { +# 407| StringRef Snippet = "int** target = nullptr;"; +# 408| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:419:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_ToArray_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_ToArray_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 417| runCheckOnCode(Snippet)); +# 418| } +# 419|-> TEST(Pointers, ToArray) { +# 420| StringRef ArraySnippet = "int a[4] = {1, 2, 3, 4};"; +# 421| StringRef Snippet = "int (*target)[4] = &a;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:434:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_Parens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_Parens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 432| runCheckOnCode(Cat(Snippet))); +# 433| } +# 434|-> TEST(Pointers, Parens) { +# 435| StringRef Snippet = "int ((**target)) = nullptr;"; +# 436| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:447:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_Auto_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_Auto_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 445| runCheckOnCode(Snippet)); +# 446| } +# 447|-> TEST(Pointers, Auto) { +# 448| StringRef T = "int* f() { return nullptr; }\n"; +# 449| StringRef S = "auto* target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:462:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_AutoParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_AutoParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 460| runCheckOnCode(Cat(S))); +# 461| } +# 462|-> TEST(Pointers, AutoParens) { +# 463| StringRef T = "int* f() { return nullptr; }\n"; +# 464| StringRef S = "auto (((* target))) = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:477:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_FunctionPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_FunctionPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 475| runCheckOnCode(Cat(S))); +# 476| } +# 477|-> TEST(Pointers, FunctionPointer) { +# 478| StringRef S = "int (*target)(float, int, double) = nullptr;"; +# 479| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:494:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_MemberFunctionPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_MemberFunctionPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 492| runCheckOnCode(S)); +# 493| } +# 494|-> TEST(Pointers, MemberFunctionPointer) { +# 495| StringRef T = "struct A { int f() { return 1; } };"; +# 496| StringRef S = "int (A::*target)() = &A::f;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:513:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_MemberDataPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_MemberDataPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 511| runCheckOnCode(Cat(S))); +# 512| } +# 513|-> TEST(Pointers, MemberDataPointer) { +# 514| StringRef T = "struct A { int member = 0; };"; +# 515| StringRef S = "int A::*target = &A::member;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:537:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Struct_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Struct_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 535| // ---------------------------------------------------------------------------- +# 536| +# 537|-> TEST(TagTypes, Struct) { +# 538| StringRef T = "struct Foo { int data; int method(); };\n"; +# 539| StringRef S = "struct Foo target{0};"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:596:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Class_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Class_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 594| runCheckOnCode(S)); +# 595| } +# 596|-> TEST(TagTypes, Class) { +# 597| StringRef T = "class Foo { int data; int method(); };\n"; +# 598| StringRef S = "class Foo target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:631:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Enum_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Enum_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 629| runCheckOnCode(Cat(S))); +# 630| } +# 631|-> TEST(TagTypes, Enum) { +# 632| StringRef T = "enum Foo { N_ONE, N_TWO, N_THREE };\n"; +# 633| StringRef S = "enum Foo target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:666:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Union_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Union_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 664| runCheckOnCode(Cat(S))); +# 665| } +# 666|-> TEST(TagTypes, Union) { +# 667| StringRef T = "union Foo { int yay; float nej; };\n"; +# 668| StringRef S = "union Foo target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:706:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_AllInMacro_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_AllInMacro_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 704| // ---------------------------------------------------------------------------- +# 705| +# 706|-> TEST(Macro, AllInMacro) { +# 707| StringRef T = "#define DEFINE_VARIABLE int target = 42\n"; +# 708| StringRef S = "DEFINE_VARIABLE;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:717:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroParameter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroParameter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 715| EXPECT_EQ(Cat("DEFINE_VARIABLE;"), runCheckOnCode(Cat(S))); +# 716| } +# 717|-> TEST(Macro, MacroParameter) { +# 718| StringRef T = "#define DEFINE_VARIABLE(X) int X = 42\n"; +# 719| StringRef S = "DEFINE_VARIABLE(target);"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:732:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroTypeValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroTypeValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 730| runCheckOnCode(Cat(S))); +# 731| } +# 732|-> TEST(Macro, MacroTypeValue) { +# 733| StringRef T = "#define BAD_TYPEDEF int\n"; +# 734| StringRef S = "BAD_TYPEDEF target = 42;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:747:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroTypePointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroTypePointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 745| runCheckOnCode(Cat(S))); +# 746| } +# 747|-> TEST(Macro, MacroTypePointer) { +# 748| StringRef T = "#define BAD_TYPEDEF int *\n"; +# 749| StringRef S = "BAD_TYPEDEF target = nullptr;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:764:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroTypeReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroTypeReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 762| runCheckOnCode(Cat(S))); +# 763| } +# 764|-> TEST(Macro, MacroTypeReference) { +# 765| StringRef T = "static int g = 42;\n#define BAD_TYPEDEF int&\n"; +# 766| StringRef S = "BAD_TYPEDEF target = g;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:782:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_Variable_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_Variable_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 780| } +# 781| // This failed in LLVM. +# 782|-> TEST(Macro, Variable) { +# 783| StringRef M = "#define DEBUG(X) do { if (1) { X; } } while (0)\n"; +# 784| StringRef F = "void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:794:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_RangeLoop_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_RangeLoop_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 792| runCheckOnCode(Cat(V))); +# 793| } +# 794|-> TEST(Macro, RangeLoop) { +# 795| StringRef M = "#define DEBUG(X) do { if (1) { X; }} while (false)\n"; +# 796| StringRef F = "void foo() { char array[] = {'a', 'b', 'c'}; "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:812:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_TemplateVariable_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_TemplateVariable_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 810| // ---------------------------------------------------------------------------- +# 811| +# 812|-> TEST(Template, TemplateVariable) { +# 813| StringRef T = "template T target = 3.1415;"; +# 814| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:825:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_FunctionValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_FunctionValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 823| runCheckOnCode(T)); +# 824| } +# 825|-> TEST(Template, FunctionValue) { +# 826| StringRef T = "template void f(T v) \n"; +# 827| StringRef S = "{ T target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:840:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_FunctionPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_FunctionPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 838| runCheckOnCode(Cat(S))); +# 839| } +# 840|-> TEST(Template, FunctionPointer) { +# 841| StringRef T = "template void f(T* v) \n"; +# 842| StringRef S = "{ T* target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:855:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_FunctionReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_FunctionReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 853| runCheckOnCode(Cat(S))); +# 854| } +# 855|-> TEST(Template, FunctionReference) { +# 856| StringRef T = "template void f(T& v) \n"; +# 857| StringRef S = "{ T& target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:870:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_MultiInstantiationsFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_MultiInstantiationsFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 868| runCheckOnCode(Cat(S))); +# 869| } +# 870|-> TEST(Template, MultiInstantiationsFunction) { +# 871| StringRef T = "template void f(T v) \n"; +# 872| StringRef S = "{ T target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:901:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_StructValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_StructValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 899| } +# 900| +# 901|-> TEST(Template, StructValue) { +# 902| StringRef T = "template struct S { void f(T& v) \n"; +# 903| StringRef S = "{ T target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:917:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_StructPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_StructPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 915| runCheckOnCode(Cat(S))); +# 916| } +# 917|-> TEST(Template, StructPointer) { +# 918| StringRef T = "template struct S { void f(T* v) \n"; +# 919| StringRef S = "{ T* target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:933:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_StructReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_StructReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 931| runCheckOnCode(Cat(S))); +# 932| } +# 933|-> TEST(Template, StructReference) { +# 934| StringRef T = "template struct S { void f(T& v) \n"; +# 935| StringRef S = "{ T& target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:949:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_DependentReturnFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_DependentReturnFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 947| runCheckOnCode(Cat(S))); +# 948| } +# 949|-> TEST(Template, DependentReturnFunction) { +# 950| StringRef TS = "template struct TS { using value_type = T; };"; +# 951| StringRef T = "template void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:965:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_DependentReturnPointerFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_DependentReturnPointerFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 963| runCheckOnCode(Cat(S))); +# 964| } +# 965|-> TEST(Template, DependentReturnPointerFunction) { +# 966| StringRef TS = "template struct TS { using value_type = T; };"; +# 967| StringRef T = "template void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:981:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_DependentReturnReferenceFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_DependentReturnReferenceFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 979| runCheckOnCode(Cat(S))); +# 980| } +# 981|-> TEST(Template, DependentReturnReferenceFunction) { +# 982| StringRef TS = "template struct TS { using value_type = T; };"; +# 983| StringRef T = "template void foo(T& f) "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:997:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_VectorLikeType_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_VectorLikeType_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 995| runCheckOnCode(Cat(S))); +# 996| } +# 997|-> TEST(Template, VectorLikeType) { +# 998| StringRef TS = "template struct TS { TS(const T&) {} }; "; +# 999| StringRef T = "void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1013:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_SpecializedTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_SpecializedTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1011| runCheckOnCode(Cat(S))); +# 1012| } +# 1013|-> TEST(Template, SpecializedTemplate) { +# 1014| StringRef TS = "template struct TS { TS(const T&) {} }; "; +# 1015| StringRef TS2 = "template <> struct TS { TS(const double&) {} }; "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1035:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjC_SimplePointers_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjC_SimplePointers_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1033| // ----------------------------------------------------------------------------- +# 1034| +# 1035|-> TEST(ObjC, SimplePointers) { +# 1036| StringRef S = "int * target = 0;"; +# 1037| EXPECT_EQ(runCheckOnCode(S, nullptr, "input.m"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1046:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjC_ClassPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjC_ClassPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1044| "int * const target = 0;"); +# 1045| } +# 1046|-> TEST(ObjC, ClassPointer) { +# 1047| StringRef TB = "@class Object;\nint main() {\n"; +# 1048| StringRef S = "Object *target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1062:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjC_InterfacePointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjC_InterfacePointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1060| Cat("Object *const target;")); +# 1061| } +# 1062|-> TEST(ObjC, InterfacePointer) { +# 1063| StringRef TB = "@interface I\n"; +# 1064| StringRef S = "- (void) foo: (int *) target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:69:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyDiagnosticConsumer_SortsErrors_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyDiagnosticConsumer_SortsErrors_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 67| } // namespace +# 68| +# 69|-> TEST(ClangTidyDiagnosticConsumer, SortsErrors) { +# 70| std::vector Errors; +# 71| runCheckOnCode("int a;", &Errors); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:78:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyDiagnosticConsumer_HandlesSourceRangeHighlight_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyDiagnosticConsumer_HandlesSourceRangeHighlight_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 76| } +# 77| +# 78|-> TEST(ClangTidyDiagnosticConsumer, HandlesSourceRangeHighlight) { +# 79| std::vector Errors; +# 80| runCheckOnCode("int abc;", &Errors); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyDiagnosticConsumer_InvalidSourceLocationRangesIgnored_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyDiagnosticConsumer_InvalidSourceLocationRangesIgnored_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST(ClangTidyDiagnosticConsumer, InvalidSourceLocationRangesIgnored) { +# 97| std::vector Errors; +# 98| runCheckOnCode("int x;", &Errors); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:29:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseLineFilter_EmptyFilter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseLineFilter_EmptyFilter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 27| namespace test { +# 28| +# 29|-> TEST(ParseLineFilter, EmptyFilter) { +# 30| ClangTidyGlobalOptions Options; +# 31| EXPECT_FALSE(parseLineFilter("", Options)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:37:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseLineFilter_InvalidFilter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseLineFilter_InvalidFilter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 35| } +# 36| +# 37|-> TEST(ParseLineFilter, InvalidFilter) { +# 38| ClangTidyGlobalOptions Options; +# 39| EXPECT_TRUE(!!parseLineFilter("asdf", Options)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:52:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseLineFilter_ValidFilter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseLineFilter_ValidFilter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 50| } +# 51| +# 52|-> TEST(ParseLineFilter, ValidFilter) { +# 53| ClangTidyGlobalOptions Options; +# 54| std::error_code Error = parseLineFilter( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:77:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_ValidConfiguration_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_ValidConfiguration_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 75| } +# 76| +# 77|-> TEST(ParseConfiguration, ValidConfiguration) { +# 78| llvm::ErrorOr Options = +# 79| parseConfiguration(llvm::MemoryBufferRef( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_ChecksSeparatedByNewlines_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_ChecksSeparatedByNewlines_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST(ParseConfiguration, ChecksSeparatedByNewlines) { +# 97| auto MemoryBuffer = llvm::MemoryBufferRef("Checks: |\n" +# 98| " -*,misc-*\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:110:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_MergeConfigurations_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_MergeConfigurations_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 108| } +# 109| +# 110|-> TEST(ParseConfiguration, MergeConfigurations) { +# 111| llvm::ErrorOr Options1 = +# 112| parseConfiguration(llvm::MemoryBufferRef(R"( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:227:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_CollectDiags_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_CollectDiags_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 225| using ::testing::UnorderedElementsAre; +# 226| +# 227|-> TEST(ParseConfiguration, CollectDiags) { +# 228| DiagCollecter Collector; +# 229| auto ParseWithDiags = [&](llvm::StringRef Buffer) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:315:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::CheckOptionsValidation_MissingOptions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::CheckOptionsValidation_MissingOptions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 313| namespace test { +# 314| +# 315|-> TEST(CheckOptionsValidation, MissingOptions) { +# 316| ClangTidyOptions Options; +# 317| ClangTidyContext Context(std::make_unique( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:330:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::CheckOptionsValidation_ValidIntOptions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::CheckOptionsValidation_ValidIntOptions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 328| } +# 329| +# 330|-> TEST(CheckOptionsValidation, ValidIntOptions) { +# 331| ClangTidyOptions Options; +# 332| auto &CheckOptions = Options.CheckOptions; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:395:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ValidConfiguration_ValidEnumOptions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ValidConfiguration_ValidEnumOptions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 393| } +# 394| +# 395|-> TEST(ValidConfiguration, ValidEnumOptions) { +# 396| +# 397| ClangTidyOptions Options; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:106:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstValueVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstValueVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 104| } +# 105| +# 106|-> TEST(ConstReferenceDeclRefExprsTest, ConstValueVar) { +# 107| RunTest<0>(R"( +# 108| void f(const S target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:139:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstRefVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstRefVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 137| } +# 138| +# 139|-> TEST(ConstReferenceDeclRefExprsTest, ConstRefVar) { +# 140| RunTest<0>(R"( +# 141| void f(const S& target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:171:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_DEBUGREMOVEME_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_DEBUGREMOVEME_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 169| } +# 170| +# 171|-> TEST(ConstReferenceDeclRefExprsTest, DEBUGREMOVEME) { +# 172| RunTest<0>(R"( +# 173| void f(S target, const S& other) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:179:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ValueVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ValueVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 177| } +# 178| +# 179|-> TEST(ConstReferenceDeclRefExprsTest, ValueVar) { +# 180| RunTest<0>(R"( +# 181| void f(S target, const S& other) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:218:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_RefVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_RefVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 216| } +# 217| +# 218|-> TEST(ConstReferenceDeclRefExprsTest, RefVar) { +# 219| RunTest<0>(R"( +# 220| void f(S& target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:256:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_PtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_PtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 254| } +# 255| +# 256|-> TEST(ConstReferenceDeclRefExprsTest, PtrVar) { +# 257| RunTest<1>(R"( +# 258| void f(S* target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:292:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 290| } +# 291| +# 292|-> TEST(ConstReferenceDeclRefExprsTest, ConstPtrVar) { +# 293| RunTest<1>(R"( +# 294| void f(const S* target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:326:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrPtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrPtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 324| } +# 325| +# 326|-> TEST(ConstReferenceDeclRefExprsTest, ConstPtrPtrVar) { +# 327| RunTest<2>(R"( +# 328| void f(const S** target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:356:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrConstPtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrConstPtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 354| } +# 355| +# 356|-> TEST(ConstReferenceDeclRefExprsTest, ConstPtrConstPtrVar) { +# 357| RunTest<2>(R"( +# 358| void f(const S* const* target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:12:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_SingleArgumentConstructorsOnly_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_SingleArgumentConstructorsOnly_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 10| namespace test { +# 11| +# 12|-> TEST(ExplicitConstructorCheckTest, SingleArgumentConstructorsOnly) { +# 13| EXPECT_NO_CHANGES(ExplicitConstructorCheck, "class C { C(); };"); +# 14| EXPECT_NO_CHANGES(ExplicitConstructorCheck, "class C { C(int i, int j); };"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:23:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_Basic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_Basic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 21| } +# 22| +# 23|-> TEST(ExplicitConstructorCheckTest, Basic) { +# 24| EXPECT_EQ("class C { explicit C(int i); };", +# 25| runCheckOnCode("class C { C(int i); };")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:28:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_DefaultParameters_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_DefaultParameters_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 26| } +# 27| +# 28|-> TEST(ExplicitConstructorCheckTest, DefaultParameters) { +# 29| EXPECT_EQ("class C { explicit C(int i, int j = 0); };", +# 30| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:34:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_OutOfLineDefinitions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_OutOfLineDefinitions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 32| } +# 33| +# 34|-> TEST(ExplicitConstructorCheckTest, OutOfLineDefinitions) { +# 35| EXPECT_EQ("class C { explicit C(int i); }; C::C(int i) {}", +# 36| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:40:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicit_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicit_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 38| } +# 39| +# 40|-> TEST(ExplicitConstructorCheckTest, RemoveExplicit) { +# 41| EXPECT_EQ("class A { A(const A&); };\n" +# 42| "class B { /*asdf*/ B(B&&); };\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:50:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicitWithMacros_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicitWithMacros_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 48| } +# 49| +# 50|-> TEST(ExplicitConstructorCheckTest, RemoveExplicitWithMacros) { +# 51| EXPECT_EQ( +# 52| "#define A(T) class T##Bar { explicit T##Bar(const T##Bar &b) {} };\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:84:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDeclarations_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDeclarations_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 82| }; +# 83| +# 84|-> TEST_F(GlobalNamesInHeadersCheckTest, UsingDeclarations) { +# 85| EXPECT_TRUE(runCheckOnCode("using std::string;", "foo.h")); +# 86| EXPECT_FALSE(runCheckOnCode("using std::string;", "foo.cpp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:94:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDirectives_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDirectives_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 92| } +# 93| +# 94|-> TEST_F(GlobalNamesInHeadersCheckTest, UsingDirectives) { +# 95| EXPECT_TRUE(runCheckOnCode("using namespace std;", "foo.h")); +# 96| EXPECT_FALSE(runCheckOnCode("using namespace std;", "foo.cpp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:104:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::GlobalNamesInHeadersCheckTest_RegressionAnonymousNamespace_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::GlobalNamesInHeadersCheckTest_RegressionAnonymousNamespace_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 102| } +# 103| +# 104|-> TEST_F(GlobalNamesInHeadersCheckTest, RegressionAnonymousNamespace) { +# 105| EXPECT_FALSE(runCheckOnCode("namespace {}", "foo.h")); +# 106| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/LLVMModuleTest.cpp:65:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::LLVMHeaderGuardCheckTest_FixHeaderGuards_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::LLVMHeaderGuardCheckTest_FixHeaderGuards_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 63| } // namespace +# 64| +# 65|-> TEST(LLVMHeaderGuardCheckTest, FixHeaderGuards) { +# 66| EXPECT_EQ("#ifndef LLVM_ADT_FOO_H\n" +# 67| "#define LLVM_ADT_FOO_H\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/LLVMModuleTest.cpp:302:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::IncludeOrderCheck_GTestHeaders_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::IncludeOrderCheck_GTestHeaders_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 300| } +# 301| +# 302|-> TEST(IncludeOrderCheck, GTestHeaders) { +# 303| EXPECT_EQ( +# 304| R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:67:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_AddNewAlias_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_AddNewAlias_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 65| } +# 66| +# 67|-> TEST(NamespaceAliaserTest, AddNewAlias) { +# 68| EXPECT_EQ("#include \"foo.h\"\n" +# 69| "void f() {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:77:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_ReuseAlias_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_ReuseAlias_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 75| } +# 76| +# 77|-> TEST(NamespaceAliaserTest, ReuseAlias) { +# 78| EXPECT_EQ( +# 79| "#include \"foo.h\"\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:86:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_AddsOnlyOneAlias_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_AddsOnlyOneAlias_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 84| } +# 85| +# 86|-> TEST(NamespaceAliaserTest, AddsOnlyOneAlias) { +# 87| EXPECT_EQ("#include \"foo.h\"\n" +# 88| "void f() {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_LocalConflict_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_LocalConflict_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST(NamespaceAliaserTest, LocalConflict) { +# 97| EXPECT_EQ("#include \"foo.h\"\n" +# 98| "void f() {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:106:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_GlobalConflict_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_GlobalConflict_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 104| } +# 105| +# 106|-> TEST(NamespaceAliaserTest, GlobalConflict) { +# 107| EXPECT_EQ("#include \"foo.h\"\n" +# 108| "namespace b = foo;\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ObjCModuleTest.cpp:19:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjCForbiddenSubclassing_AllowedSubclass_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjCForbiddenSubclassing_AllowedSubclass_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 17| namespace test { +# 18| +# 19|-> TEST(ObjCForbiddenSubclassing, AllowedSubclass) { +# 20| std::vector Errors; +# 21| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ObjCModuleTest.cpp:31:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjCForbiddenSubclassing_ForbiddenSubclass_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjCForbiddenSubclassing_ForbiddenSubclass_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 29| } +# 30| +# 31|-> TEST(ObjCForbiddenSubclassing, ForbiddenSubclass) { +# 32| std::vector Errors; +# 33| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OptionsProviderTest.cpp:19:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyOptionsProvider_InMemoryFileSystems_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyOptionsProvider_InMemoryFileSystems_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 17| namespace test { +# 18| +# 19|-> TEST(ClangTidyOptionsProvider, InMemoryFileSystems) { +# 20| llvm::IntrusiveRefCntPtr FileSystem( +# 21| new llvm::vfs::InMemoryFileSystem); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:137:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_UseCharCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_UseCharCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 135| } // namespace +# 136| +# 137|-> TEST(OverlappingReplacementsTest, UseCharCheckTest) { +# 138| const char Code[] = +# 139| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:156:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_IfFalseCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_IfFalseCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 154| } +# 155| +# 156|-> TEST(OverlappingReplacementsTest, IfFalseCheckTest) { +# 157| const char Code[] = +# 158| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:179:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_StartsWithCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_StartsWithCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 177| } +# 178| +# 179|-> TEST(OverlappingReplacementsTest, StartsWithCheckTest) { +# 180| const char Code[] = +# 181| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:204:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_EndsWithCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_EndsWithCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 202| } +# 203| +# 204|-> TEST(OverlappingReplacementsTest, EndsWithCheckTest) { +# 205| const char Code[] = +# 206| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:229:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementTest_ReplacementsDoNotOverlap_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementTest_ReplacementsDoNotOverlap_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 227| } +# 228| +# 229|-> TEST(OverlappingReplacementTest, ReplacementsDoNotOverlap) { +# 230| std::string Res; +# 231| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:271:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_ReplacementInsideOtherReplacement_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_ReplacementInsideOtherReplacement_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 269| } +# 270| +# 271|-> TEST(OverlappingReplacementsTest, ReplacementInsideOtherReplacement) { +# 272| std::string Res; +# 273| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:328:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacements_TwoReplacementsInsideOne_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacements_TwoReplacementsInsideOne_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 326| } +# 327| +# 328|-> TEST(OverlappingReplacements, TwoReplacementsInsideOne) { +# 329| std::string Res; +# 330| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:357:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_ApplyAtMostOneOfTheChangesWhenPartialOverlapping_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_ApplyAtMostOneOfTheChangesWhenPartialOverlapping_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 355| } +# 356| +# 357|-> TEST(OverlappingReplacementsTest, +# 358| ApplyAtMostOneOfTheChangesWhenPartialOverlapping) { +# 359| std::string Res; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:387:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_TwoErrorsHavePerfectOverlapping_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_TwoErrorsHavePerfectOverlapping_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 385| } +# 386| +# 387|-> TEST(OverlappingReplacementsTest, TwoErrorsHavePerfectOverlapping) { +# 388| std::string Res; +# 389| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:15:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_Basic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_Basic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 13| using readability::SimplifyBooleanExprCheck; +# 14| +# 15|-> TEST(NamespaceCommentCheckTest, Basic) { +# 16| EXPECT_EQ("namespace i {\n} // namespace i", +# 17| runCheckOnCode("namespace i {\n}")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:25:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_SingleLineNamespaces_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_SingleLineNamespaces_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 23| } +# 24| +# 25|-> TEST(NamespaceCommentCheckTest, SingleLineNamespaces) { +# 26| EXPECT_EQ( +# 27| "namespace i { namespace j { } }", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:31:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_CheckExistingComments_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_CheckExistingComments_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 29| } +# 30| +# 31|-> TEST(NamespaceCommentCheckTest, CheckExistingComments) { +# 32| EXPECT_EQ("namespace i { namespace j {\n" +# 33| "} /* namespace j */ } // namespace i\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:83:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_FixWrongComments_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_FixWrongComments_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 81| } +# 82| +# 83|-> TEST(NamespaceCommentCheckTest, FixWrongComments) { +# 84| EXPECT_EQ("namespace i { namespace jJ0_ {\n" +# 85| "} // namespace jJ0_\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:103:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_IfWithComments_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_IfWithComments_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 101| } +# 102| +# 103|-> TEST(BracesAroundStatementsCheckTest, IfWithComments) { +# 104| EXPECT_EQ("int main() {\n" +# 105| " if (false /*dummy token*/) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:140:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_If_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_If_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 138| } +# 139| +# 140|-> TEST(BracesAroundStatementsCheckTest, If) { +# 141| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 142| " if (false) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:241:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_IfElseWithShortStatements_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_IfElseWithShortStatements_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 239| } +# 240| +# 241|-> TEST(BracesAroundStatementsCheckTest, IfElseWithShortStatements) { +# 242| ClangTidyOptions Options; +# 243| Options.CheckOptions["test-check-0.ShortStatementLines"] = "1"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:275:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_For_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_For_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 273| } +# 274| +# 275|-> TEST(BracesAroundStatementsCheckTest, For) { +# 276| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 277| " for (;;) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:310:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_ForRange_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_ForRange_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 308| } +# 309| +# 310|-> TEST(BracesAroundStatementsCheckTest, ForRange) { +# 311| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 312| " int arr[4];\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:335:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_DoWhile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_DoWhile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 333| } +# 334| +# 335|-> TEST(BracesAroundStatementsCheckTest, DoWhile) { +# 336| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 337| " do {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:353:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_While_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_While_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 351| } +# 352| +# 353|-> TEST(BracesAroundStatementsCheckTest, While) { +# 354| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 355| " while (false) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:417:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_Nested_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_Nested_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 415| } +# 416| +# 417|-> TEST(BracesAroundStatementsCheckTest, Nested) { +# 418| EXPECT_EQ("int main() {\n" +# 419| " do { if (true) {}} while (false);\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:452:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_Macros_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_Macros_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 450| } +# 451| +# 452|-> TEST(BracesAroundStatementsCheckTest, Macros) { +# 453| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, +# 454| "#define IF(COND) if (COND) return -1;\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:489:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_ImplicitCastInReturn_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_ImplicitCastInReturn_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 487| EXPECT_EQ(Code, runCheckOnCode(Code, nullptr, "input.cc", \ +# 488| std::nullopt, Opts)) +# 489|-> TEST(BracesAroundStatementsCheckTest, ImplicitCastInReturn) { +# 490| ClangTidyOptions Opts; +# 491| Opts.CheckOptions["test-check-0.ShortStatementLines"] = "1"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:506:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::SimplifyBooleanExprCheckTest_CodeWithError_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::SimplifyBooleanExprCheckTest_CodeWithError_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 504| } +# 505| +# 506|-> TEST(SimplifyBooleanExprCheckTest, CodeWithError) { +# 507| // Fixes PR55557 +# 508| // Need to downgrade Wreturn-type from error as runCheckOnCode will fatal_exit + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/UsingInserterTest.cpp:71:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::UsingInserterTest_ReusesExisting_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::UsingInserterTest_ReusesExisting_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 69| } +# 70| +# 71|-> TEST(UsingInserterTest, ReusesExisting) { +# 72| EXPECT_EQ("#include \"foo.h\"\n" +# 73| "namespace {" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/UsingInserterTest.cpp:85:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::UsingInserterTest_ReusesExistingGlobal_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::UsingInserterTest_ReusesExistingGlobal_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 83| } +# 84| +# 85|-> TEST(UsingInserterTest, ReusesExistingGlobal) { +# 86| EXPECT_EQ("#include \"foo.h\"\n" +# 87| "using ::foo::func;\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/UsingInserterTest.cpp:99:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::UsingInserterTest_AvoidsConflict_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::UsingInserterTest_AvoidsConflict_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 97| } +# 98| +# 99|-> TEST(UsingInserterTest, AvoidsConflict) { +# 100| EXPECT_EQ("#include \"foo.h\"\n" +# 101| "namespace {" + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/APValue.h:367:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/include/clang/AST/APValue.h:369:5: uninit_use: Using uninitialized value "Result". Field "Result.Data" is uninitialized. +# 367| APValue Result; +# 368| Result.Kind = Indeterminate; +# 369|-> return Result; +# 370| } +# 371| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:376:7: var_decl: Declaring variable "Node". +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:378:7: uninit_use: Using uninitialized value "Node". Field "Node.Storage" is uninitialized. +# 376| DynTypedNode Node; +# 377| Node.NodeKind = ASTNodeKind::DenseMapInfo::getEmptyKey(); +# 378|-> return Node; +# 379| } +# 380| static inline DynTypedNode getTombstoneKey() { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:381:7: var_decl: Declaring variable "Node". +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:383:7: uninit_use: Using uninitialized value "Node". Field "Node.Storage" is uninitialized. +# 381| DynTypedNode Node; +# 382| Node.NodeKind = ASTNodeKind::DenseMapInfo::getTombstoneKey(); +# 383|-> return Node; +# 384| } +# 385| static unsigned getHashValue(const DynTypedNode &Val) { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclCXX.h:3288:5: address_of: Taking address with "&this->ExprWithTemporary" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/DeclCXX.h:3288:5: ptr_arith: Using "&this->ExprWithTemporary" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3286| // Iterators +# 3287| Stmt::child_range childrenExpr() { +# 3288|-> return Stmt::child_range(&ExprWithTemporary, &ExprWithTemporary + 1); +# 3289| } +# 3290| + +Error: RETURN_LOCAL (CWE-562): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclContextInternals.h:54:5: local_ptr_assign_local: Assigning: "NewTail" = "&NewHead" (address of local variable "NewHead"). +llvm-project-19.0.0.src/clang/include/clang/AST/DeclContextInternals.h:57:9: local_ptr_assign_ptr: Assigning: "NewLast" = "NewTail". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclContextInternals.h:92:7: return_local_addr_alias: Returning pointer "NewLast" which points to local variable "NewHead". +# 90| else { +# 91| assert(NewLast && NewLast->is() && "Not the tail?"); +# 92|-> return NewLast; +# 93| } +# 94| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:107:7: address_of: Taking address with "&this->D" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:107:7: ptr_arith: Using "&this->D" as an array. This might corrupt or misinterpret adjacent memory locations. +# 105| iterator end() { +# 106| if (isSingleDecl()) +# 107|-> return D ? &D+1 : nullptr; +# 108| DeclGroup &G = getDeclGroup(); +# 109| return &G[0] + G.size(); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:120:7: address_of: Taking address with "&this->D" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:120:7: ptr_arith: Using "&this->D" as an array. This might corrupt or misinterpret adjacent memory locations. +# 118| const_iterator end() const { +# 119| if (isSingleDecl()) +# 120|-> return D ? &D+1 : nullptr; +# 121| const DeclGroup &G = getDeclGroup(); +# 122| return &G[0] + G.size(); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:53:5: new_object: Calling single-object form of 'new': "new (C, DC, clang::OMPDeclarativeDirective::size(Clauses.size(), NumChildren)) clang::OMPAllocateDecl(DC, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:53:5: assign: Assigning: "Inst" = "new (C, DC, clang::OMPDeclarativeDirective::size(Clauses.size(), NumChildren)) clang::OMPAllocateDecl(DC, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:55:5: ptr_arith: Using "Inst" as an array. This might corrupt or misinterpret adjacent memory locations. +# 53| auto *Inst = new (C, DC, size(Clauses.size(), NumChildren)) +# 54| T(DC, std::forward(P)...); +# 55|-> Inst->Data = OMPChildren::Create(Inst + 1, Clauses, +# 56| /*AssociatedStmt=*/nullptr, NumChildren); +# 57| Inst->Data->setClauses(Clauses); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:65:5: new_object: Calling single-object form of 'new': "new (C, ID, clang::OMPDeclarativeDirective::size(NumClauses, NumChildren)) clang::OMPAllocateDecl(NULL, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:65:5: assign: Assigning: "Inst" = "new (C, ID, clang::OMPDeclarativeDirective::size(NumClauses, NumChildren)) clang::OMPAllocateDecl(NULL, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:67:5: ptr_arith: Using "Inst" as an array. This might corrupt or misinterpret adjacent memory locations. +# 65| auto *Inst = new (C, ID, size(NumClauses, NumChildren)) +# 66| T(nullptr, std::forward(P)...); +# 67|-> Inst->Data = OMPChildren::CreateEmpty( +# 68| Inst + 1, NumClauses, /*HasAssociatedStmt=*/false, NumChildren); +# 69| return Inst; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1153:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1153:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1151| llvm::APSInt getResultAsAPSInt() const; +# 1152| // Iterators +# 1153|-> child_range children() { return child_range(&SubExpr, &SubExpr+1); } +# 1154| const_child_range children() const { +# 1155| return const_child_range(&SubExpr, &SubExpr + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1738:28: address_of: Taking address with "&this->Val" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1738:28: ptr_arith: Using "&this->Val" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1736| +# 1737| // Iterators +# 1738|-> child_range children() { return child_range(&Val, &Val+1); } +# 1739| const_child_range children() const { +# 1740| return const_child_range(&Val, &Val + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:2318:28: address_of: Taking address with "&this->Val" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:2318:28: ptr_arith: Using "&this->Val" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2316| +# 2317| // Iterators +# 2318|-> child_range children() { return child_range(&Val, &Val+1); } +# 2319| const_child_range children() const { +# 2320| return const_child_range(&Val, &Val + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3405:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3405:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3403| +# 3404| // Iterators +# 3405|-> child_range children() { return child_range(&Base, &Base+1); } +# 3406| const_child_range children() const { +# 3407| return const_child_range(&Base, &Base + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3628:28: address_of: Taking address with "&this->Op" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3628:28: ptr_arith: Using "&this->Op" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3626| +# 3627| // Iterators +# 3628|-> child_range children() { return child_range(&Op, &Op+1); } +# 3629| const_child_range children() const { return const_child_range(&Op, &Op + 1); } +# 3630| }; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4419:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4419:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4417| +# 4418| // Iterators +# 4419|-> child_range children() { return child_range(&SubStmt, &SubStmt+1); } +# 4420| const_child_range children() const { +# 4421| return const_child_range(&SubStmt, &SubStmt + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4543:28: address_of: Taking address with "&this->SrcExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4543:28: ptr_arith: Using "&this->SrcExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4541| +# 4542| // Iterators +# 4543|-> child_range children() { return child_range(&SrcExpr, &SrcExpr+1); } +# 4544| const_child_range children() const { +# 4545| return const_child_range(&SrcExpr, &SrcExpr + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4708:28: address_of: Taking address with "&this->Val" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4708:28: ptr_arith: Using "&this->Val" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4706| +# 4707| // Iterators +# 4708|-> child_range children() { return child_range(&Val, &Val+1); } +# 4709| const_child_range children() const { +# 4710| return const_child_range(&Val, &Val + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6165:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6165:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 6163| +# 6164| // Iterators +# 6165|-> child_range children() { return child_range(&Base, &Base+1); } +# 6166| const_child_range children() const { +# 6167| return const_child_range(&Base, &Base + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6269:28: address_of: Taking address with "&this->SrcExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6269:28: ptr_arith: Using "&this->SrcExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 6267| +# 6268| // Iterators +# 6269|-> child_range children() { return child_range(&SrcExpr, &SrcExpr+1); } +# 6270| const_child_range children() const { +# 6271| return const_child_range(&SrcExpr, &SrcExpr + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:357:5: address_of: Taking address with "&this->SemanticForm" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:357:5: ptr_arith: Using "&this->SemanticForm" as an array. This might corrupt or misinterpret adjacent memory locations. +# 355| +# 356| child_range children() { +# 357|-> return child_range(&SemanticForm, &SemanticForm + 1); +# 358| } +# 359| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:833:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:833:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 831| } +# 832| +# 833|-> child_range children() { return child_range(&SubExpr, &SubExpr + 1); } +# 834| +# 835| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:910:5: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:910:5: assign: Assigning: "begin" = "reinterpret_cast(&this->Operand)". +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:911:5: ptr_arith: Using "begin" as an array. This might corrupt or misinterpret adjacent memory locations. +# 909| return child_range(child_iterator(), child_iterator()); +# 910| auto **begin = reinterpret_cast(&Operand); +# 911|-> return child_range(begin, begin + 1); +# 912| } +# 913| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1123:5: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1123:5: assign: Assigning: "begin" = "reinterpret_cast(&this->Operand)". +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1124:5: ptr_arith: Using "begin" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1122| return child_range(child_iterator(), child_iterator()); +# 1123| auto **begin = reinterpret_cast(&Operand); +# 1124|-> return child_range(begin, begin + 1); +# 1125| } +# 1126| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1249:5: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1249:5: ptr_arith: Using "&this->Operand" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1247| // Iterators +# 1248| child_range children() { +# 1249|-> return child_range(&Operand, Operand ? &Operand + 1 : &Operand); +# 1250| } +# 1251| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:2746:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:2746:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2744| +# 2745| // Iterators +# 2746|-> child_range children() { return child_range(&Base, &Base + 1); } +# 2747| +# 2748| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3520:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3520:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3518| +# 3519| // Iterators +# 3520|-> child_range children() { return child_range(&SubExpr, &SubExpr + 1); } +# 3521| +# 3522| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3907:5: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3907:5: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3905| if (isImplicitAccess()) +# 3906| return child_range(child_iterator(), child_iterator()); +# 3907|-> return child_range(&Base, &Base + 1); +# 3908| } +# 3909| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4076:5: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4076:5: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4074| if (isImplicitAccess()) +# 4075| return child_range(child_iterator(), child_iterator()); +# 4076|-> return child_range(&Base, &Base + 1); +# 4077| } +# 4078| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4149:28: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4149:28: ptr_arith: Using "&this->Operand" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4147| +# 4148| // Iterators +# 4149|-> child_range children() { return child_range(&Operand, &Operand + 1); } +# 4150| +# 4151| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4532:28: address_of: Taking address with "&this->Replacement" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4532:28: ptr_arith: Using "&this->Replacement" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4530| +# 4531| // Iterators +# 4532|-> child_range children() { return child_range(&Replacement, &Replacement + 1); } +# 4533| +# 4534| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:75:28: address_of: Taking address with "&this->String" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:75:28: ptr_arith: Using "&this->String" as an array. This might corrupt or misinterpret adjacent memory locations. +# 73| +# 74| // Iterators +# 75|-> child_range children() { return child_range(&String, &String+1); } +# 76| +# 77| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:166:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:166:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 164| +# 165| // Iterators +# 166|-> child_range children() { return child_range(&SubExpr, &SubExpr+1); } +# 167| +# 168| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:604:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:604:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 602| +# 603| // Iterators +# 604|-> child_range children() { return child_range(&Base, &Base+1); } +# 605| +# 606| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1542:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1542:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1540| +# 1541| // Iterators +# 1542|-> child_range children() { return child_range(&Base, &Base+1); } +# 1543| +# 1544| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1605:28: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1605:28: ptr_arith: Using "&this->Operand" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1603| bool shouldCopy() const { return ObjCIndirectCopyRestoreExprBits.ShouldCopy; } +# 1604| +# 1605|-> child_range children() { return child_range(&Operand, &Operand+1); } +# 1606| +# 1607| const_child_range children() const { + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/IgnoreExpr.h:38:5: move: "Fns" is moved (indicated by "std::forward(Fns)"). +llvm-project-19.0.0.src/clang/include/clang/AST/IgnoreExpr.h:38:5: use_after_move: "Fns" is used after it has been already moved. +# 36| while (E != LastE) { +# 37| LastE = E; +# 38|-> E = detail::IgnoreExprNodesImpl(E, std::forward(Fns)...); +# 39| } +# 40| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:604:28: address_of: Taking address with "&this->Condition" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:604:28: ptr_arith: Using "&this->Condition" as an array. This might corrupt or misinterpret adjacent memory locations. +# 602| SourceLocation getNameModifierLoc() const { return NameModifierLoc; } +# 603| +# 604|-> child_range children() { return child_range(&Condition, &Condition + 1); } +# 605| +# 606| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:1901:28: address_of: Taking address with "&this->NumForLoops" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:1901:28: ptr_arith: Using "&this->NumForLoops" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1899| const Expr *getLoopCounter(unsigned NumLoop) const; +# 1900| +# 1901|-> child_range children() { return child_range(&NumForLoops, &NumForLoops + 1); } +# 1902| +# 1903| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ParentMapContext.h:113:5: address_of: Taking address with "&(*this).SingleNode" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ParentMapContext.h:113:5: ptr_arith: Using "&(*this).SingleNode" as an array. This might corrupt or misinterpret adjacent memory locations. +# 111| +# 112| const DynTypedNode *end() const { +# 113|-> return !IsSingleNode ? Nodes.end() : &SingleNode + 1; +# 114| } +# 115| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:1983:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:1983:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1981| +# 1982| // Iterators +# 1983|-> child_range children() { return child_range(&SubStmt, &SubStmt + 1); } +# 1984| +# 1985| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2061:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2061:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2059| SourceLocation getEndLoc() const LLVM_READONLY { return SubStmt->getEndLoc();} +# 2060| +# 2061|-> child_range children() { return child_range(&SubStmt, &SubStmt + 1); } +# 2062| +# 2063| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2124:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2124:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2122| SourceLocation getEndLoc() const LLVM_READONLY { return SubStmt->getEndLoc();} +# 2123| +# 2124|-> child_range children() { return child_range(&SubStmt, &SubStmt + 1); } +# 2125| +# 2126| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:3088:7: address_of: Taking address with "&this->RetExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:3088:7: ptr_arith: Using "&this->RetExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3086| child_range children() { +# 3087| if (RetExpr) +# 3088|-> return child_range(&RetExpr, &RetExpr + 1); +# 3089| return child_range(child_iterator(), child_iterator()); +# 3090| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/StmtObjC.h:119:28: address_of: Taking address with "&this->Body" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/StmtObjC.h:119:28: ptr_arith: Using "&this->Body" as an array. This might corrupt or misinterpret adjacent memory locations. +# 117| } +# 118| +# 119|-> child_range children() { return child_range(&Body, &Body + 1); } +# 120| +# 121| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/StmtOpenACC.h:98:7: address_of: Taking address with "&this->AssociatedStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/StmtOpenACC.h:98:7: ptr_arith: Using "&this->AssociatedStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 96| child_range children() { +# 97| if (getAssociatedStmt()) +# 98|-> return child_range(&AssociatedStmt, &AssociatedStmt + 1); +# 99| return child_range(child_iterator(), child_iterator()); +# 100| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/ExtractAPI/ExtractAPIVisitor.h:172:5: var_decl: Declaring variable "Bases". +llvm-project-19.0.0.src/clang/include/clang/ExtractAPI/ExtractAPIVisitor.h:194:5: uninit_use: Using uninitialized value "Bases". Field "Bases.InlineElts" is uninitialized. +# 192| Bases.emplace_back(BaseClass); +# 193| } +# 194|-> return Bases; +# 195| } +# 196| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Frontend/CommandLineSourceLoc.h:34:5: var_decl: Declaring variable "PSL". +llvm-project-19.0.0.src/clang/include/clang/Frontend/CommandLineSourceLoc.h:50:5: uninit_use: Using uninitialized value "PSL". Field "PSL.Line" is uninitialized. +# 48| } +# 49| +# 50|-> return PSL; +# 51| } +# 52| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1670:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1680:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1678| I.Ptr.AtomicQualLoc = AtomicQualLoc; +# 1679| I.Ptr.UnalignedQualLoc = UnalignedQualLoc; +# 1680|-> return I; +# 1681| } +# 1682| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1686:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1691:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1689| I.Ref.HasRestrict = (TypeQuals & DeclSpec::TQ_restrict) != 0; +# 1690| I.Ref.LValueRef = lvalue; +# 1691|-> return I; +# 1692| } +# 1693| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1698:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1706:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1704| I.Arr.isStar = isStar; +# 1705| I.Arr.NumElts = NumElts; +# 1706|-> return I; +# 1707| } +# 1708| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1740:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1744:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1742| I.Loc = Loc; +# 1743| I.Cls.TypeQuals = TypeQuals; +# 1744|-> return I; +# 1745| } +# 1746| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1750:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1754:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1752| I.Loc = Loc; +# 1753| I.Cls.TypeQuals = TypeQuals; +# 1754|-> return I; +# 1755| } +# 1756| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1761:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1769:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1767| I.Mem.TypeQuals = TypeQuals; +# 1768| new (I.Mem.ScopeMem) CXXScopeSpec(SS); +# 1769|-> return I; +# 1770| } +# 1771| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1775:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1779:5: uninit_use: Using uninitialized value "I". Field "I" is uninitialized. +# 1777| I.Loc = LParenLoc; +# 1778| I.EndLoc = RParenLoc; +# 1779|-> return I; +# 1780| } +# 1781| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:225:3: var_decl: Declaring variable "APINotes". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:293:9: uninit_use: Using uninitialized value "APINotes". Field "APINotes.InlineElts" is uninitialized. +# 291| if (auto File = findAPINotesFile(*SearchDir, ModuleName)) { +# 292| APINotes.push_back(*File); +# 293|-> return APINotes; +# 294| } +# 295| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:225:3: var_decl: Declaring variable "APINotes". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:299:3: uninit_use: Using uninitialized value "APINotes". Field "APINotes.InlineElts" is uninitialized. +# 297| +# 298| // Didn't find any API notes. +# 299|-> return APINotes; +# 300| } +# 301| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:338:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 336| Results.append(getCurrentModuleReaders().begin(), +# 337| getCurrentModuleReaders().end()); +# 338|-> return Results; +# 339| } +# 340| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:343:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 341| // If we're not allowed to implicitly load API notes files, we're done. +# 342| if (!ImplicitAPINotes) +# 343|-> return Results; +# 344| +# 345| // If we don't have source location information, we're done. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:347:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 345| // If we don't have source location information, we're done. +# 346| if (Loc.isInvalid()) +# 347|-> return Results; +# 348| +# 349| // API notes are associated with the expansion location. Retrieve the + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:354:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 352| FileID ID = SM.getFileID(ExpansionLoc); +# 353| if (ID.isInvalid()) +# 354|-> return Results; +# 355| OptionalFileEntryRef File = SM.getFileEntryRefForID(ID); +# 356| if (!File) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:357:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 355| OptionalFileEntryRef File = SM.getFileEntryRefForID(ID); +# 356| if (!File) +# 357|-> return Results; +# 358| +# 359| // Look for API notes in the directory corresponding to this file, or one of + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:462:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 460| Readers[Visited] = Dir ? ReaderEntry(*Dir) : ReaderEntry(); +# 461| +# 462|-> return Results; +# 463| } +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:462:3: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:81:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:92:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 90| Result.push_back({version, UnversionedData}); +# 91| } +# 92|-> return Result; +# 93| } +# 94| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:414:5: var_decl: Declaring variable "Key". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:421:5: uninit_use: Using uninitialized value "Key". Field "Key.Identifiers.InlineElts" is uninitialized. +# 419| endian::readNext(Data)); +# 420| } +# 421|-> return Key; +# 422| } +# 423| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:167:60: uninit_use_in_call: Using uninitialized value "I.DGE" when calling "operator ++". +# 165| +# 166| for (Stmt::child_iterator +# 167|-> I = S->body_begin(), E = S->body_end(); I != E; ++I) { +# 168| Stmt *child = getEssential(*I); +# 169| if (DeclStmt *DclS = dyn_cast(child)) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:182:17: uninit_use: Using uninitialized value "I". Field "I.DGE" is uninitialized. +# 180| Scopes.back().PoolVar = VD; +# 181| Scopes.back().CompoundParent = S; +# 182|-> Scopes.back().Begin = I; +# 183| } +# 184| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:197:15: uninit_use: Using uninitialized value "I". Field "I.DGE" is uninitialized. +# 195| Scopes.back().PoolVar = VD; +# 196| Scopes.back().CompoundParent = S; +# 197|-> Scopes.back().Begin = I; +# 198| } +# 199| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:208:9: uninit_use: Using uninitialized value "I". Field "I.DGE" is uninitialized. +# 206| if (isPoolDrain(Scopes.back().PoolVar, child)) { +# 207| PoolScope &scope = Scopes.back(); +# 208|-> scope.End = I; +# 209| handlePoolScope(scope, S); +# 210| Scopes.pop_back(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:287:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:291:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 289| data.Loc = loc; +# 290| data.Text1 = text; +# 291|-> CachedActions.push_back(data); +# 292| } +# 293| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:297:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:301:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 299| data.Loc = loc; +# 300| data.Text1 = text; +# 301|-> CachedActions.push_back(data); +# 302| } +# 303| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:306:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:309:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 307| data.Kind = Act_Remove; +# 308| data.R1 = range; +# 309|-> CachedActions.push_back(data); +# 310| } +# 311| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:314:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:319:3: uninit_use_in_call: Using uninitialized value "data". Field "data.DiagIDs.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 317| S = E->IgnoreImplicit(); // important for uniquing +# 318| data.S = S; +# 319|-> CachedActions.push_back(data); +# 320| } +# 321| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:332:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:336:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 334| data.R1 = range; +# 335| data.R2 = replacementRange; +# 336|-> CachedActions.push_back(data); +# 337| } +# 338| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:343:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:348:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 346| data.Text1 = text; +# 347| data.Text2 = replacementText; +# 348|-> CachedActions.push_back(data); +# 349| } +# 350| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:362:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:366:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 364| data.R1 = range; +# 365| data.Loc = parentIndent; +# 366|-> CachedActions.push_back(data); +# 367| } +# 368| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:375:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:379:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 377| data.R1 = range; +# 378| data.DiagIDs.append(IDs.begin(), IDs.end()); +# 379|-> CachedActions.push_back(data); +# 380| return true; +# 381| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:311:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:355:7: uninit_use_in_call: Using uninitialized value "this->Data" when calling "getArrayInitializedElt". +# 353| MakeArray(RHS.getArrayInitializedElts(), RHS.getArraySize()); +# 354| for (unsigned I = 0, N = RHS.getArrayInitializedElts(); I != N; ++I) +# 355|-> getArrayInitializedElt(I) = RHS.getArrayInitializedElt(I); +# 356| if (RHS.hasArrayFiller()) +# 357| getArrayFiller() = RHS.getArrayFiller(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:311:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:362:7: uninit_use_in_call: Using uninitialized value "this->Data" when calling "getStructBase". +# 360| MakeStruct(RHS.getStructNumBases(), RHS.getStructNumFields()); +# 361| for (unsigned I = 0, N = RHS.getStructNumBases(); I != N; ++I) +# 362|-> getStructBase(I) = RHS.getStructBase(I); +# 363| for (unsigned I = 0, N = RHS.getStructNumFields(); I != N; ++I) +# 364| getStructField(I) = RHS.getStructField(I); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:171:3: var_decl: Declaring variable "Locations". +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:212:3: uninit_use: Using uninitialized value "Locations". Field "Locations.InlineElts" is uninitialized. +# 210| } +# 211| +# 212|-> return Locations; +# 213| } +# 214| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:12634:3: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:12638:3: uninit_use: Using uninitialized value "R". Field "R.InlineElts" is uninitialized. +#12636| assert(!Different); +#12637| (void)Different; +#12638|-> return R; +#12639| } +#12640| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:13349:3: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:13358:3: uninit_use: Using uninitialized value "R". Field "R.InlineElts" is uninitialized. +#13356| T = NT.split(); +#13357| } +#13358|-> return R; +#13359| } +#13360| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:111:5: var_decl: Declaring variable "Redecls". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:118:5: uninit_use: Using uninitialized value "Redecls". Field "Redecls.InlineElts" is uninitialized. +# 116| Redecls.push_back(D->getFirstDecl()); +# 117| std::reverse(Redecls.begin(), Redecls.end()); +# 118|-> return Redecls; +# 119| } +# 120| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10262:5: uninit_use_in_call: Using uninitialized value "((clang::APValue::Arr const *)(char const *)&Result.Data)->Elts" when calling "operator ()". +#10260| Result.MakeArray(FromValue.getArrayInitializedElts(), +#10261| FromValue.getArraySize()); +#10262|-> ImportLoop(((const APValue::Arr *)(const char *)&FromValue.Data)->Elts, +#10263| ((const APValue::Arr *)(const char *)&Result.Data)->Elts, +#10264| FromValue.getArrayInitializedElts()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10269:5: uninit_use_in_call: Using uninitialized value "((clang::APValue::StructData const *)(char const *)&Result.Data)->Elts" when calling "operator ()". +#10267| Result.MakeStruct(FromValue.getStructNumBases(), +#10268| FromValue.getStructNumFields()); +#10269|-> ImportLoop( +#10270| ((const APValue::StructData *)(const char *)&FromValue.Data)->Elts, +#10271| ((const APValue::StructData *)(const char *)&Result.Data)->Elts, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10279:7: uninit_use_in_call: Using uninitialized value "Result.Data" when calling "~APValue". +#10277| APValue ImpValue = importChecked(Err, FromValue.getUnionValue()); +#10278| if (Err) +#10279|-> return std::move(Err); +#10280| Result.setUnion(cast(ImpFDecl), ImpValue); +#10281| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10389:3: uninit_use_in_call: Using uninitialized value "Result.Data" when calling "Expected". +#10387| if (Err) +#10388| return std::move(Err); +#10389|-> return Result; +#10390| } +#10391| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Availability.cpp:24:3: var_decl: Declaring variable "Availability". +llvm-project-19.0.0.src/clang/lib/AST/Availability.cpp:45:3: uninit_use: Using uninitialized value "Availability". Field "Availability.Domain.InlineElts" is uninitialized. +# 43| Availability.UnconditionallyDeprecated = true; +# 44| } +# 45|-> return Availability; +# 46| } +# 47| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:3105:3: new_object: Calling single-object form of 'new': "new (Context->Allocate(Size, 8U)) clang::FunctionDecl::DefaultedOrDeletedFunctionInfo". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:3105:3: assign: Assigning: "Info" = "new (Context->Allocate(Size, 8U)) clang::FunctionDecl::DefaultedOrDeletedFunctionInfo". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:3110:3: callee_ptr_arith: Passing "Info" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3108| Info->HasDeletedMessage = DeletedMessage != nullptr; +# 3109| +# 3110|-> std::uninitialized_copy(Lookups.begin(), Lookups.end(), +# 3111| Info->getTrailingObjects()); +# 3112| if (DeletedMessage) + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5292:3: new_object: Calling single-object form of 'new': "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(Arg.size() + 1UL)) clang::PragmaCommentDecl(DC, CommentLoc, CommentKind)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5292:3: assign: Assigning: "PCD" = "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(Arg.size() + 1UL)) clang::PragmaCommentDecl(DC, CommentLoc, CommentKind)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5295:3: callee_ptr_arith: Passing "PCD" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 5293| new (C, DC, additionalSizeToAlloc(Arg.size() + 1)) +# 5294| PragmaCommentDecl(DC, CommentLoc, CommentKind); +# 5295|-> memcpy(PCD->getTrailingObjects(), Arg.data(), Arg.size()); +# 5296| PCD->getTrailingObjects()[Arg.size()] = '\0'; +# 5297| return PCD; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5314:3: new_object: Calling single-object form of 'new': "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(ValueStart + Value.size() + 1UL)) clang::PragmaDetectMismatchDecl(DC, Loc, ValueStart)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5314:3: assign: Assigning: "PDMD" = "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(ValueStart + Value.size() + 1UL)) clang::PragmaDetectMismatchDecl(DC, Loc, ValueStart)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5317:3: callee_ptr_arith: Passing "PDMD" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 5315| new (C, DC, additionalSizeToAlloc(ValueStart + Value.size() + 1)) +# 5316| PragmaDetectMismatchDecl(DC, Loc, ValueStart); +# 5317|-> memcpy(PDMD->getTrailingObjects(), Name.data(), Name.size()); +# 5318| PDMD->getTrailingObjects()[Name.size()] = '\0'; +# 5319| memcpy(PDMD->getTrailingObjects() + ValueStart, Value.data(), + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/DeclBase.cpp:109:5: new_object: Calling single-object form of 'new': "new (Buffer) clang::Module *ParentModule". +llvm-project-19.0.0.src/clang/lib/AST/DeclBase.cpp:109:5: ptr_arith: Using "new (Buffer) clang::Module *ParentModule" as an array. This might corrupt or misinterpret adjacent memory locations. +# 107| auto *ParentModule = +# 108| Parent ? cast(Parent)->getOwningModule() : nullptr; +# 109|-> return new (Buffer) Module*(ParentModule) + 1; +# 110| } +# 111| return ::operator new(Size + Extra, Ctx); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3227:3: new_object: Calling single-object form of 'new': "new (C, ID, Extra) clang::UsingPackDecl(NULL, NULL, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3227:3: assign: Assigning: "Result" = "new (C, ID, Extra) clang::UsingPackDecl(NULL, NULL, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3230:3: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3228| new (C, ID, Extra) UsingPackDecl(nullptr, nullptr, std::nullopt); +# 3229| Result->NumExpansions = NumExpansions; +# 3230|-> auto *Trail = Result->getTrailingObjects(); +# 3231| for (unsigned I = 0; I != NumExpansions; ++I) +# 3232| new (Trail + I) NamedDecl*(nullptr); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3375:3: new_object: Calling single-object form of 'new': "new (C, ID, Extra) clang::DecompositionDecl(C, NULL, clang::SourceLocation(), clang::SourceLocation(), clang::QualType(), NULL, (clang::StorageClass)0, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3375:3: assign: Assigning: "Result" = "new (C, ID, Extra) clang::DecompositionDecl(C, NULL, clang::SourceLocation(), clang::SourceLocation(), clang::QualType(), NULL, (clang::StorageClass)0, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3380:3: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3378| // Set up and clean out the bindings array. +# 3379| Result->NumBindings = NumBindings; +# 3380|-> auto *Trail = Result->getTrailingObjects(); +# 3381| for (unsigned I = 0; I != NumBindings; ++I) +# 3382| new (Trail + I) BindingDecl*(nullptr); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3497:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), 0U, 4U)". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3497:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 3495| using llvm::APInt; +# 3496| using llvm::APSInt; +# 3497|-> APVal = APValue(APValue::UninitStruct(), 0, 4); +# 3498| APVal.getStructField(0) = APValue(APSInt(APInt(32, PartVal.Part1), true)); +# 3499| APVal.getStructField(1) = APValue(APSInt(APInt(16, PartVal.Part2), true)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3501:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 8U, 8U)". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3501:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 3499| APVal.getStructField(1) = APValue(APSInt(APInt(16, PartVal.Part2), true)); +# 3500| APVal.getStructField(2) = APValue(APSInt(APInt(16, PartVal.Part3), true)); +# 3501|-> APValue &Arr = APVal.getStructField(3) = +# 3502| APValue(APValue::UninitArray(), 8, 8); +# 3503| for (unsigned I = 0; I != 8; ++I) { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2088:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::ImplicitCastExpr(T, Kind, Operand, PathSize, FPO, VK)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2088:3: assign: Assigning: "E" = "new (Buffer) clang::ImplicitCastExpr(T, Kind, Operand, PathSize, FPO, VK)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2091:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2089| new (Buffer) ImplicitCastExpr(T, Kind, Operand, PathSize, FPO, VK); +# 2090| if (PathSize) +# 2091|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 2092| E->getTrailingObjects()); +# 2093| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2115:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CStyleCastExpr(T, VK, K, Op, PathSize, FPO, WrittenTy, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2115:3: assign: Assigning: "E" = "new (Buffer) clang::CStyleCastExpr(T, VK, K, Op, PathSize, FPO, WrittenTy, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2118:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2116| new (Buffer) CStyleCastExpr(T, VK, K, Op, PathSize, FPO, WrittenTy, L, R); +# 2117| if (PathSize) +# 2118|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 2119| E->getTrailingObjects()); +# 2120| return E; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2347:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2345| clang::Preprocessor::processPathForFileMacro(Path, Ctx.getLangOpts(), +# 2346| Ctx.getTargetInfo()); +# 2347|-> Value.getStructField(F->getFieldIndex()) = MakeStringLiteral(Path); +# 2348| } else if (Name == "_M_function_name") { +# 2349| // Note: this emits the PrettyFunction name -- different than what + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2352:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2350| // __builtin_FUNCTION() above returns! +# 2351| const auto *CurDecl = dyn_cast(Context); +# 2352|-> Value.getStructField(F->getFieldIndex()) = MakeStringLiteral( +# 2353| CurDecl && !isa(CurDecl) +# 2354| ? StringRef(PredefinedExpr::ComputeName( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2359:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2357| } else if (Name == "_M_line") { +# 2358| llvm::APSInt IntVal = Ctx.MakeIntValue(PLoc.getLine(), F->getType()); +# 2359|-> Value.getStructField(F->getFieldIndex()) = APValue(IntVal); +# 2360| } else if (Name == "_M_column") { +# 2361| llvm::APSInt IntVal = Ctx.MakeIntValue(PLoc.getColumn(), F->getType()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2362:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2360| } else if (Name == "_M_column") { +# 2361| llvm::APSInt IntVal = Ctx.MakeIntValue(PLoc.getColumn(), F->getType()); +# 2362|-> Value.getStructField(F->getFieldIndex()) = APValue(IntVal); +# 2363| } +# 2364| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:721:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXStaticCastExpr(T, VK, K, Op, PathSize, WrittenTy, FPO, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:721:3: assign: Assigning: "E" = "new (Buffer) clang::CXXStaticCastExpr(T, VK, K, Op, PathSize, WrittenTy, FPO, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:724:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 722| FPO, L, RParenLoc, AngleBrackets); +# 723| if (PathSize) +# 724|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 725| E->getTrailingObjects()); +# 726| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:748:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXDynamicCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:748:3: assign: Assigning: "E" = "new (Buffer) clang::CXXDynamicCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:752:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 750| RParenLoc, AngleBrackets); +# 751| if (PathSize) +# 752|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 753| E->getTrailingObjects()); +# 754| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:811:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXReinterpretCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:811:3: assign: Assigning: "E" = "new (Buffer) clang::CXXReinterpretCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:815:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 813| RParenLoc, AngleBrackets); +# 814| if (PathSize) +# 815|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 816| E->getTrailingObjects()); +# 817| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:860:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXFunctionalCastExpr(T, VK, Written, K, Op, PathSize, FPO, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:860:3: assign: Assigning: "E" = "new (Buffer) clang::CXXFunctionalCastExpr(T, VK, Written, K, Op, PathSize, FPO, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:863:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 861| CXXFunctionalCastExpr(T, VK, Written, K, Op, PathSize, FPO, L, R); +# 862| if (PathSize) +# 863|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 864| E->getTrailingObjects()); +# 865| return E; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:1789:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(this->getDecl(), this->isDerivedMember(), llvm::ArrayRef(this->Path))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:1789:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 1787| +# 1788| void moveInto(APValue &V) const { +# 1789|-> V = APValue(getDecl(), isDerivedMember(), Path); +# 1790| } +# 1791| void setFrom(const APValue &V) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:2739:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Info.Ctx->getFloatTypeSemantics(DestType), 1UL)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:2739:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2737| QualType SrcType, const APSInt &Value, +# 2738| QualType DestType, APFloat &Result) { +# 2739|-> Result = APFloat(Info.Ctx.getFloatTypeSemantics(DestType), 1); +# 2740| llvm::RoundingMode RM = getActiveRoundingMode(Info, E); +# 2741| APFloat::opStatus St = Result.convertFromAPInt(Value, Value.isSigned(), RM); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3484:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), std::min(unsigned int const(S->getLength()), Elts), Elts)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3484:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 3482| +# 3483| unsigned Elts = CAT->getZExtSize(); +# 3484|-> Result = APValue(APValue::UninitArray(), +# 3485| std::min(S->getLength(), Elts), Elts); +# 3486| APSInt Value(Info.Ctx.getTypeSize(CharType), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3507:3: var_decl: Declaring variable "NewValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3509:5: uninit_use_in_call: Using uninitialized value "NewValue.Data" when calling "getArrayInitializedElt". +# 3507| APValue NewValue(APValue::UninitArray(), NewElts, Size); +# 3508| for (unsigned I = 0; I != OldElts; ++I) +# 3509|-> NewValue.getArrayInitializedElt(I).swap(Array.getArrayInitializedElt(I)); +# 3510| for (unsigned I = OldElts; I != NewElts; ++I) +# 3511| NewValue.getArrayInitializedElt(I) = Array.getArrayFiller(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4894:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), RD->getNumBases(), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4894:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 4892| return true; +# 4893| } +# 4894|-> Result = APValue(APValue::UninitStruct(), RD->getNumBases(), +# 4895| std::distance(RD->field_begin(), RD->field_end())); +# 4896| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4915:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, AT->getZExtSize())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4915:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 4913| if (auto *AT = +# 4914| dyn_cast_or_null(T->getAsArrayTypeUnsafe())) { +# 4915|-> Result = APValue(APValue::UninitArray(), 0, AT->getZExtSize()); +# 4916| if (Result.hasArrayFiller()) +# 4917| Success &= + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:6412:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), RD->getNumBases(), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:6412:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 6410| if (!Result.hasValue()) { +# 6411| if (!RD->isUnion()) +# 6412|-> Result = APValue(APValue::UninitStruct(), RD->getNumBases(), +# 6413| std::distance(RD->field_begin(), RD->field_end())); +# 6414| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7332:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Semantics, Val)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7332:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7330| const llvm::fltSemantics &Semantics = +# 7331| Info.Ctx.getFloatTypeSemantics(QualType(T, 0)); +# 7332|-> return APValue(APFloat(Semantics, Val)); +# 7333| } +# 7334| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7358:11: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "~APValue". +# 7356| BS.getType(), Layout.getBaseClassOffset(BaseDecl) + Offset); +# 7357| if (!SubObj) +# 7358|-> return std::nullopt; +# 7359| ResultVal.getStructBase(I) = *SubObj; +# 7360| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7359:9: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "getStructBase". +# 7357| if (!SubObj) +# 7358| return std::nullopt; +# 7359|-> ResultVal.getStructBase(I) = *SubObj; +# 7360| } +# 7361| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7371:9: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "~APValue". +# 7369| Info.FFDiag(BCE->getBeginLoc(), +# 7370| diag::note_constexpr_bit_cast_unsupported_bitfield); +# 7371|-> return std::nullopt; +# 7372| } +# 7373| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7383:9: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "~APValue". +# 7381| std::optional SubObj = visitType(FieldTy, FieldOffset); +# 7382| if (!SubObj) +# 7383|-> return std::nullopt; +# 7384| ResultVal.getStructField(FieldIdx) = *SubObj; +# 7385| ++FieldIdx; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7384:7: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "getStructField". +# 7382| if (!SubObj) +# 7383| return std::nullopt; +# 7384|-> ResultVal.getStructField(FieldIdx) = *SubObj; +# 7385| ++FieldIdx; +# 7386| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7406:5: var_decl: Declaring variable "ArrayValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7411:9: uninit_use_in_call: Using uninitialized value "ArrayValue.Data" when calling "~APValue". +# 7409| visitType(Ty->getElementType(), Offset + I * ElementWidth); +# 7410| if (!ElementValue) +# 7411|-> return std::nullopt; +# 7412| ArrayValue.getArrayInitializedElt(I) = std::move(*ElementValue); +# 7413| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7406:5: var_decl: Declaring variable "ArrayValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7412:7: uninit_use_in_call: Using uninitialized value "ArrayValue.Data" when calling "getArrayInitializedElt". +# 7410| if (!ElementValue) +# 7411| return std::nullopt; +# 7412|-> ArrayValue.getArrayInitializedElt(I) = std::move(*ElementValue); +# 7413| } +# 7414| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10206:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), (CD ? CD->getNumBases() : 0U), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10206:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10204| assert(!RD->isUnion() && "Expected non-union class type"); +#10205| const CXXRecordDecl *CD = dyn_cast(RD); +#10206|-> Result = APValue(APValue::UninitStruct(), CD ? CD->getNumBases() : 0, +#10207| std::distance(RD->field_begin(), RD->field_end())); +#10208| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10367:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), (CXXRD ? CXXRD->getNumBases() : 0U), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10367:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10365| +#10366| if (!Result.hasValue()) +#10367|-> Result = APValue(APValue::UninitStruct(), CXXRD ? CXXRD->getNumBases() : 0, +#10368| std::distance(RD->field_begin(), RD->field_end())); +#10369| unsigned ElementNo = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10550:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), 0U, 2U)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10550:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10548| +#10549| // FIXME: What if the initializer_list type has base classes, etc? +#10550|-> Result = APValue(APValue::UninitStruct(), 0, 2); +#10551| Array.moveInto(Result.getStructField(0)); +#10552| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10590:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), 0U, NumFields)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10590:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10588| "fields within the closure type"); +#10589| +#10590|-> Result = APValue(APValue::UninitStruct(), /*NumBases*/0, NumFields); +#10591| // Iterate through all the lambda's closure object's fields and initialize +#10592| // them. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10978:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10978:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#10976| if (SourceTy->isIntegerType()) { +#10977| if (DestTy->isRealFloatingType()) { +#10978|-> Result = APValue(APFloat(0.0)); +#10979| return HandleIntToFloatCast(Info, E, FPO, SourceTy, Original.getInt(), +#10980| DestTy, Result.getFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11116:11: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, 0U)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11116:11: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11114| // is represented as an ImplicitValueInitExpr of incomplete array +#11115| // type. In this case, the array has zero elements. +#11116|-> Result = APValue(APValue::UninitArray(), 0, 0); +#11117| return true; +#11118| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11123:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, CAT->getZExtSize())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11123:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11121| } +#11122| +#11123|-> Result = APValue(APValue::UninitArray(), 0, CAT->getZExtSize()); +#11124| if (!Result.hasArrayFiller()) +#11125| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11258:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), NumEltsToInit, NumElts)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11258:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11256| << NumEltsToInit << ".\n"); +#11257| +#11258|-> Result = APValue(APValue::UninitArray(), NumEltsToInit, NumElts); +#11259| +#11260| // If the array was previously zero-initialized, preserve the + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11307:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), Elements, Elements)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11307:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11305| +#11306| uint64_t Elements = CAT->getZExtSize(); +#11307|-> Result = APValue(APValue::UninitArray(), Elements, Elements); +#11308| +#11309| LValue Subobject = This; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11358:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, FinalSize)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11358:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11356| : APValue(); +#11357| +#11358|-> *Value = APValue(APValue::UninitArray(), 0, FinalSize); +#11359| if (FinalSize == 0) +#11360| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11378:7: var_decl: Declaring variable "NewValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11380:9: uninit_use_in_call: Using uninitialized value "NewValue.Data" when calling "getArrayInitializedElt". +#11378| APValue NewValue(APValue::UninitArray(), N, FinalSize); +#11379| for (unsigned I = 0; I < OldElts; ++I) +#11380|-> NewValue.getArrayInitializedElt(I).swap( +#11381| Value->getArrayInitializedElt(I)); +#11382| Value->swap(NewValue); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11606:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::APFixedPoint(V))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11606:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11604| assert(V.getWidth() == Info.Ctx.getIntWidth(E->getType()) && +#11605| "Invalid evaluation result."); +#11606|-> Result = APValue(V); +#11607| return true; +#11608| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13409:7: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13410:7: uninit_use_in_call: Using uninitialized value "RHS.Val.Data" when calling "swap". +#13408| const BinaryOperator *Bop = cast(job.E); +#13409| EvalResult RHS; +#13410|-> RHS.swap(Result); +#13411| Result.Failed = !VisitBinOp(job.LHSResult, RHS, Bop, Result.Val); +#13412| Queue.pop_back(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13492:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(LHS.FloatReal.getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13492:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#13490| if (LHSOK) { +#13491| LHS.makeComplexFloat(); +#13492|-> LHS.FloatImag = APFloat(LHS.FloatReal.getSemantics()); +#13493| } +#13494| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "LHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "LHS.FloatImag.U" when calling "~ComplexValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "LHS.FloatReal.U" when calling "~ComplexValue". +#13496| } +#13497| if (!LHSOK && !Info.noteFailure()) +#13498|-> return false; +#13499| +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "RHS.FloatImag.U" when calling "~ComplexValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "RHS.FloatReal.U" when calling "~ComplexValue". +#13496| } +#13497| if (!LHSOK && !Info.noteFailure()) +#13498|-> return false; +#13499| +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "LHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13502:9: uninit_use_in_call: Using uninitialized value "LHS.FloatImag.U" when calling "~ComplexValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13502:9: uninit_use_in_call: Using uninitialized value "LHS.FloatReal.U" when calling "~ComplexValue". +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { +#13501| if (!EvaluateFloat(E->getRHS(), RHS.FloatReal, Info) || !LHSOK) +#13502|-> return false; +#13503| RHS.makeComplexFloat(); +#13504| RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13502:9: uninit_use_in_call: Using uninitialized value "RHS.FloatImag.U" when calling "~ComplexValue". +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { +#13501| if (!EvaluateFloat(E->getRHS(), RHS.FloatReal, Info) || !LHSOK) +#13502|-> return false; +#13503| RHS.makeComplexFloat(); +#13504| RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13504:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(RHS.FloatReal.getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13504:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#13502| return false; +#13503| RHS.makeComplexFloat(); +#13504|-> RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); +#13505| } else if (!EvaluateComplex(E->getRHS(), RHS, Info) || !LHSOK) +#13506| return false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13525:5: var_decl: Declaring variable "LHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13529:7: uninit_use_in_call: Using uninitialized value "LHS.U" when calling "~APFloat". +#13527| bool LHSOK = EvaluateFloat(E->getRHS(), RHS, Info); +#13528| if (!LHSOK && !Info.noteFailure()) +#13529|-> return false; +#13530| +#13531| if (!EvaluateFloat(E->getLHS(), LHS, Info) || !LHSOK) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14751:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14754:7: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14752| if (!EvaluateFloat(E->getArg(0), Result, Info) || +#14753| !EvaluateFloat(E->getArg(1), RHS, Info)) +#14754|-> return false; +#14755| Result.copySign(RHS); +#14756| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14765:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14768:7: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14766| if (!EvaluateFloat(E->getArg(0), Result, Info) || +#14767| !EvaluateFloat(E->getArg(1), RHS, Info)) +#14768|-> return false; +#14769| // When comparing zeroes, return +0.0 if one of the zeroes is positive. +#14770| if (Result.isZero() && RHS.isZero() && Result.isNegative()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14783:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14786:7: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14784| if (!EvaluateFloat(E->getArg(0), Result, Info) || +#14785| !EvaluateFloat(E->getArg(1), RHS, Info)) +#14786|-> return false; +#14787| // When comparing zeroes, return -0.0 if one of the zeroes is negative. +#14788| if (Result.isZero() && RHS.isZero() && RHS.isNegative()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14844:3: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14847:5: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14845| bool LHSOK = EvaluateFloat(E->getLHS(), Result, Info); +#14846| if (!LHSOK && !Info.noteFailure()) +#14847|-> return false; +#14848| return EvaluateFloat(E->getRHS(), RHS, Info) && LHSOK && +#14849| handleFloatFloatBinOp(Info, E, Result, E->getOpcode(), RHS); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14964:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Imag->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14964:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#14962| return false; +#14963| +#14964|-> Result.FloatReal = APFloat(Imag.getSemantics()); +#14965| return true; +#14966| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15056:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Real->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15056:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15054| +#15055| Result.makeComplexFloat(); +#15056|-> Result.FloatImag = APFloat(Real.getSemantics()); +#15057| return true; +#15058| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15144:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Real->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15144:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15142| if (LHSOK) { +#15143| Result.makeComplexFloat(); +#15144|-> Result.FloatImag = APFloat(Real.getSemantics()); +#15145| } +#15146| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15159:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Real->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15159:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15157| return false; +#15158| RHS.makeComplexFloat(); +#15159|-> RHS.FloatImag = APFloat(Real.getSemantics()); +#15160| } else if (!EvaluateComplex(E->getRHS(), RHS, Info) || !LHSOK) +#15161| return false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15317:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(A->getSemantics(), (A->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15317:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15315| } else if ((A.isInfinity() || B.isInfinity()) && C.isFinite() && +#15316| D.isFinite()) { +#15317|-> A = APFloat::copySign( +#15318| APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); +#15319| B = APFloat::copySign( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15319:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(B->getSemantics(), (B->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15319:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15317| A = APFloat::copySign( +#15318| APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); +#15319|-> B = APFloat::copySign( +#15320| APFloat(B.getSemantics(), B.isInfinity() ? 1 : 0), B); +#15321| ResR = APFloat::getInf(ResR.getSemantics()) * (A * C + B * D); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15324:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(C->getSemantics(), (C->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15324:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15322| ResI = APFloat::getInf(ResI.getSemantics()) * (B * C - A * D); +#15323| } else if (MaxCD.isInfinity() && A.isFinite() && B.isFinite()) { +#15324|-> C = APFloat::copySign( +#15325| APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); +#15326| D = APFloat::copySign( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15326:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(D->getSemantics(), (D->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15326:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15324| C = APFloat::copySign( +#15325| APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); +#15326|-> D = APFloat::copySign( +#15327| APFloat(D.getSemantics(), D.isInfinity() ? 1 : 0), D); +#15328| ResR = APFloat::getZero(ResR.getSemantics()) * (A * C + B * D); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:123:5: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:124:5: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromAPInt". +# 122| Floating &Result) { +# 123| APFloat F = APFloat(Sem); +# 124|-> APFloat::opStatus Status = F.convertFromAPInt(Val, Val.isSigned(), RM); +# 125| Result = Floating(F); +# 126| return Status; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:135:5: temporary: Creating temporary of type "clang::interp::APFloat" in "clang::interp::APFloat(Sem, API)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:135:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 133| llvm::LoadIntFromMemory(API, (const uint8_t *)Buff, Size / 8); +# 134| +# 135|-> return Floating(APFloat(Sem, API)); +# 136| } +# 137| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2162:3: extract: Calling "get" which extracts wrapped state from local "NewFrame". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2162:3: escape: The internal representation of local "NewFrame" escapes into "S.Current", but is destroyed when it exits scope. +# 2160| auto NewFrame = std::make_unique(S, Func, OpPC, VarArgSize); +# 2161| InterpFrame *FrameBefore = S.Current; +# 2162|-> S.Current = NewFrame.get(); +# 2163| +# 2164| APValue CallResult; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2169:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2169:5: leaked_storage: Ignoring storage allocated by "NewFrame.release()" leaks it. +# 2167| // have a caller set. +# 2168| if (Interpret(S, CallResult)) { +# 2169|-> NewFrame.release(); // Frame was delete'd already. +# 2170| assert(S.Current == FrameBefore); +# 2171| return true; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2213:3: extract: Calling "get" which extracts wrapped state from local "NewFrame". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2213:3: escape: The internal representation of local "NewFrame" escapes into "S.Current", but is destroyed when it exits scope. +# 2211| auto NewFrame = std::make_unique(S, Func, OpPC, VarArgSize); +# 2212| InterpFrame *FrameBefore = S.Current; +# 2213|-> S.Current = NewFrame.get(); +# 2214| +# 2215| APValue CallResult; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2220:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2220:5: leaked_storage: Ignoring storage allocated by "NewFrame.release()" leaks it. +# 2218| // have a caller set. +# 2219| if (Interpret(S, CallResult)) { +# 2220|-> NewFrame.release(); // Frame was delete'd already. +# 2221| assert(S.Current == FrameBefore); +# 2222| return true; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2279:3: extract: Calling "get" which extracts wrapped state from local "NewFrame". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2279:3: escape: The internal representation of local "NewFrame" escapes into "S.Current", but is destroyed when it exits scope. +# 2277| +# 2278| InterpFrame *FrameBefore = S.Current; +# 2279|-> S.Current = NewFrame.get(); +# 2280| +# 2281| if (InterpretBuiltin(S, PC, Func, CE)) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2282:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2282:5: leaked_storage: Ignoring storage allocated by "NewFrame.release()" leaks it. +# 2280| +# 2281| if (InterpretBuiltin(S, PC, Func, CE)) { +# 2282|-> NewFrame.release(); +# 2283| return true; +# 2284| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpShared.cpp:18:3: var_decl: Declaring variable "NonNullArgs". +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpShared.cpp:20:5: uninit_use: Using uninitialized value "NonNullArgs". Field "NonNullArgs.Bits.InlineElts" is uninitialized. +# 18| llvm::BitVector NonNullArgs; +# 19| if (!F) +# 20|-> return NonNullArgs; +# 21| +# 22| assert(F); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpStack.h:49:5: move: "*Ptr" is moved (indicated by "std::move(Ptr)"). +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpStack.h:50:5: use_after_move: "*Ptr" is used after it has been already moved. +# 48| T *Ptr = &peekInternal(); +# 49| T Value = std::move(*Ptr); +# 50|-> Ptr->~T(); +# 51| shrink(aligned_size()); +# 52| return Value; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:358:9: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), NB, NF)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:358:9: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 356| unsigned NV = Ptr.isBaseClass() ? 0 : Record->getNumVirtualBases(); +# 357| +# 358|-> R = APValue(APValue::UninitStruct(), NB, NF); +# 359| +# 360| for (unsigned I = 0; I < NF; ++I) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:391:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, 0U)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:391:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 389| +# 390| if (Ty->isIncompleteArrayType()) { +# 391|-> R = APValue(APValue::UninitArray(), 0, 0); +# 392| return true; +# 393| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:398:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue((clang::APValue::UninitArray)clang::APValue::UninitArray({}), NumElems, NumElems)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:398:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 396| const size_t NumElems = Ptr.getNumElems(); +# 397| QualType ElemTy = AT->getElementType(); +# 398|-> R = APValue(APValue::UninitArray{}, NumElems, NumElems); +# 399| +# 400| bool Ok = true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:5553:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloat(Imag->getValue()).getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:5553:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5551| dyn_cast(IE->getSubExpr())) { +# 5552| // Mangle a floating-point zero of the appropriate type. +# 5553|-> mangleFloat(llvm::APFloat(Imag->getValue().getSemantics())); +# 5554| Out << '_'; +# 5555| mangleFloat(Imag->getValue()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:6085:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(D, false, llvm::ArrayRef())". +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:6085:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 6083| if (D->isCXXInstanceMember()) +# 6084| // Simple pointer-to-member with no conversion. +# 6085|-> Value = APValue(D, /*IsDerivedMember=*/false, /*Path=*/{}); +# 6086| else if (D->getType()->isArrayType() && +# 6087| Ctx.hasSimilarType(Ctx.getDecayedType(D->getType()), + +Error: USE_AFTER_FREE (CWE-416): +llvm-project-19.0.0.src/clang/lib/AST/NestedNameSpecifier.cpp:538:5: freed_arg: "free" frees "this->Buffer". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/NestedNameSpecifier.cpp:558:3: deref_arg: Calling "Append" dereferences freed pointer "this->Buffer". +# 556| // Deep copy. +# 557| BufferSize = 0; +# 558|-> Append(Other.Buffer, Other.Buffer + Other.BufferSize, Buffer, BufferSize, +# 559| BufferCapacity); +# 560| return *this; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ODRDiagsEmitter.cpp:1199:9: var_decl: Declaring variable "ExpandedList". +llvm-project-19.0.0.src/clang/lib/AST/ODRDiagsEmitter.cpp:1208:9: uninit_use: Using uninitialized value "ExpandedList". Field "ExpandedList.InlineElts" is uninitialized. +# 1206| llvm::make_pointer_range(TA.getPackAsArray())); +# 1207| } +# 1208|-> return ExpandedList; +# 1209| }; +# 1210| llvm::SmallVector FirstExpandedList = + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:304:3: address_of: Taking address with "&this->Condition" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:304:3: ptr_arith: Using "&this->Condition" as an array. This might corrupt or misinterpret adjacent memory locations. +# 302| if (Stmt **C = getAddrOfExprAsWritten(getPreInitStmt())) +# 303| return child_range(C, C + 1); +# 304|-> return child_range(&Condition, &Condition + 1); +# 305| } +# 306| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:1654:3: new_object: Calling single-object form of 'new': "new (Mem) clang::OMPInitClause(InteropInfo.IsTarget, InteropInfo.IsTargetSync, StartLoc, LParenLoc, VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1UL)". +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:1654:3: assign: Assigning: "Clause" = "new (Mem) clang::OMPInitClause(InteropInfo.IsTarget, InteropInfo.IsTargetSync, StartLoc, LParenLoc, VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1UL)". +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:1658:3: callee_ptr_arith: Passing "Clause" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1656| VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1); +# 1657| Clause->setInteropVar(InteropVar); +# 1658|-> llvm::copy(InteropInfo.PreferTypes, Clause->getTrailingObjects() + 1); +# 1659| return Clause; +# 1660| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/PrintfFormatString.cpp:112:3: var_decl: Declaring variable "FS". +llvm-project-19.0.0.src/clang/lib/AST/PrintfFormatString.cpp:423:3: uninit_use_in_call: Using uninitialized value "FS". Field "FS.HasThousandsGrouping.position" is uninitialized when calling "SpecifierResult". +# 421| return !H.HandleInvalidPrintfConversionSpecifier(FS, Start, Len); +# 422| } +# 423|-> return PrintfSpecifierResult(Start, FS); +# 424| } +# 425| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:118:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 116| Result.Text = StringRef(CodeCompletionLocation, 0); +# 117| CodeCompletionLocation = nullptr; +# 118|-> return Result; +# 119| } +# 120| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:118:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 116| Result.Text = StringRef(CodeCompletionLocation, 0); +# 117| CodeCompletionLocation = nullptr; +# 118|-> return Result; +# 119| } +# 120| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:124:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 122| Result.Kind = TokenInfo::TK_Eof; +# 123| Result.Text = ""; +# 124|-> return Result; +# 125| } +# 126| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:124:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 122| Result.Kind = TokenInfo::TK_Eof; +# 123| Result.Text = ""; +# 124|-> return Result; +# 125| } +# 126| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:130:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 128| case '#': +# 129| Code = Code.drop_until([](char c) { return c == '\n'; }); +# 130|-> return getNextToken(); +# 131| case ',': +# 132| Result.Kind = TokenInfo::TK_Comma; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:184:13: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 182| Result.Text = Code.substr(0, TokenLength); +# 183| Code = Code.drop_front(TokenLength); +# 184|-> return Result; +# 185| } +# 186| if (TokenLength == Code.size() || !isAlphanumeric(Code[TokenLength])) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:184:13: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 182| Result.Text = Code.substr(0, TokenLength); +# 183| Code = Code.drop_front(TokenLength); +# 184|-> return Result; +# 185| } +# 186| if (TokenLength == Code.size() || !isAlphanumeric(Code[TokenLength])) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:210:5: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 208| +# 209| Result.Range.End = currentLocation(); +# 210|-> return Result; +# 211| } +# 212| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:210:5: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 208| +# 209| Result.Range.End = currentLocation(); +# 210|-> return Result; +# 211| } +# 212| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:473:3: var_decl: Declaring variable "EndToken". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:492:11: uninit_use_in_call: Using uninitialized value "EndToken.Value.Value" when calling "~TokenInfo". +# 490| Error->addError(CommaToken.Range, Error->ET_ParserNoComma) +# 491| << CommaToken.Text; +# 492|-> return false; +# 493| } +# 494| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:499:7: var_decl: Declaring variable "ArgValue". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:504:9: uninit_use_in_call: Using uninitialized value "ArgValue.Value.Value" when calling "~ParserValue". +# 502| if (Tokenizer->peekNextToken().Kind == TokenInfo::TK_CodeCompletion) { +# 503| addExpressionCompletions(); +# 504|-> return false; +# 505| } +# 506| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:499:7: var_decl: Declaring variable "ArgValue". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:525:9: uninit_use_in_call: Using uninitialized value "ArgValue.Value.Value" when calling "~ParserValue". +# 523| Error->ET_RegistryMatcherNotFound) +# 524| << NodeMatcherToken.Text; +# 525|-> return false; +# 526| } +# 527| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:473:3: var_decl: Declaring variable "EndToken". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:548:5: uninit_use_in_call: Using uninitialized value "EndToken.Value.Value" when calling "~TokenInfo". +# 546| if (EndToken.Kind == TokenInfo::TK_Eof) { +# 547| Error->addError(OpenToken.Range, Error->ET_ParserNoCloseParen); +# 548|-> return false; +# 549| } +# 550| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:641:3: var_decl: Declaring variable "EndToken". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:660:11: uninit_use_in_call: Using uninitialized value "EndToken.Value.Value" when calling "~TokenInfo". +# 658| Error->addError(CommaToken.Range, Error->ET_ParserNoComma) +# 659| << CommaToken.Text; +# 660|-> return false; +# 661| } +# 662| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/CloneDetection.cpp:381:7: var_decl: Declaring variable "NewGroup". +llvm-project-19.0.0.src/clang/lib/Analysis/CloneDetection.cpp:403:7: uninit_use_in_call: Using uninitialized value "NewGroup". Field "NewGroup.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 401| // We created a new clone group with matching hash codes and move it to +# 402| // the result vector. +# 403|-> Result.push_back(NewGroup); +# 404| } +# 405| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp:36:35: constructor_uses_global_object: The constructor of global object "DataflowLog[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DataflowLog[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| #include +# 35| +# 36|-> static llvm::cl::opt DataflowLog( +# 37| "dataflow-log", llvm::cl::Hidden, llvm::cl::ValueOptional, +# 38| llvm::cl::desc("Emit log of dataflow analysis. With no arg, writes textual " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/FlowSensitive/SimplifyConstraints.cpp:68:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Analysis/FlowSensitive/SimplifyConstraints.cpp:72:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 70| MemberIt != EquivalentAtoms.member_end(); ++MemberIt) +# 71| Result.push_back(*MemberIt); +# 72|-> return Result; +# 73| } +# 74| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/IssueHash.cpp:176:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/clang/lib/Analysis/IssueHash.cpp:182:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 180| llvm::MD5::stringifyResult(MD5Res, Res); +# 181| +# 182|-> return Res; +# 183| } +# 184| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/MacroExpansionContext.cpp:227:3: move: "TokenAsString" is moved (indicated by "std::move(TokenAsString)"). +llvm-project-19.0.0.src/clang/lib/Analysis/MacroExpansionContext.cpp:230:5: use_after_move: "TokenAsString" is used after it has been already moved. +# 228| ExpandedTokens.try_emplace(CurrExpansionLoc, std::move(TokenAsString)); +# 229| if (!Inserted) +# 230|-> It->getSecond().append(TokenAsString); +# 231| } +# 232| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/UninitializedValues.cpp:520:5: var_decl: Declaring variable "Use". +llvm-project-19.0.0.src/clang/lib/Analysis/UninitializedValues.cpp:524:7: uninit_use: Using uninitialized value "Use". Field "Use.UninitBranches.InlineElts" is uninitialized. +# 522| assert(isUninitialized(v)); +# 523| if (Use.getKind() == UninitUse::Always) +# 524|-> return Use; +# 525| +# 526| // If an edge which leads unconditionally to this use did not initialize + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/UnsafeBufferUsage.cpp:2808:3: var_decl: Declaring variable "FixItsSharedByParms". +llvm-project-19.0.0.src/clang/lib/Analysis/UnsafeBufferUsage.cpp:2822:3: uninit_use: Using uninitialized value "FixItsSharedByParms". Field "FixItsSharedByParms.InlineElts" is uninitialized. +# 2820| FixItsForVariable.erase(Member); +# 2821| } +# 2822|-> return FixItsSharedByParms; +# 2823| } +# 2824| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Basic/Diagnostic.cpp:820:7: address_of: Taking address with "&CodepointValue" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Basic/Diagnostic.cpp:820:7: assign: Assigning: "CpPtr" = "&CodepointValue". +llvm-project-19.0.0.src/clang/lib/Basic/Diagnostic.cpp:824:7: ptr_arith: Using "CpPtr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 822| const unsigned char *CodepointEnd = +# 823| Begin + llvm::getNumBytesForUTF8(*Begin); +# 824|-> llvm::ConversionResult Res = llvm::ConvertUTF8toUTF32( +# 825| &Begin, CodepointEnd, &CpPtr, CpPtr + 1, llvm::strictConversion); +# 826| (void)Res; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/Basic/Sanitizers.cpp:57:3: overrun-buffer-val: Overrunning buffer pointed to by "&this->maskLoToHigh[0]" of 16 bytes by passing it to a function which accesses it at byte offset 63. +# 55| +# 56| llvm::hash_code SanitizerMask::hash_value() const { +# 57|-> return llvm::hash_combine_range(&maskLoToHigh[0], &maskLoToHigh[kNumElem]); +# 58| } +# 59| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:23:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:27:5: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 25| : llvm::AMDGPU::parseArchR600(Proc); +# 26| if (ProcKind == llvm::AMDGPU::GK_NONE) +# 27|-> return Ret; +# 28| auto Features = T.isAMDGCN() ? llvm::AMDGPU::getArchAttrAMDGCN(ProcKind) +# 29| : llvm::AMDGPU::getArchAttrR600(ProcKind); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:23:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:34:3: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 32| if (Features & llvm::AMDGPU::FEATURE_XNACK) +# 33| Ret.push_back("xnack"); +# 34|-> return Ret; +# 35| } +# 36| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:103:22: constructor_uses_global_object: The constructor of global object "llvm::ClSanitizeOnOptimizerEarlyEP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClSanitizeOnOptimizerEarlyEP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| +# 102| // Experiment to move sanitizers earlier. +# 103|-> static cl::opt ClSanitizeOnOptimizerEarlyEP( +# 104| "sanitizer-early-opt-ep", cl::Optional, +# 105| cl::desc("Insert sanitizers on OptimizerEarlyEP.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "Allocator" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "fuzzer::TPC" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "scudo::RegionPageMap::Buffers" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:125:15: constructor_uses_global_object: The constructor of global object "llvm::ClRelinkBuiltinBitcodePostop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClRelinkBuiltinBitcodePostop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| +# 124| // Re-link builtin bitcodes after optimization +# 125|-> cl::opt ClRelinkBuiltinBitcodePostop( +# 126| "relink-builtin-bitcode-postop", cl::Optional, +# 127| cl::desc("Re-link builtin bitcodes after optimization.")); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBlocks.h:223:7: var_decl: Declaring variable "v". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBlocks.h:226:7: uninit_use: Using uninitialized value "v". Field "v.Offset" is uninitialized. +# 224| v.Data = reinterpret_cast(value); +# 225| v.Cap = Cap; +# 226|-> return v; +# 227| } +# 228| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBuiltin.cpp:17169:5: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBuiltin.cpp:17192:5: uninit_use: Using uninitialized value "Result". +#17190| Result = +#17191| StoreSubVec(1, NumBytes - Stored - 1, IsLE ? Stored : 15 - Stored); +#17192|-> return Result; +#17193| } +#17194| // Square root + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:386:3: var_decl: Declaring variable "argTypes". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:389:3: uninit_use: Using uninitialized value "argTypes". Field "argTypes.InlineElts" is uninitialized. +# 387| for (auto &arg : args) +# 388| argTypes.push_back(ctx.getCanonicalParamType(arg.Ty)); +# 389|-> return argTypes; +# 390| } +# 391| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:394:3: var_decl: Declaring variable "argTypes". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:397:3: uninit_use: Using uninitialized value "argTypes". Field "argTypes.InlineElts" is uninitialized. +# 395| for (auto &arg : args) +# 396| argTypes.push_back(ctx.getCanonicalParamType(arg->getType())); +# 397|-> return argTypes; +# 398| } +# 399| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:403:3: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:407:3: uninit_use: Using uninitialized value "result". Field "result.InlineElts" is uninitialized. +# 405| addExtParameterInfosForCall(result, proto, prefixArgs, totalArgs); +# 406| } +# 407|-> return result; +# 408| } +# 409| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:1062:7: overrun-local: Overrunning array of 1 8-byte elements at element index 1 (byte offset 15) by dereferencing pointer "&BS + 1". +# 1060| for (const CXXBaseSpecifier *BS : RExp->Bases) { +# 1061| // Perform a single step derived-to-base conversion. +# 1062|-> Address Base = +# 1063| GetAddressOfBaseClass(This, Ty->getAsCXXRecordDecl(), &BS, &BS + 1, +# 1064| /*NullCheckValue=*/false, SourceLocation()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:1119:7: overrun-local: Overrunning array of 1 8-byte elements at element index 1 (byte offset 15) by dereferencing pointer "&BS + 1". +# 1117| for (const CXXBaseSpecifier *BS : RExp->Bases) { +# 1118| // Perform a single step derived-to-base conversion. +# 1119|-> Address Base = +# 1120| GetAddressOfBaseClass(This, Ty->getAsCXXRecordDecl(), &BS, &BS + 1, +# 1121| /*NullCheckValue=*/false, SourceLocation()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:4821:3: var_decl: Declaring variable "BundleList". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:4823:3: uninit_use: Using uninitialized value "BundleList". Field "BundleList.InlineElts" is uninitialized. +# 4821| SmallVector BundleList; +# 4822| BundleList.emplace_back("funclet", CurrentFuncletPad); +# 4823|-> return BundleList; +# 4824| } +# 4825| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCleanup.cpp:166:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CodeGen::EHCleanupScope(IsNormalCleanup, IsEHCleanup, Size, this->BranchFixups.size(), this->InnermostNormalCleanup, this->InnermostEHScope)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCleanup.cpp:166:3: assign: Assigning: "Scope" = "new (Buffer) clang::CodeGen::EHCleanupScope(IsNormalCleanup, IsEHCleanup, Size, this->BranchFixups.size(), this->InnermostNormalCleanup, this->InnermostEHScope)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCleanup.cpp:190:3: callee_ptr_arith: Passing "Scope" to function "getCleanupBuffer" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 188| CGF->EmitSehCppScopeBegin(); +# 189| +# 190|-> return Scope->getCleanupBuffer(); +# 191| } +# 192| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCoroutine.cpp:557:3: var_decl: Declaring variable "BundleList". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCoroutine.cpp:562:3: uninit_use: Using uninitialized value "BundleList". Field "BundleList.InlineElts" is uninitialized. +# 560| BundleList.emplace_back("funclet", EHPad); +# 561| +# 562|-> return BundleList; +# 563| } +# 564| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1108:3: var_decl: Declaring variable "Identifier". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1112:5: uninit_use: Using uninitialized value "Identifier". Field "Identifier.InlineElts" is uninitialized. +# 1110| +# 1111| if (!needsTypeIdentifier(TD, CGM, TheCU)) +# 1112|-> return Identifier; +# 1113| if (const auto *RD = dyn_cast(TD)) +# 1114| if (RD->getDefinition()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1108:3: var_decl: Declaring variable "Identifier". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1117:9: uninit_use: Using uninitialized value "Identifier". Field "Identifier.InlineElts" is uninitialized. +# 1115| if (RD->isDynamicClass() && +# 1116| CGM.getVTableLinkage(RD) == llvm::GlobalValue::ExternalLinkage) +# 1117|-> return Identifier; +# 1118| +# 1119| // TODO: This is using the RTTI name. Is there a better way to get + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1108:3: var_decl: Declaring variable "Identifier". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1123:3: uninit_use: Using uninitialized value "Identifier". Field "Identifier.InlineElts" is uninitialized. +# 1121| llvm::raw_svector_ostream Out(Identifier); +# 1122| CGM.getCXXABI().getMangleContext().mangleCXXRTTIName(QualType(Ty, 0), Out); +# 1123|-> return Identifier; +# 1124| } +# 1125| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1326:3: var_decl: Declaring variable "SpecArgs". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1351:3: uninit_use: Using uninitialized value "SpecArgs". Field "SpecArgs.InlineElts" is uninitialized. +# 1349| SubstArgs = SubstArgs.drop_front(); +# 1350| } +# 1351|-> return SpecArgs; +# 1352| } +# 1353| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:57:28: constructor_uses_global_object: The constructor of global object "ClSanitizeDebugDeoptimization" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClSanitizeDebugDeoptimization" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| // Experiment to make sanitizers easier to debug +# 57|-> static llvm::cl::opt ClSanitizeDebugDeoptimization( +# 58| "ubsan-unique-traps", llvm::cl::Optional, +# 59| llvm::cl::desc("Deoptimize traps for UBSAN so there is 1 trap per check.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:63:28: constructor_uses_global_object: The constructor of global object "ClSanitizeGuardChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClSanitizeGuardChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| // TODO: Introduce frontend options to enabled per sanitizers, similar to +# 62| // `fsanitize-trap`. +# 63|-> static llvm::cl::opt ClSanitizeGuardChecks( +# 64| "ubsan-guard-checks", llvm::cl::Optional, +# 65| llvm::cl::desc("Guard UBSAN checks with `llvm.allow.ubsan.check()`.")); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1219:5: var_decl: Declaring variable "FVal". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1221:7: uninit_use_in_call: Using uninitialized value "FVal.U" when calling "changeSign". +# 1219| llvm::APFloat FVal(getContext().getFloatTypeSemantics(ElemTy), 1); +# 1220| if (!isInc) +# 1221|-> FVal.changeSign(); +# 1222| NextVal = llvm::ConstantFP::get(getLLVMContext(), FVal); +# 1223| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1219:5: var_decl: Declaring variable "FVal". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1222:5: uninit_use_in_call: Using uninitialized value "FVal.U" when calling "get". +# 1220| if (!isInc) +# 1221| FVal.changeSign(); +# 1222|-> NextVal = llvm::ConstantFP::get(getLLVMContext(), FVal); +# 1223| +# 1224| // Add the inc/dec to the real part. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6125:3: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6186:3: uninit_use: Using uninitialized value "result". Field "result.LV.LVType" is uninitialized. +# 6184| opaques[i].unbind(CGF); +# 6185| +# 6186|-> return result; +# 6187| } +# 6188| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6125:3: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6186:3: uninit_use: Using uninitialized value "result". Field "result.RV.IsVolatile" is uninitialized. +# 6184| opaques[i].unbind(CGF); +# 6185| +# 6186|-> return result; +# 6187| } +# 6188| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprCXX.cpp:264:3: var_decl: Declaring variable "TrivialAssignmentRHS". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprCXX.cpp:317:7: uninit_use: Using uninitialized value "TrivialAssignmentRHS". Field "TrivialAssignmentRHS.LVType" is uninitialized. +# 315| // emitting call arguments, in order to preserve TBAA information from +# 316| // the RHS. +# 317|-> LValue RHS = isa(CE) +# 318| ? TrivialAssignmentRHS +# 319| : EmitLValue(*CE->arg_begin()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:986:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(SrcSema, 1UL)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:986:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 984| // Find the largest value which is too small to represent (before +# 985| // truncation toward zero). +# 986|-> MinSrc.subtract(APFloat(SrcSema, 1), APFloat::rmTowardNegative); +# 987| +# 988| APSInt Max = APSInt::getMaxValue(Width, Unsigned); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:998:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(SrcSema, 1UL)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:998:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 996| // Find the smallest value which is too large to represent (before +# 997| // truncation toward zero). +# 998|-> MaxSrc.add(APFloat(SrcSema, 1), APFloat::rmTowardPositive); +# 999| +# 1000| // If we're converting from __half, convert the range to float to match + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:2810:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1f)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:2810:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2808| llvm::Instruction::BinaryOps op = +# 2809| isInc ? llvm::Instruction::FAdd : llvm::Instruction::FSub; +# 2810|-> llvm::Value *amt = llvm::ConstantFP::get( +# 2811| VMContext, llvm::APFloat(static_cast(1.0))); +# 2812| llvm::Value *old = + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:1342:3: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 1340| argVar->getType().getNonReferenceType(), VK_LValue, +# 1341| SourceLocation()); +# 1342|-> llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); +# 1343| args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); +# 1344| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:1386:3: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 1384| argVar->getType().getNonReferenceType(), VK_LValue, +# 1385| SourceLocation()); +# 1386|-> llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); +# 1387| args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); +# 1388| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:3136:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:3177:3: uninit_use: Using uninitialized value "result". +# 3175| opaques[i].unbind(CGF); +# 3176| +# 3177|-> return result; +# 3178| } +# 3179| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjCMac.cpp:1194:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjCMac.cpp:1203:5: uninit_use: Using uninitialized value "result". Field "result.InlineElts" is uninitialized. +# 1201| } +# 1202| +# 1203|-> return result; +# 1204| } +# 1205| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:376:7: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 374| VD->getType().getNonReferenceType(), VK_LValue, +# 375| C.getLocation()); +# 376|-> PrivScope.addPrivate(VD, CGF.EmitLValue(&DRE).getAddress(CGF)); +# 377| } +# 378| (void)PrivScope.Privatize(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:7504:5: var_decl: Declaring variable "ElementTypeSize" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:7567:5: uninit_use_in_call: Using uninitialized value "ElementTypeSize" when calling "get". +# 7565| auto *DI = DimSizes.begin() + 1; +# 7566| // Product of dimension. +# 7567|-> llvm::Value *DimProd = +# 7568| llvm::ConstantInt::get(CGF.CGM.Int64Ty, ElementTypeSize); +# 7569| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:11784:3: var_decl: Declaring variable "Checker". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:11792:3: uninit_use_in_call: Using uninitialized value "Checker.IVLVal". Field "Checker.IVLVal.LVType" is uninitialized when calling "getFoundData". +#11790| LValue IVLVal; +#11791| llvm::Function *FoundFn; +#11792|-> std::tie(FoundE, FoundD, UniqueDeclName, IVLVal, FoundFn) = +#11793| Checker.getFoundData(); +#11794| if (FoundFn != CGF.CurFn) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmt.cpp:922:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmt.cpp:945:7: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 943| if (HasEmptyBody && CondIsTrue) { +# 944| CurFn->removeFnAttr(llvm::Attribute::MustProgress); +# 945|-> return false; +# 946| } +# 947| return true; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:875:13: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 873| } else { +# 874| assert(!CE && "Expected non-constant firstprivate."); +# 875|-> OriginalLVal = EmitLValue(&DRE); +# 876| } +# 877| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:878:11: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 876| } +# 877| } else { +# 878|-> OriginalLVal = EmitLValue(&DRE); +# 879| } +# 880| QualType Type = VD->getType(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:1000:11: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 998| DeclRefExpr DRE(getContext(), const_cast(VD), true, +# 999| (*IRef)->getType(), VK_LValue, (*IRef)->getExprLoc()); +# 1000|-> MasterAddr = EmitLValue(&DRE).getAddress(*this); +# 1001| LocalDeclMap.erase(VD); +# 1002| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:1079:9: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 1077| CapturedStmtInfo->lookup(OrigVD) != nullptr, +# 1078| (*IRef)->getType(), VK_LValue, (*IRef)->getExprLoc()); +# 1079|-> PrivateScope.addPrivate(DestVD, EmitLValue(&DRE).getAddress(*this)); +# 1080| // Check if the variable is also a firstprivate: in this case IInit is +# 1081| // not generated. Initialization of this variable will happen in codegen + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:2213:7: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 2211| CapturedStmtInfo->lookup(OrigVD) != nullptr, +# 2212| (*IC)->getType(), VK_LValue, (*IC)->getExprLoc()); +# 2213|-> Address OrigAddr = EmitLValue(&DRE).getAddress(*this); +# 2214| CodeGenFunction::OMPPrivateScope VarScope(*this); +# 2215| VarScope.addPrivate(OrigVD, OrigAddr); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:2280:7: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 2278| LocalDeclMap.count(VD) || CapturedStmtInfo->lookup(VD), +# 2279| E->getType(), VK_LValue, E->getExprLoc()); +# 2280|-> (void)LoopScope.addPrivate(PrivateVD, EmitLValue(&DRE).getAddress(*this)); +# 2281| } else { +# 2282| (void)LoopScope.addPrivate(PrivateVD, VarEmission.getAllocatedAddress()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:2452:9: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 2450| /*RefersToEnclosingVariableOrCapture=*/false, +# 2451| (*IPC)->getType(), VK_LValue, (*IPC)->getExprLoc()); +# 2452|-> OrigAddr = EmitLValue(&DRE).getAddress(*this); +# 2453| } +# 2454| OMPPrivateScope VarScope(*this); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:3813:3: var_decl: Declaring variable "HasLastprivates" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:3853:3: uninit_use: Using uninitialized value "HasLastprivates". +# 3851| emitDispatchForLoopBounds); +# 3852| } +# 3853|-> return HasLastprivates; +# 3854| } +# 3855| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:4861:9: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 4859| Pair.second->getType(), VK_LValue, +# 4860| Pair.second->getExprLoc()); +# 4861|-> Scope.addPrivate(Pair.first, CGF.EmitLValue(&DRE).getAddress(CGF)); +# 4862| } +# 4863| for (const auto &Pair : PrivatePtrs) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:442:5: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:447:5: uninit_use: Using uninitialized value "R". Field "R" is uninitialized. +# 445| R.Addr = Addr; +# 446| assert(Addr.getType()->isPointerTy()); +# 447|-> return R; +# 448| } +# 449| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:488:5: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:493:5: uninit_use: Using uninitialized value "R". Field "R" is uninitialized. +# 491| LValueBaseInfo(AlignmentSource::Decl), TBAAAccessInfo()); +# 492| R.V = V; +# 493|-> return R; +# 494| } +# 495| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenABITypes.cpp:86:3: var_decl: Declaring variable "implicitArgs". +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenABITypes.cpp:93:3: uninit_use: Using uninitialized value "implicitArgs". Field "implicitArgs.Prefix.InlineElts" is uninitialized. +# 91| implicitArgs.Suffix.push_back(arg.Value); +# 92| } +# 93|-> return implicitArgs; +# 94| } +# 95| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenModule.cpp:82:28: constructor_uses_global_object: The constructor of global object "LimitedCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LimitedCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| using namespace CodeGen; +# 81| +# 82|-> static llvm::cl::opt LimitedCoverage( +# 83| "limited-coverage-experimental", llvm::cl::Hidden, +# 84| llvm::cl::desc("Emit limited coverage mapping information (experimental)")); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenModule.cpp:6514:3: var_decl: Declaring variable "EvalResult". +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenModule.cpp:6589:3: uninit_use_in_call: Using uninitialized value "EvalResult.Val.Data" when calling "~EvalResult". +# 6587| Entry = CV; +# 6588| +# 6589|-> return ConstantAddress(CV, Type, Align); +# 6590| } +# 6591| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenPGO.cpp:31:5: constructor_uses_global_object: The constructor of global object "EnableValueProfiling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableValueProfiling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static llvm::cl::opt +# 31|-> EnableValueProfiling("enable-value-profiling", +# 32| llvm::cl::desc("Enable value profiling"), +# 33| llvm::cl::Hidden, llvm::cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:36:5: constructor_uses_global_object: The constructor of global object "llvm::EnableSingleByteCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableSingleByteCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| namespace llvm { +# 35| cl::opt +# 36|-> EnableSingleByteCoverage("enable-single-byte-coverage", +# 37| llvm::cl::ZeroOrMore, +# 38| llvm::cl::desc("Enable single byte coverage"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:42:28: constructor_uses_global_object: The constructor of global object "EmptyLineCommentCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmptyLineCommentCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| } // namespace llvm +# 41| +# 42|-> static llvm::cl::opt EmptyLineCommentCoverage( +# 43| "emptyline-comment-coverage", +# 44| llvm::cl::desc("Emit emptylines and comment lines as skipped regions (only " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:48:21: constructor_uses_global_object: The constructor of global object "SystemHeadersCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SystemHeadersCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| llvm::cl::init(true), llvm::cl::Hidden); +# 47| +# 48|-> llvm::cl::opt SystemHeadersCoverage( +# 49| "system-headers-coverage", +# 50| llvm::cl::desc("Enable collecting coverage from system headers"), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:517:5: var_decl: Declaring variable "Filter". +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:541:5: uninit_use: Using uninitialized value "Filter". Field "Filter.Vector.InlineElts" is uninitialized. +# 539| SR.LineEnd, SR.ColumnEnd)); +# 540| } +# 541|-> return Filter; +# 542| } +# 543| }; + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:104:10: assign: Assigning: "ArgPtr" = "*__begin2". +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:105:7: set_unmanaged_raw_ptr: Function "AddSynthesizedArg" sets a smart pointer with "ArgPtr". +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:104:10: assign: Assigning: "ArgPtr" = "*__begin2". +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:105:7: multiple_init_smart_ptr: Function "AddSynthesizedArg" sets a smart pointer with "ArgPtr", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:105:7: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 103| // Add allocated arguments to the final DAL. +# 104| for (auto *ArgPtr : AllocatedArgs) +# 105|-> Entry->AddSynthesizedArg(ArgPtr); +# 106| } +# 107| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/Driver.cpp:5486:7: var_decl: Declaring variable "DevA". +llvm-project-19.0.0.src/clang/lib/Driver/Driver.cpp:5494:7: uninit_use: Using uninitialized value "DevA". Field "DevA.InlineElts" is uninitialized. +# 5492| DepA->getOffloadingDeviceKind())); +# 5493| }); +# 5494|-> return DevA; +# 5495| } +# 5496| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:68:5: constructor_uses_global_object: The constructor of global object "ClangOffloadBundlerTimerGroup" itself makes use of global object "TimerLock" defined in another compilation unit. The order of construction is unspecified, so "ClangOffloadBundlerTimerGroup" might be created before "TimerLock" is available. +# 66| +# 67| static llvm::TimerGroup +# 68|-> ClangOffloadBundlerTimerGroup("Clang Offload Bundler Timer Group", +# 69| "Timer group for clang offload bundler"); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:68:5: destructor_uses_global_object: The destructor of global object "ClangOffloadBundlerTimerGroup" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "ClangOffloadBundlerTimerGroup" might be called after "fuzzer::TPC" has already been destroyed. +# 66| +# 67| static llvm::TimerGroup +# 68|-> ClangOffloadBundlerTimerGroup("Clang Offload Bundler Timer Group", +# 69| "Timer group for clang offload bundler"); +# 70| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:491:5: var_decl: Declaring variable "File". +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:495:5: uninit_use_in_call: Using uninitialized value "File". Field "File.InlineElts" is uninitialized when calling "push_front". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 493| sys::fs::createTemporaryFile("clang-offload-bundler", "tmp", File)) +# 494| return createFileError(File, EC); +# 495|-> Files.push_front(File); +# 496| +# 497| if (Contents) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp:172:3: var_decl: Declaring variable "BCLibs". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp:177:3: uninit_use: Using uninitialized value "BCLibs". Field "BCLibs.InlineElts" is uninitialized. +# 175| BCLibs.emplace_back(BCLib); +# 176| +# 177|-> return BCLibs; +# 178| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/CommonArgs.cpp:330:3: var_decl: Declaring variable "UnifiedFeatures". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/CommonArgs.cpp:337:3: uninit_use: Using uninitialized value "UnifiedFeatures". Field "UnifiedFeatures.InlineElts" is uninitialized. +# 335| } +# 336| +# 337|-> return UnifiedFeatures; +# 338| } +# 339| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:287:3: var_decl: Declaring variable "Paths". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:308:3: uninit_use: Using uninitialized value "Paths". Field "Paths.InlineElts" is uninitialized. +# 306| Paths.push_back(P.c_str()); +# 307| +# 308|-> return Paths; +# 309| } +# 310| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:408:3: var_decl: Declaring variable "Paths". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:412:3: uninit_use: Using uninitialized value "Paths". Field "Paths.InlineElts" is uninitialized. +# 410| Paths.push_back( +# 411| makePath({getDriver().ResourceDir, "lib", getMultiarchTriple(Triple)})); +# 412|-> return Paths; +# 413| } +# 414| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/Types.cpp:387:3: var_decl: Declaring variable "P". +llvm-project-19.0.0.src/clang/lib/Driver/Types.cpp:393:3: uninit_use: Using uninitialized value "P". Field "P.InlineElts" is uninitialized. +# 391| P.push_back(static_cast(I)); +# 392| assert(P.size() <= phases::MaxNumberOfPhases && "Too many phases in list"); +# 393|-> return P; +# 394| } +# 395| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:187:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:193:3: uninit_use_in_call: Using uninitialized value "data". Field "data.Length" is uninitialized when calling "push_back". +# 191| data.Text = text.copy(StrAlloc); +# 192| data.BeforePrev = beforePreviousInsertions; +# 193|-> CachedEdits.push_back(data); +# 194| } +# 195| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:217:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:222:3: uninit_use_in_call: Using uninitialized value "data". Field "data.BeforePrev" is uninitialized when calling "push_back". +# 220| data.Offset = Offs; +# 221| data.Length = Len; +# 222|-> CachedEdits.push_back(data); +# 223| } +# 224| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:103:3: tainted_data_return: Called function "Text.find_last_of(clang::format::Blanks, MaxSplitBytes)", and a possible return value is known to be less than zero. +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:103:3: assign: Assigning: "SpaceOffset" = "Text.find_last_of(clang::format::Blanks, MaxSplitBytes)". +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:130:5: overflow: The expression "SpaceOffset + 1UL" is considered to have possibly overflowed. +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:130:5: overflow_sink: "SpaceOffset + 1UL", which might have overflowed, is passed to "Text[SpaceOffset + 1UL]". +# 128| +# 129| // Avoid ever breaking before a @tag or a { in JavaScript. +# 130|-> if (Style.isJavaScript() && SpaceOffset + 1 < Text.size() && +# 131| (Text[SpaceOffset + 1] == '{' || Text[SpaceOffset + 1] == '@')) { +# 132| SpaceOffset = Text.find_last_of(Blanks, SpaceOffset); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:691:28: constructor_uses_global_object: The constructor of global object "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" might be created before "Allocator" is available. +# 689| +# 690| const llvm::StringSet<> +# 691|-> BreakableBlockComment::ContentIndentingJavadocAnnotations = { +# 692| "@param", "@return", "@returns", "@throws", "@type", "@template", +# 693| "@see", "@deprecated", "@define", "@exports", "@mods", "@private", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:691:28: constructor_uses_global_object: The constructor of global object "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" might be created before "fuzzer::TPC" is available. +# 689| +# 690| const llvm::StringSet<> +# 691|-> BreakableBlockComment::ContentIndentingJavadocAnnotations = { +# 692| "@param", "@return", "@returns", "@throws", "@type", "@template", +# 693| "@see", "@deprecated", "@define", "@exports", "@mods", "@private", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:691:28: constructor_uses_global_object: The constructor of global object "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" might be created before "scudo::RegionPageMap::Buffers" is available. +# 689| +# 690| const llvm::StringSet<> +# 691|-> BreakableBlockComment::ContentIndentingJavadocAnnotations = { +# 692| "@param", "@return", "@returns", "@throws", "@type", "@template", +# 693| "@see", "@deprecated", "@define", "@exports", "@mods", "@private", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Format/Format.cpp:3842:3: var_decl: Declaring variable "LangOpts". +llvm-project-19.0.0.src/clang/lib/Format/Format.cpp:3868:3: uninit_use: Using uninitialized value "LangOpts". Field "LangOpts.GPUDefaultStream" is uninitialized. +# 3866| LangOpts.DeclSpecKeyword = 1; // To get __declspec. +# 3867| LangOpts.C99 = 1; // To get kw_restrict for non-underscore-prefixed restrict. +# 3868|-> return LangOpts; +# 3869| } +# 3870| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/FormatTokenLexer.cpp:397:43: constructor_uses_global_object: The constructor of global object "clang::format::FormatTokenLexer::CSharpAttributeTargets" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::format::FormatTokenLexer::CSharpAttributeTargets" might be created before "Allocator" is available. +# 395| // Valid C# attribute targets: +# 396| // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets +# 397|-> const llvm::StringSet<> FormatTokenLexer::CSharpAttributeTargets = { +# 398| "assembly", "module", "field", "event", "method", +# 399| "param", "property", "return", "type", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/FormatTokenLexer.cpp:397:43: constructor_uses_global_object: The constructor of global object "clang::format::FormatTokenLexer::CSharpAttributeTargets" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::format::FormatTokenLexer::CSharpAttributeTargets" might be created before "fuzzer::TPC" is available. +# 395| // Valid C# attribute targets: +# 396| // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets +# 397|-> const llvm::StringSet<> FormatTokenLexer::CSharpAttributeTargets = { +# 398| "assembly", "module", "field", "event", "method", +# 399| "param", "property", "return", "type", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/FormatTokenLexer.cpp:397:43: constructor_uses_global_object: The constructor of global object "clang::format::FormatTokenLexer::CSharpAttributeTargets" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::format::FormatTokenLexer::CSharpAttributeTargets" might be created before "scudo::RegionPageMap::Buffers" is available. +# 395| // Valid C# attribute targets: +# 396| // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets +# 397|-> const llvm::StringSet<> FormatTokenLexer::CSharpAttributeTargets = { +# 398| "assembly", "module", "field", "event", "method", +# 399| "param", "property", "return", "type", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Format/SortJavaScriptImports.cpp:266:5: var_decl: Declaring variable "ReferencesSorted". +llvm-project-19.0.0.src/clang/lib/Format/SortJavaScriptImports.cpp:284:5: uninit_use: Using uninitialized value "ReferencesSorted". Field "ReferencesSorted.InlineElts" is uninitialized. +# 282| SortChunk.end()); +# 283| } +# 284|-> return ReferencesSorted; +# 285| } +# 286| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/ASTUnit.cpp:711:7: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/ASTUnit.cpp:711:7: leaked_storage: Failing to save or free storage allocated by "this->OwningPreviousClient.release()" leaks it. +# 709| ~CaptureDroppedDiagnostics() { +# 710| if (Diags.getClient() == &Client) +# 711|-> Diags.setClient(PreviousClient, !!OwningPreviousClient.release()); +# 712| } +# 713| }; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:453:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:453:3: var_assign: Assigning: "HeaderInfo" = storage returned from "new clang::HeaderSearch(std::shared_ptr(this->getHeaderSearchOptsPtr()), this->getSourceManager(), this->getDiagnostics(), this->getLangOpts(), this->getTarget())". +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:456:3: noescape: Resource "HeaderInfo" is not freed or pointed-to in "make_shared". +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:539:1: leaked_storage: Variable "HeaderInfo" going out of scope leaks the storage it points to. +# 537| /*ShowDepth=*/true, /*MSStyle=*/true); +# 538| } +# 539|-> } +# 540| +# 541| std::string CompilerInstance::getSpecificModuleCachePath(StringRef ModuleHash) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInvocation.cpp:1400:3: var_decl: Declaring variable "Values". +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInvocation.cpp:1402:3: uninit_use: Using uninitialized value "Values". Field "Values.InlineElts" is uninitialized. +# 1400| SmallVector Values; +# 1401| serializeSanitizerSet(S, Values); +# 1402|-> return Values; +# 1403| } +# 1404| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/Frontend/FrontendAction.cpp:1120:5: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-project-19.0.0.src/clang/lib/Frontend/FrontendAction.cpp:1120:5: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 1118| CI.resetAndLeakSema(); +# 1119| CI.resetAndLeakASTContext(); +# 1120|-> llvm::BuryPointer(CI.takeASTConsumer().get()); +# 1121| } else { +# 1122| CI.setSema(nullptr); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Frontend/LayoutOverrideSource.cpp:49:3: var_decl: Declaring variable "CurrentLayout". +llvm-project-19.0.0.src/clang/lib/Frontend/LayoutOverrideSource.cpp:62:9: uninit_use_in_call: Using uninitialized value "CurrentLayout.Align" when calling "operator =". +llvm-project-19.0.0.src/clang/lib/Frontend/LayoutOverrideSource.cpp:62:9: uninit_use_in_call: Using uninitialized value "CurrentLayout.Size" when calling "operator =". +# 60| // Flush the last type/layout, if there is one. +# 61| if (!CurrentType.empty()) +# 62|-> Layouts[CurrentType] = CurrentLayout; +# 63| CurrentLayout = Layout(); +# 64| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:991:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:991:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "MicrosoftExtHandler" with "new ::UnknownPragmaHandler("#pragma", Callbacks, PP->getLangOpts().MicrosoftExt)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1004:3: get_raw_ptr: Function "get" returns a pointer managed by "MicrosoftExtHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1004:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "MicrosoftExtHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1004:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1002| /*RequireTokenExpansion=*/PP.getLangOpts().MicrosoftExt)); +# 1003| +# 1004|-> PP.AddPragmaHandler(MicrosoftExtHandler.get()); +# 1005| PP.AddPragmaHandler("GCC", GCCHandler.get()); +# 1006| PP.AddPragmaHandler("clang", ClangHandler.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:996:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:996:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "GCCHandler" with "new ::UnknownPragmaHandler("#pragma GCC", Callbacks, PP->getLangOpts().MicrosoftExt)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1005:3: get_raw_ptr: Function "get" returns a pointer managed by "GCCHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1005:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "GCCHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1005:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1003| +# 1004| PP.AddPragmaHandler(MicrosoftExtHandler.get()); +# 1005|-> PP.AddPragmaHandler("GCC", GCCHandler.get()); +# 1006| PP.AddPragmaHandler("clang", ClangHandler.get()); +# 1007| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1000:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1000:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "ClangHandler" with "new ::UnknownPragmaHandler("#pragma clang", Callbacks, PP->getLangOpts().MicrosoftExt)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1006:3: get_raw_ptr: Function "get" returns a pointer managed by "ClangHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1006:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "ClangHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1006:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1004| PP.AddPragmaHandler(MicrosoftExtHandler.get()); +# 1005| PP.AddPragmaHandler("GCC", GCCHandler.get()); +# 1006|-> PP.AddPragmaHandler("clang", ClangHandler.get()); +# 1007| +# 1008| // The tokens after pragma omp need to be expanded. + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1013:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1013:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "OpenMPHandler" with "new ::UnknownPragmaHandler("#pragma omp", Callbacks, true)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1016:3: get_raw_ptr: Function "get" returns a pointer managed by "OpenMPHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1016:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "OpenMPHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1016:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1014| new UnknownPragmaHandler("#pragma omp", Callbacks, +# 1015| /*RequireTokenExpansion=*/true)); +# 1016|-> PP.AddPragmaHandler("omp", OpenMPHandler.get()); +# 1017| +# 1018| PP.addPPCallbacks(std::unique_ptr(Callbacks)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/Rewrite/FixItRewriter.cpp:48:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/Rewrite/FixItRewriter.cpp:48:3: leaked_storage: Failing to save or free storage allocated by "this->Owner.release()" leaks it. +# 46| +# 47| FixItRewriter::~FixItRewriter() { +# 48|-> Diags.setClient(Client, Owner.release() != nullptr); +# 49| } +# 50| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:139:5: address_of: Taking address with "&C" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:139:5: assign: Assigning: "CPtr" = "&C". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:143:5: ptr_arith: Using "CPtr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 141| // Begin and end before conversion. +# 142| unsigned char const *OriginalBegin = Begin; +# 143|-> llvm::ConversionResult Res = llvm::ConvertUTF8toUTF32( +# 144| &Begin, End, &CPtr, CPtr + 1, llvm::strictConversion); +# 145| (void)Res; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1056:7: tainted_data_return: Called function "llvm::sys::locale::columnWidth(llvm::StringRef(H.CodeToInsert))", and a possible return value may be less than zero. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1056:7: overflow: The expression "HintCol + llvm::sys::locale::columnWidth(llvm::StringRef(H.CodeToInsert))" might be negative, but is used in a context that treats it as unsigned. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1056:7: assign: Assigning: "PrevHintEndCol" = "HintCol + llvm::sys::locale::columnWidth(llvm::StringRef(H.CodeToInsert))". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1043:9: overflow: The expression "PrevHintEndCol + 1U" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1043:9: assign: Assigning: "HintCol" = "PrevHintEndCol + 1U". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: overflow: The expression "HintCol - PrevHintEndCol" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: overflow: The expression "FixItInsertionLine.size() + (HintCol - PrevHintEndCol)" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: overflow: The expression "FixItInsertionLine.size() + (HintCol - PrevHintEndCol) + H.CodeToInsert.size()" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1051:9: overflow_sink: "NewFixItLineSize", which might have underflowed, is passed to "FixItInsertionLine.resize(NewFixItLineSize, ' ')". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1049| H.CodeToInsert.size(); +# 1050| if (NewFixItLineSize > FixItInsertionLine.size()) +# 1051|-> FixItInsertionLine.resize(NewFixItLineSize, ' '); +# 1052| +# 1053| std::copy(H.CodeToInsert.begin(), H.CodeToInsert.end(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1083:3: var_decl: Declaring variable "LineRanges". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1121:3: uninit_use: Using uninitialized value "LineRanges". Field "LineRanges.InlineElts" is uninitialized. +# 1119| } +# 1120| +# 1121|-> return LineRanges; +# 1122| } +# 1123| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: tainted_data_return: Called function "C.find('\\', last)", and a possible return value is known to be less than zero. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: assign: Assigning: "loc" = "C.find('\\', last)". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: overflow: The expression "loc + 1UL" is considered to have possibly overflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: assign: Assigning: "last" = "loc + 1UL". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:806:5: overflow_sink: "last", which might have overflowed, is passed to "C[last]". +# 804| last = loc + 1; +# 805| +# 806|-> if (C[last] == '\n' || C[last] == '\r') { +# 807| ++last; +# 808| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: tainted_data_return: Called function "C.find('\\', last)", and a possible return value is known to be less than zero. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: assign: Assigning: "loc" = "C.find('\\', last)". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: overflow: The expression "loc + 1UL" is considered to have possibly overflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: assign: Assigning: "last" = "loc + 1UL". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:812:11: overflow: The expression "last - 1UL" is deemed overflowed because at least one of its arguments has overflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:812:11: overflow_sink: "last - 1UL", which might have underflowed, is passed to "C[last - 1UL]". +# 810| if (last < C.size()) +# 811| if (C[last] == '\n' || C[last] == '\r') +# 812|-> if (C[last] != C[last-1]) +# 813| ++last; +# 814| } else { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:1138:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:1138:3: leaked_storage: Failing to save or free storage allocated by "Owner.release()" leaks it. +# 1136| } +# 1137| +# 1138|-> Diags.setClient(CurClient, Owner.release() != nullptr); +# 1139| +# 1140| // Reset the buffer, we have processed all the diagnostics in it. + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:36:5: alloc_fn: Storage is returned from allocation function "operator new[]". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:36:5: var_assign: Assigning: "Buf" = storage returned from "new unsigned char[::ValueStorage::getPayloadOffset() + AllocSize]". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:38:5: identity_transfer: Passing "Buf" as argument 2 to function "operator new", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:38:5: noescape: Resource "Buf" is not freed or pointed-to in "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:38:5: var_assign: Assigning: "VS" = storage returned from "new (Buf) ::ValueStorage(DtorF, AllocSize, ElementsSize)". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:39:5: noescape: Resource "VS" is not freed or pointed-to in "getPayload". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:40:5: noescape: Resource "VS" is not freed or pointed-to in "getPayload". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:40:5: leaked_storage: Variable "VS" going out of scope leaks the storage it points to. +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:40:5: leaked_storage: Variable "Buf" going out of scope leaks the storage it points to. +# 38| ValueStorage *VS = new (Buf) ValueStorage(DtorF, AllocSize, ElementsSize); +# 39| std::memcpy(VS->getPayload(), Canary, sizeof(Canary)); +# 40|-> return VS->getPayload(); +# 41| } +# 42| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/DependencyDirectivesScanner.cpp:72:5: var_decl: Declaring variable "LangOpts". +llvm-project-19.0.0.src/clang/lib/Lex/DependencyDirectivesScanner.cpp:78:5: uninit_use: Using uninitialized value "LangOpts". Field "LangOpts.GPUDefaultStream" is uninitialized. +# 76| // FIXME: we do not enable C11 or C++11, so we are missing u/u8/U"" and +# 77| // R"()" literals. +# 78|-> return LangOpts; +# 79| } +# 80| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1533:3: var_decl: Declaring variable "CharBuf". +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1536:3: uninit_use: Using uninitialized value "CharBuf". Field "CharBuf.InlineElts" is uninitialized. +# 1534| llvm::raw_svector_ostream CharOS(CharBuf); +# 1535| llvm::write_hex(CharOS, C, llvm::HexPrintStyle::Upper, 4); +# 1536|-> return CharBuf; +# 1537| } +# 1538| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1818:3: address_of: Taking address with "&CodePoint" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1818:3: callee_ptr_arith: Passing "&CodePoint" to function "convertUTF8Sequence" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1816| const char *UnicodePtr = CharStart; +# 1817| +# 1818|-> llvm::ConversionResult ConvResult = llvm::convertUTF8Sequence( +# 1819| (const llvm::UTF8 **)&UnicodePtr, (const llvm::UTF8 *)BufferEnd, +# 1820| &CodePoint, llvm::strictConversion); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:3383:3: var_decl: Declaring variable "NumHexDigits" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:3404:3: uninit_use: Using uninitialized value "NumHexDigits". +# 3402| +# 3403| uint32_t CodePoint = 0; +# 3404|-> while (Count != NumHexDigits || Delimited) { +# 3405| char C = getCharAndSize(CurPtr, CharSize); +# 3406| if (!Delimited && Count == 0 && C == '{') { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:4431:5: address_of: Taking address with "&CodePoint" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:4431:5: callee_ptr_arith: Passing "&CodePoint" to function "convertUTF8Sequence" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 4429| // an escaped newline. +# 4430| --CurPtr; +# 4431|-> llvm::ConversionResult Status = +# 4432| llvm::convertUTF8Sequence((const llvm::UTF8 **)&CurPtr, +# 4433| (const llvm::UTF8 *)BufferEnd, + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Lex/MacroArgs.cpp:51:5: new_object: Calling single-object form of 'new': "new (llvm::safe_malloc(llvm::TrailingObjects::totalSizeToAlloc(UnexpArgTokens.size()))) clang::MacroArgs(UnexpArgTokens.size(), VarargsElided, MI->getNumParams())". +llvm-project-19.0.0.src/clang/lib/Lex/MacroArgs.cpp:51:5: assign: Assigning: "Result" = "new (llvm::safe_malloc(llvm::TrailingObjects::totalSizeToAlloc(UnexpArgTokens.size()))) clang::MacroArgs(UnexpArgTokens.size(), VarargsElided, MI->getNumParams())". +llvm-project-19.0.0.src/clang/lib/Lex/MacroArgs.cpp:69:5: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 67| "uninitialized array (as opposed to reusing a cached " +# 68| "MacroArgs)"); +# 69|-> std::copy(UnexpArgTokens.begin(), UnexpArgTokens.end(), +# 70| Result->getTrailingObjects()); +# 71| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Lex/ModuleMap.cpp:918:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Lex/ModuleMap.cpp:918:5: leaked_storage: Ignoring storage allocated by "Submodule->release()" leaks it. +# 916| for (auto &Submodule : PendingSubmodules) { +# 917| Submodule->setParent(Result); +# 918|-> Submodule.release(); // now owned by parent +# 919| } +# 920| PendingSubmodules.clear(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1320:3: var_decl: Declaring variable "ResultTok" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1392:9: uninit_use_in_call: Using uninitialized value "ResultTok.Kind" when calling "getIdentifierInfo". +# 1390| if (!SuppressDiagnostic) { +# 1391| if (auto Diag = PP.Diag(Tok.getLocation(), diag::err_pp_expected_after)) { +# 1392|-> if (IdentifierInfo *LastII = ResultTok.getIdentifierInfo()) +# 1393| Diag << LastII; +# 1394| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1320:3: var_decl: Declaring variable "ResultTok" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1392:9: uninit_use_in_call: Using uninitialized value "ResultTok.Kind" when calling "getIdentifierInfo". +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1392:9: uninit_use_in_call: Using uninitialized value "ResultTok.PtrData" when calling "getIdentifierInfo". +# 1390| if (!SuppressDiagnostic) { +# 1391| if (auto Diag = PP.Diag(Tok.getLocation(), diag::err_pp_expected_after)) { +# 1392|-> if (IdentifierInfo *LastII = ResultTok.getIdentifierInfo()) +# 1393| Diag << LastII; +# 1394| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1320:3: var_decl: Declaring variable "ResultTok" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1396:9: uninit_use_in_call: Using uninitialized value "ResultTok.Loc" when calling "getLocation". +# 1394| else +# 1395| Diag << ResultTok.getKind(); +# 1396|-> Diag << tok::r_paren << ResultTok.getLocation(); +# 1397| } +# 1398| PP.Diag(LParenLoc, diag::note_matching) << tok::l_paren; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Lex/Pragma.cpp:103:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Lex/Pragma.cpp:103:3: leaked_storage: Ignoring storage allocated by "llvm::iterator_facade_base > >, std::forward_iterator_tag, llvm::StringMapEntry > >, long, llvm::StringMapEntry > > *, llvm::StringMapEntry I->getValue().release(); +# 104| Handlers.erase(I); +# 105| } +llvm-project-19.0.0.src/clang/lib/Lex/Pragma.cpp:103:3: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:634:3: var_decl: Declaring variable "Clauses". +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:649:7: uninit_use: Using uninitialized value "Clauses". Field "Clauses.InlineElts" is uninitialized. +# 647| // error. +# 648| SkipUntilEndOfDirective(*this); +# 649|-> return Clauses; +# 650| } +# 651| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:634:3: var_decl: Declaring variable "Clauses". +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:652:3: uninit_use: Using uninitialized value "Clauses". Field "Clauses.InlineElts" is uninitialized. +# 650| } +# 651| } +# 652|-> return Clauses; +# 653| } +# 654| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:1266:3: var_decl: Declaring variable "Vars". +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:1273:5: uninit_use: Using uninitialized value "Vars". Field "Vars.InlineElts" is uninitialized. +# 1271| } else if (CanContinue == OpenACCParseCanContinue::Cannot) { +# 1272| SkipUntil(tok::r_paren, tok::annot_pragma_openacc_end, StopBeforeMatch); +# 1273|-> return Vars; +# 1274| } +# 1275| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:419:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:419:3: assign_smart_ptr: Function "operator =" assigns "this->AlignHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:420:3: get_raw_ptr: Function "get" returns a pointer managed by "this->AlignHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:420:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->AlignHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:420:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 418| void Parser::initializePragmaHandlers() { +# 419| AlignHandler = std::make_unique(); +# 420|-> PP.AddPragmaHandler(AlignHandler.get()); +# 421| +# 422| GCCVisibilityHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:422:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:422:3: assign_smart_ptr: Function "operator =" assigns "this->GCCVisibilityHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:423:3: get_raw_ptr: Function "get" returns a pointer managed by "this->GCCVisibilityHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:423:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->GCCVisibilityHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:423:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 421| +# 422| GCCVisibilityHandler = std::make_unique(); +# 423|-> PP.AddPragmaHandler("GCC", GCCVisibilityHandler.get()); +# 424| +# 425| OptionsHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:425:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:425:3: assign_smart_ptr: Function "operator =" assigns "this->OptionsHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:426:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OptionsHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:426:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OptionsHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:426:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 424| +# 425| OptionsHandler = std::make_unique(); +# 426|-> PP.AddPragmaHandler(OptionsHandler.get()); +# 427| +# 428| PackHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:428:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:428:3: assign_smart_ptr: Function "operator =" assigns "this->PackHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:429:3: get_raw_ptr: Function "get" returns a pointer managed by "this->PackHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:429:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->PackHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:429:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 427| +# 428| PackHandler = std::make_unique(); +# 429|-> PP.AddPragmaHandler(PackHandler.get()); +# 430| +# 431| MSStructHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:431:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:431:3: assign_smart_ptr: Function "operator =" assigns "this->MSStructHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:432:3: get_raw_ptr: Function "get" returns a pointer managed by "this->MSStructHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:432:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSStructHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:432:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 430| +# 431| MSStructHandler = std::make_unique(); +# 432|-> PP.AddPragmaHandler(MSStructHandler.get()); +# 433| +# 434| UnusedHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:434:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:434:3: assign_smart_ptr: Function "operator =" assigns "this->UnusedHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:435:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnusedHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:435:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnusedHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:435:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 433| +# 434| UnusedHandler = std::make_unique(); +# 435|-> PP.AddPragmaHandler(UnusedHandler.get()); +# 436| +# 437| WeakHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:437:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:437:3: assign_smart_ptr: Function "operator =" assigns "this->WeakHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:438:3: get_raw_ptr: Function "get" returns a pointer managed by "this->WeakHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:438:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->WeakHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:438:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 436| +# 437| WeakHandler = std::make_unique(); +# 438|-> PP.AddPragmaHandler(WeakHandler.get()); +# 439| +# 440| RedefineExtnameHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:440:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:440:3: assign_smart_ptr: Function "operator =" assigns "this->RedefineExtnameHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:441:3: get_raw_ptr: Function "get" returns a pointer managed by "this->RedefineExtnameHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:441:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->RedefineExtnameHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:441:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 439| +# 440| RedefineExtnameHandler = std::make_unique(); +# 441|-> PP.AddPragmaHandler(RedefineExtnameHandler.get()); +# 442| +# 443| FPContractHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:443:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:443:3: assign_smart_ptr: Function "operator =" assigns "this->FPContractHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:444:3: get_raw_ptr: Function "get" returns a pointer managed by "this->FPContractHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:444:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FPContractHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:444:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 442| +# 443| FPContractHandler = std::make_unique(); +# 444|-> PP.AddPragmaHandler("STDC", FPContractHandler.get()); +# 445| +# 446| STDCFenvAccessHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:446:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:446:3: assign_smart_ptr: Function "operator =" assigns "this->STDCFenvAccessHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:447:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCFenvAccessHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:447:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCFenvAccessHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:447:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 445| +# 446| STDCFenvAccessHandler = std::make_unique(); +# 447|-> PP.AddPragmaHandler("STDC", STDCFenvAccessHandler.get()); +# 448| +# 449| STDCFenvRoundHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:449:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:449:3: assign_smart_ptr: Function "operator =" assigns "this->STDCFenvRoundHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:450:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCFenvRoundHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:450:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCFenvRoundHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:450:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 448| +# 449| STDCFenvRoundHandler = std::make_unique(); +# 450|-> PP.AddPragmaHandler("STDC", STDCFenvRoundHandler.get()); +# 451| +# 452| STDCCXLIMITHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:452:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:452:3: assign_smart_ptr: Function "operator =" assigns "this->STDCCXLIMITHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:453:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCCXLIMITHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:453:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCCXLIMITHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:453:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 451| +# 452| STDCCXLIMITHandler = std::make_unique(); +# 453|-> PP.AddPragmaHandler("STDC", STDCCXLIMITHandler.get()); +# 454| +# 455| STDCUnknownHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:455:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:455:3: assign_smart_ptr: Function "operator =" assigns "this->STDCUnknownHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:456:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCUnknownHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:456:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCUnknownHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:456:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 454| +# 455| STDCUnknownHandler = std::make_unique(); +# 456|-> PP.AddPragmaHandler("STDC", STDCUnknownHandler.get()); +# 457| +# 458| PCSectionHandler = std::make_unique(Actions); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:458:3: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:458:3: assign_smart_ptr: Function "operator =" assigns "this->PCSectionHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:459:3: get_raw_ptr: Function "get" returns a pointer managed by "this->PCSectionHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:459:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->PCSectionHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:459:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 457| +# 458| PCSectionHandler = std::make_unique(Actions); +# 459|-> PP.AddPragmaHandler("clang", PCSectionHandler.get()); +# 460| +# 461| if (getLangOpts().OpenCL) { + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:462:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:462:5: assign_smart_ptr: Function "operator =" assigns "this->OpenCLExtensionHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:463:5: get_raw_ptr: Function "get" returns a pointer managed by "this->OpenCLExtensionHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:463:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OpenCLExtensionHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:463:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 461| if (getLangOpts().OpenCL) { +# 462| OpenCLExtensionHandler = std::make_unique(); +# 463|-> PP.AddPragmaHandler("OPENCL", OpenCLExtensionHandler.get()); +# 464| +# 465| PP.AddPragmaHandler("OPENCL", FPContractHandler.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:465:5: get_raw_ptr: Function "get" returns a pointer managed by "this->FPContractHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:465:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FPContractHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:465:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 463| PP.AddPragmaHandler("OPENCL", OpenCLExtensionHandler.get()); +# 464| +# 465|-> PP.AddPragmaHandler("OPENCL", FPContractHandler.get()); +# 466| } +# 467| if (getLangOpts().OpenMP) + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:468:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:468:5: assign_smart_ptr: Function "operator =" assigns "this->OpenMPHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:471:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OpenMPHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:471:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OpenMPHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:471:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 469| else +# 470| OpenMPHandler = std::make_unique(); +# 471|-> PP.AddPragmaHandler(OpenMPHandler.get()); +# 472| +# 473| if (getLangOpts().OpenACC) + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:474:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:474:5: assign_smart_ptr: Function "operator =" assigns "this->OpenACCHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:477:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OpenACCHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:477:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OpenACCHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:477:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 475| else +# 476| OpenACCHandler = std::make_unique(); +# 477|-> PP.AddPragmaHandler(OpenACCHandler.get()); +# 478| +# 479| if (getLangOpts().MicrosoftExt || + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:481:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:481:5: assign_smart_ptr: Function "operator =" assigns "this->MSCommentHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:482:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSCommentHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:482:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSCommentHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:482:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 480| getTargetInfo().getTriple().isOSBinFormatELF()) { +# 481| MSCommentHandler = std::make_unique(Actions); +# 482|-> PP.AddPragmaHandler(MSCommentHandler.get()); +# 483| } +# 484| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:485:3: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:485:3: assign_smart_ptr: Function "operator =" assigns "this->FloatControlHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:486:3: get_raw_ptr: Function "get" returns a pointer managed by "this->FloatControlHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:486:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FloatControlHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:486:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 484| +# 485| FloatControlHandler = std::make_unique(Actions); +# 486|-> PP.AddPragmaHandler(FloatControlHandler.get()); +# 487| if (getLangOpts().MicrosoftExt) { +# 488| MSDetectMismatchHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:488:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:488:5: assign_smart_ptr: Function "operator =" assigns "this->MSDetectMismatchHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:490:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSDetectMismatchHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:490:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSDetectMismatchHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:490:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 488| MSDetectMismatchHandler = +# 489| std::make_unique(Actions); +# 490|-> PP.AddPragmaHandler(MSDetectMismatchHandler.get()); +# 491| MSPointersToMembers = std::make_unique(); +# 492| PP.AddPragmaHandler(MSPointersToMembers.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:491:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:491:5: assign_smart_ptr: Function "operator =" assigns "this->MSPointersToMembers" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:492:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSPointersToMembers". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:492:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSPointersToMembers.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:492:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 490| PP.AddPragmaHandler(MSDetectMismatchHandler.get()); +# 491| MSPointersToMembers = std::make_unique(); +# 492|-> PP.AddPragmaHandler(MSPointersToMembers.get()); +# 493| MSVtorDisp = std::make_unique(); +# 494| PP.AddPragmaHandler(MSVtorDisp.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:493:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:493:5: assign_smart_ptr: Function "operator =" assigns "this->MSVtorDisp" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:494:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSVtorDisp". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:494:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSVtorDisp.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:494:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 492| PP.AddPragmaHandler(MSPointersToMembers.get()); +# 493| MSVtorDisp = std::make_unique(); +# 494|-> PP.AddPragmaHandler(MSVtorDisp.get()); +# 495| MSInitSeg = std::make_unique("init_seg"); +# 496| PP.AddPragmaHandler(MSInitSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:495:5: assign: Assigning: "" = "std::make_unique("init_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:495:5: assign_smart_ptr: Function "operator =" assigns "this->MSInitSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:496:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSInitSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:496:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSInitSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:496:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 494| PP.AddPragmaHandler(MSVtorDisp.get()); +# 495| MSInitSeg = std::make_unique("init_seg"); +# 496|-> PP.AddPragmaHandler(MSInitSeg.get()); +# 497| MSDataSeg = std::make_unique("data_seg"); +# 498| PP.AddPragmaHandler(MSDataSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:497:5: assign: Assigning: "" = "std::make_unique("data_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:497:5: assign_smart_ptr: Function "operator =" assigns "this->MSDataSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:498:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSDataSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:498:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSDataSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:498:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 496| PP.AddPragmaHandler(MSInitSeg.get()); +# 497| MSDataSeg = std::make_unique("data_seg"); +# 498|-> PP.AddPragmaHandler(MSDataSeg.get()); +# 499| MSBSSSeg = std::make_unique("bss_seg"); +# 500| PP.AddPragmaHandler(MSBSSSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:499:5: assign: Assigning: "" = "std::make_unique("bss_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:499:5: assign_smart_ptr: Function "operator =" assigns "this->MSBSSSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:500:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSBSSSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:500:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSBSSSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:500:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 498| PP.AddPragmaHandler(MSDataSeg.get()); +# 499| MSBSSSeg = std::make_unique("bss_seg"); +# 500|-> PP.AddPragmaHandler(MSBSSSeg.get()); +# 501| MSConstSeg = std::make_unique("const_seg"); +# 502| PP.AddPragmaHandler(MSConstSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:501:5: assign: Assigning: "" = "std::make_unique("const_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:501:5: assign_smart_ptr: Function "operator =" assigns "this->MSConstSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:502:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSConstSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:502:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSConstSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:502:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 500| PP.AddPragmaHandler(MSBSSSeg.get()); +# 501| MSConstSeg = std::make_unique("const_seg"); +# 502|-> PP.AddPragmaHandler(MSConstSeg.get()); +# 503| MSCodeSeg = std::make_unique("code_seg"); +# 504| PP.AddPragmaHandler(MSCodeSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:503:5: assign: Assigning: "" = "std::make_unique("code_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:503:5: assign_smart_ptr: Function "operator =" assigns "this->MSCodeSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:504:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSCodeSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:504:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSCodeSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:504:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 502| PP.AddPragmaHandler(MSConstSeg.get()); +# 503| MSCodeSeg = std::make_unique("code_seg"); +# 504|-> PP.AddPragmaHandler(MSCodeSeg.get()); +# 505| MSSection = std::make_unique("section"); +# 506| PP.AddPragmaHandler(MSSection.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:505:5: assign: Assigning: "" = "std::make_unique("section")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:505:5: assign_smart_ptr: Function "operator =" assigns "this->MSSection" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:506:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSSection". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:506:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSSection.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:506:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 504| PP.AddPragmaHandler(MSCodeSeg.get()); +# 505| MSSection = std::make_unique("section"); +# 506|-> PP.AddPragmaHandler(MSSection.get()); +# 507| MSStrictGuardStackCheck = +# 508| std::make_unique("strict_gs_check"); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:507:5: assign: Assigning: "" = "std::make_unique("strict_gs_check")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:507:5: assign_smart_ptr: Function "operator =" assigns "this->MSStrictGuardStackCheck" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:509:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSStrictGuardStackCheck". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:509:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSStrictGuardStackCheck.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:509:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 507| MSStrictGuardStackCheck = +# 508| std::make_unique("strict_gs_check"); +# 509|-> PP.AddPragmaHandler(MSStrictGuardStackCheck.get()); +# 510| MSFunction = std::make_unique("function"); +# 511| PP.AddPragmaHandler(MSFunction.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:510:5: assign: Assigning: "" = "std::make_unique("function")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:510:5: assign_smart_ptr: Function "operator =" assigns "this->MSFunction" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:511:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSFunction". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:511:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSFunction.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:511:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 509| PP.AddPragmaHandler(MSStrictGuardStackCheck.get()); +# 510| MSFunction = std::make_unique("function"); +# 511|-> PP.AddPragmaHandler(MSFunction.get()); +# 512| MSAllocText = std::make_unique("alloc_text"); +# 513| PP.AddPragmaHandler(MSAllocText.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:512:5: assign: Assigning: "" = "std::make_unique("alloc_text")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:512:5: assign_smart_ptr: Function "operator =" assigns "this->MSAllocText" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:513:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSAllocText". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:513:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSAllocText.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:513:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 511| PP.AddPragmaHandler(MSFunction.get()); +# 512| MSAllocText = std::make_unique("alloc_text"); +# 513|-> PP.AddPragmaHandler(MSAllocText.get()); +# 514| MSOptimize = std::make_unique("optimize"); +# 515| PP.AddPragmaHandler(MSOptimize.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:514:5: assign: Assigning: "" = "std::make_unique("optimize")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:514:5: assign_smart_ptr: Function "operator =" assigns "this->MSOptimize" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:515:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSOptimize". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:515:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSOptimize.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:515:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 513| PP.AddPragmaHandler(MSAllocText.get()); +# 514| MSOptimize = std::make_unique("optimize"); +# 515|-> PP.AddPragmaHandler(MSOptimize.get()); +# 516| MSRuntimeChecks = std::make_unique(); +# 517| PP.AddPragmaHandler(MSRuntimeChecks.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:516:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:516:5: assign_smart_ptr: Function "operator =" assigns "this->MSRuntimeChecks" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:517:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSRuntimeChecks". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:517:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSRuntimeChecks.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:517:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 515| PP.AddPragmaHandler(MSOptimize.get()); +# 516| MSRuntimeChecks = std::make_unique(); +# 517|-> PP.AddPragmaHandler(MSRuntimeChecks.get()); +# 518| MSIntrinsic = std::make_unique(); +# 519| PP.AddPragmaHandler(MSIntrinsic.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:518:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:518:5: assign_smart_ptr: Function "operator =" assigns "this->MSIntrinsic" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:519:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSIntrinsic". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:519:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSIntrinsic.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:519:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 517| PP.AddPragmaHandler(MSRuntimeChecks.get()); +# 518| MSIntrinsic = std::make_unique(); +# 519|-> PP.AddPragmaHandler(MSIntrinsic.get()); +# 520| MSFenvAccess = std::make_unique(); +# 521| PP.AddPragmaHandler(MSFenvAccess.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:520:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:520:5: assign_smart_ptr: Function "operator =" assigns "this->MSFenvAccess" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:521:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSFenvAccess". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:521:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSFenvAccess.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:521:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 519| PP.AddPragmaHandler(MSIntrinsic.get()); +# 520| MSFenvAccess = std::make_unique(); +# 521|-> PP.AddPragmaHandler(MSFenvAccess.get()); +# 522| } +# 523| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:525:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:525:5: assign_smart_ptr: Function "operator =" assigns "this->CUDAForceHostDeviceHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:527:5: get_raw_ptr: Function "get" returns a pointer managed by "this->CUDAForceHostDeviceHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:527:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->CUDAForceHostDeviceHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:527:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 525| CUDAForceHostDeviceHandler = +# 526| std::make_unique(Actions); +# 527|-> PP.AddPragmaHandler("clang", CUDAForceHostDeviceHandler.get()); +# 528| } +# 529| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:530:3: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:530:3: assign_smart_ptr: Function "operator =" assigns "this->OptimizeHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:531:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OptimizeHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:531:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OptimizeHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:531:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 529| +# 530| OptimizeHandler = std::make_unique(Actions); +# 531|-> PP.AddPragmaHandler("clang", OptimizeHandler.get()); +# 532| +# 533| LoopHintHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:533:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:533:3: assign_smart_ptr: Function "operator =" assigns "this->LoopHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:534:3: get_raw_ptr: Function "get" returns a pointer managed by "this->LoopHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:534:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->LoopHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:534:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 532| +# 533| LoopHintHandler = std::make_unique(); +# 534|-> PP.AddPragmaHandler("clang", LoopHintHandler.get()); +# 535| +# 536| UnrollHintHandler = std::make_unique("unroll"); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:536:3: assign: Assigning: "" = "std::make_unique("unroll")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:536:3: assign_smart_ptr: Function "operator =" assigns "this->UnrollHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:537:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:537:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:537:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 535| +# 536| UnrollHintHandler = std::make_unique("unroll"); +# 537|-> PP.AddPragmaHandler(UnrollHintHandler.get()); +# 538| PP.AddPragmaHandler("GCC", UnrollHintHandler.get()); +# 539| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:538:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:538:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:538:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 536| UnrollHintHandler = std::make_unique("unroll"); +# 537| PP.AddPragmaHandler(UnrollHintHandler.get()); +# 538|-> PP.AddPragmaHandler("GCC", UnrollHintHandler.get()); +# 539| +# 540| NoUnrollHintHandler = std::make_unique("nounroll"); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:540:3: assign: Assigning: "" = "std::make_unique("nounroll")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:540:3: assign_smart_ptr: Function "operator =" assigns "this->NoUnrollHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:541:3: get_raw_ptr: Function "get" returns a pointer managed by "this->NoUnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:541:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->NoUnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:541:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 539| +# 540| NoUnrollHintHandler = std::make_unique("nounroll"); +# 541|-> PP.AddPragmaHandler(NoUnrollHintHandler.get()); +# 542| PP.AddPragmaHandler("GCC", NoUnrollHintHandler.get()); +# 543| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:542:3: get_raw_ptr: Function "get" returns a pointer managed by "this->NoUnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:542:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->NoUnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:542:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 540| NoUnrollHintHandler = std::make_unique("nounroll"); +# 541| PP.AddPragmaHandler(NoUnrollHintHandler.get()); +# 542|-> PP.AddPragmaHandler("GCC", NoUnrollHintHandler.get()); +# 543| +# 544| UnrollAndJamHintHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:544:3: assign: Assigning: "" = "std::make_unique("unroll_and_jam")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:544:3: assign_smart_ptr: Function "operator =" assigns "this->UnrollAndJamHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:546:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnrollAndJamHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:546:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnrollAndJamHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:546:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 544| UnrollAndJamHintHandler = +# 545| std::make_unique("unroll_and_jam"); +# 546|-> PP.AddPragmaHandler(UnrollAndJamHintHandler.get()); +# 547| +# 548| NoUnrollAndJamHintHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:548:3: assign: Assigning: "" = "std::make_unique("nounroll_and_jam")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:548:3: assign_smart_ptr: Function "operator =" assigns "this->NoUnrollAndJamHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:550:3: get_raw_ptr: Function "get" returns a pointer managed by "this->NoUnrollAndJamHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:550:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->NoUnrollAndJamHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:550:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 548| NoUnrollAndJamHintHandler = +# 549| std::make_unique("nounroll_and_jam"); +# 550|-> PP.AddPragmaHandler(NoUnrollAndJamHintHandler.get()); +# 551| +# 552| FPHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:552:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:552:3: assign_smart_ptr: Function "operator =" assigns "this->FPHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:553:3: get_raw_ptr: Function "get" returns a pointer managed by "this->FPHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:553:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FPHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:553:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 551| +# 552| FPHandler = std::make_unique(); +# 553|-> PP.AddPragmaHandler("clang", FPHandler.get()); +# 554| +# 555| AttributePragmaHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:555:3: assign: Assigning: "" = "std::make_unique(this->AttrFactory)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:555:3: assign_smart_ptr: Function "operator =" assigns "this->AttributePragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:557:3: get_raw_ptr: Function "get" returns a pointer managed by "this->AttributePragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:557:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->AttributePragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:557:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 555| AttributePragmaHandler = +# 556| std::make_unique(AttrFactory); +# 557|-> PP.AddPragmaHandler("clang", AttributePragmaHandler.get()); +# 558| +# 559| MaxTokensHerePragmaHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:559:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:559:3: assign_smart_ptr: Function "operator =" assigns "this->MaxTokensHerePragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:560:3: get_raw_ptr: Function "get" returns a pointer managed by "this->MaxTokensHerePragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:560:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MaxTokensHerePragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:560:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 558| +# 559| MaxTokensHerePragmaHandler = std::make_unique(); +# 560|-> PP.AddPragmaHandler("clang", MaxTokensHerePragmaHandler.get()); +# 561| +# 562| MaxTokensTotalPragmaHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:562:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:562:3: assign_smart_ptr: Function "operator =" assigns "this->MaxTokensTotalPragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:563:3: get_raw_ptr: Function "get" returns a pointer managed by "this->MaxTokensTotalPragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:563:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MaxTokensTotalPragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:563:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 561| +# 562| MaxTokensTotalPragmaHandler = std::make_unique(); +# 563|-> PP.AddPragmaHandler("clang", MaxTokensTotalPragmaHandler.get()); +# 564| +# 565| if (getTargetInfo().getTriple().isRISCV()) { + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:566:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:566:5: assign_smart_ptr: Function "operator =" assigns "this->RISCVPragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:567:5: get_raw_ptr: Function "get" returns a pointer managed by "this->RISCVPragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:567:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->RISCVPragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:567:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 565| if (getTargetInfo().getTriple().isRISCV()) { +# 566| RISCVPragmaHandler = std::make_unique(Actions); +# 567|-> PP.AddPragmaHandler("clang", RISCVPragmaHandler.get()); +# 568| } +# 569| } + +Error: VIRTUAL_DTOR (CWE-772): +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:55:9: no_virtual_dtor: Class "::DeltaTreeNode" does not have a virtual destructor. +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:128:5: dtor_in_derived: Class "::DeltaTreeInteriorNode" has a destructor and a pointer to it is upcast to class "::DeltaTreeNode" which doesn't have a virtual destructor. +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:314:5: upcast: Example 1: Casting from a pointer to "::DeltaTreeInteriorNode" to a pointer to "::DeltaTreeNode" in "New". +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:163:5: delete: Example 1: Deletion of type "::DeltaTreeNode". +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:311:5: alloc: Example 1: Allocated an object of type "::DeltaTreeInteriorNode". +# 53| /// DeltaTreeNode - The common part of all nodes. +# 54| /// +# 55|-> class DeltaTreeNode { +# 56| public: +# 57| struct InsertResult { + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Rewrite/Rewriter.cpp:299:3: tainted_data_return: Called function "this->getRangeSize(clang::SourceRange(Loc, Loc), rangeOpts)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/clang/lib/Rewrite/Rewriter.cpp:299:3: overflow: The expression "StartOffs += this->getRangeSize(clang::SourceRange(Loc, Loc), rangeOpts)" might be negative, but is used in a context that treats it as unsigned. +llvm-project-19.0.0.src/clang/lib/Rewrite/Rewriter.cpp:300:3: overflow_sink: "StartOffs", which might be negative, is passed to "this->getEditBuffer(FID)->InsertText(StartOffs, Str, true)". +# 298| rangeOpts.IncludeInsertsAtBeginOfRange = false; +# 299| StartOffs += getRangeSize(SourceRange(Loc, Loc), rangeOpts); +# 300|-> getEditBuffer(FID).InsertText(StartOffs, Str, /*InsertAfter*/true); +# 301| return false; +# 302| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/AnalysisBasedWarnings.cpp:1827:5: var_decl: Declaring variable "ONS". +llvm-project-19.0.0.src/clang/lib/Sema/AnalysisBasedWarnings.cpp:1836:5: uninit_use: Using uninitialized value "ONS". Field "ONS.InlineElts" is uninitialized. +# 1834| ONS.push_back(std::move(FNote)); +# 1835| } +# 1836|-> return ONS; +# 1837| } +# 1838| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/DeclSpec.cpp:191:3: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/Sema/DeclSpec.cpp:291:3: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 289| } +# 290| +# 291|-> return I; +# 292| } +# 293| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCXXScopeSpec.cpp:1020:3: new_object: Calling single-object form of 'new': "new (Mem) ::NestedNameSpecifierAnnotation". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCXXScopeSpec.cpp:1020:3: assign: Assigning: "Annotation" = "new (Mem) ::NestedNameSpecifierAnnotation". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCXXScopeSpec.cpp:1023:3: ptr_arith: Using "Annotation" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1021| = new (Mem) NestedNameSpecifierAnnotation; +# 1022| Annotation->NNS = SS.getScopeRep(); +# 1023|-> memcpy(Annotation + 1, SS.location_data(), SS.location_size()); +# 1024| return Annotation; +# 1025| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:321:3: var_decl: Declaring variable "AlignResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:353:5: uninit_use_in_call: Using uninitialized value "AlignResult.Val.Data" when calling "~EvalResult". +# 351| SourceLocation(), Source); +# 352| if (SrcArg.isInvalid()) +# 353|-> return true; +# 354| TheCall->setArg(0, SrcArg.get()); +# 355| ExprResult AlignArg = + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:11766:5: address_of: Taking address with "&CodePoint" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:11766:5: callee_ptr_arith: Passing "&CodePoint" to function "convertUTF8Sequence" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +#11764| const llvm::UTF8 *E = +#11765| reinterpret_cast(csStart + csLen); +#11766|-> llvm::ConversionResult Result = +#11767| llvm::convertUTF8Sequence(B, E, &CodePoint, llvm::strictConversion); +#11768| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16122:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16137:3: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#16135| S.Diag(ExprLoc, diag::warn_left_shift_in_bool_context) << E; +#16136| } +#16137|-> } +#16138| +#16139| if (const auto *CO = dyn_cast(E)) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16392:7: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16412:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#16410| } +#16411| } +#16412|-> } +#16413| } else if (Target->isUnsaturatedFixedPointType()) { +#16414| if (Source->isIntegerType()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16415:7: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16433:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#16431| } +#16432| } +#16433|-> } +#16434| } +#16435| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1124:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1131:5: uninit_use_in_call: Using uninitialized value "Result" when calling "CodeCompletionResult". +# 1129| std::move(R.FixIts)); +# 1130| Result.ShadowDecl = Using; +# 1131|-> MaybeAddResult(Result, CurContext); +# 1132| return; +# 1133| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1361:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1368:5: uninit_use_in_call: Using uninitialized value "Result" when calling "CodeCompletionResult". +# 1366| std::move(R.FixIts)); +# 1367| Result.ShadowDecl = Using; +# 1368|-> AddResult(Result, CurContext, Hiding, /*InBaseClass=*/false, +# 1369| /*BaseExprType=*/BaseExprType); +# 1370| return; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1744:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1746:5: uninit_use_in_call: Using uninitialized value "Result" when calling "CodeCompletionResult". +# 1744| ResultBuilder::Result Result(ND, Results.getBasePriority(ND), nullptr, +# 1745| false, IsAccessible(ND, Ctx), FixIts); +# 1746|-> Results.AddResult(Result, InitialLookupCtx, Hiding, InBaseClass, BaseType); +# 1747| } +# 1748| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5564:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5566:7: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 5564| SmallVector Result; +# 5565| if (DC == nullptr) +# 5566|-> return Result; +# 5567| // Primary templates can have constraints. +# 5568| if (const auto *TD = cast(DC)->getDescribedTemplate()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5564:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5576:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 5574| if (const auto *VTPSD = dyn_cast(DC)) +# 5575| VTPSD->getAssociatedConstraints(Result); +# 5576|-> return Result; +# 5577| } +# 5578| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1407:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1419:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 1417| Res.emplace_back(Combined); +# 1418| } +# 1419|-> return Res; +# 1420| } +# 1421| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1436:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1449:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 1447| } +# 1448| } +# 1449|-> return Res; +# 1450| } +# 1451| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDecl.cpp:6636:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDecl.cpp:6639:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 6637| if (!VLATy->getSizeExpr() || +# 6638| !VLATy->getSizeExpr()->EvaluateAsInt(Result, Context)) +# 6639|-> return QualType(); +# 6640| +# 6641| llvm::APSInt Res = Result.Val.getInt(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclAttr.cpp:10179:7: var_decl: Declaring variable "EmptyWeakInfos". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclAttr.cpp:10180:7: uninit_use_in_call: Using uninitialized value "EmptyWeakInfos.set_.TheMap.NumEntries" when calling "swap". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclAttr.cpp:10180:7: uninit_use_in_call: Using uninitialized value "EmptyWeakInfos.set_.TheMap.NumTombstones" when calling "swap". +#10178| DeclApplyPragmaWeak(S, ND, W); +#10179| std::remove_reference_t EmptyWeakInfos; +#10180|-> WeakInfos.swap(EmptyWeakInfos); +#10181| } +#10182| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9234:3: var_decl: Declaring variable "ExceptSpec". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9237:5: uninit_use: Using uninitialized value "ExceptSpec". Field "ExceptSpec.Exceptions.InlineElts" is uninitialized. +# 9235| +# 9236| if (FD->isInvalidDecl()) +# 9237|-> return ExceptSpec; +# 9238| +# 9239| // The common case is that we just defined the comparison function. In that + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9234:3: var_decl: Declaring variable "ExceptSpec". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9270:3: uninit_use: Using uninitialized value "ExceptSpec". Field "ExceptSpec.Exceptions.InlineElts" is uninitialized. +# 9268| } +# 9269| +# 9270|-> return ExceptSpec; +# 9271| } +# 9272| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:17494:3: var_decl: Declaring variable "Status". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:17505:5: uninit_use_in_call: Using uninitialized value "Status.Val.Data" when calling "~EvalResult". +#17503| for (const auto &Note : Notes) +#17504| Diag(Note.first, Note.second); +#17505|-> return !ErrorOnInvalidMessage; +#17506| } +#17507| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:3859:3: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:3861:3: uninit_use_in_call: Using uninitialized value "Val.U" when calling "GetFloatValue". +# 3859| APFloat Val(Format); +# 3860| +# 3861|-> APFloat::opStatus result = Literal.GetFloatValue(Val); +# 3862| +# 3863| // Overflow is always an error, but underflow is only an error if + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:8081:5: address_of: Taking address with "&subExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:8081:5: assign: Assigning: "exprs" = "&subExpr". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:8134:5: ptr_arith: Using "exprs" as an array. This might corrupt or misinterpret adjacent memory locations. +# 8132| } +# 8133| +# 8134|-> initExprs.append(exprs, exprs + numExprs); +# 8135| } +# 8136| // FIXME: This means that pretty-printing the final AST will produce curly + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:10957:3: var_decl: Declaring variable "RHSValue". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:10964:1: uninit_use_in_call: Using uninitialized value "RHSValue.Val.Data" when calling "~EvalResult". +#10962| S.PDiag(diag::warn_remainder_division_by_zero) +#10963| << IsDiv << RHS.get()->getSourceRange()); +#10964|-> } +#10965| +#10966| QualType Sema::CheckMultiplyDivideOperands(ExprResult &LHS, ExprResult &RHS, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:11593:3: var_decl: Declaring variable "RHSResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:11596:5: uninit_use_in_call: Using uninitialized value "RHSResult.Val.Data" when calling "~EvalResult". +#11594| if (RHS.get()->isValueDependent() || +#11595| !RHS.get()->EvaluateAsInt(RHSResult, S.Context)) +#11596|-> return; +#11597| llvm::APSInt Right = RHSResult.Val.getInt(); +#11598| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:1854:3: var_decl: Declaring variable "Best". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:1882:3: uninit_use: Using uninitialized value "Best". Field "Best.Destroying" is uninitialized. +# 1880| } +# 1881| +# 1882|-> return Best; +# 1883| } +# 1884| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:2084:3: address_of: Taking address with "&Initializer" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:2084:3: identity_transfer: Passing "&Initializer" as argument 1 to constructor for class "MutableArrayRef", which sets "Exprs->Data" to that argument. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:2136:7: callee_ptr_arith: Passing "Exprs->Data" via argument "Exprs" to function "operator []" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2134| bool Braced = (InitStyle == CXXNewInitializationStyle::Braces); +# 2135| if (Braced) { +# 2136|-> auto *ILE = cast(Exprs[0]); +# 2137| Inits = MultiExprArg(ILE->getInits(), ILE->getNumInits()); +# 2138| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3774:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3783:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3781| } +# 3782| S.Type = BaseType; +# 3783|-> Steps.push_back(S); +# 3784| } +# 3785| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3788:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3791:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3789| S.Kind = BindingTemporary? SK_BindReferenceToTemporary : SK_BindReference; +# 3790| S.Type = T; +# 3791|-> Steps.push_back(S); +# 3792| } +# 3793| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3795:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3798:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3796| S.Kind = SK_FinalCopy; +# 3797| S.Type = T; +# 3798|-> Steps.push_back(S); +# 3799| } +# 3800| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3802:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3805:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3803| S.Kind = SK_ExtraneousCopyToTemporary; +# 3804| S.Type = T; +# 3805|-> Steps.push_back(S); +# 3806| } +# 3807| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3824:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3838:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3836| } +# 3837| S.Type = Ty; +# 3838|-> Steps.push_back(S); +# 3839| } +# 3840| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3842:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3845:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3843| S.Kind = SK_FunctionReferenceConversion; +# 3844| S.Type = Ty; +# 3845|-> Steps.push_back(S); +# 3846| } +# 3847| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3849:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3852:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3850| S.Kind = SK_AtomicConversion; +# 3851| S.Type = Ty; +# 3852|-> Steps.push_back(S); +# 3853| } +# 3854| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3867:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3870:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3868| S.Kind = SK_ListInitialization; +# 3869| S.Type = T; +# 3870|-> Steps.push_back(S); +# 3871| } +# 3872| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3888:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3891:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3889| S.Kind = SK_ZeroInitialization; +# 3890| S.Type = T; +# 3891|-> Steps.push_back(S); +# 3892| } +# 3893| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3895:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3898:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3896| S.Kind = SK_CAssignment; +# 3897| S.Type = T; +# 3898|-> Steps.push_back(S); +# 3899| } +# 3900| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3902:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3905:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3903| S.Kind = SK_StringInit; +# 3904| S.Type = T; +# 3905|-> Steps.push_back(S); +# 3906| } +# 3907| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3909:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3912:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3910| S.Kind = SK_ObjCObjectConversion; +# 3911| S.Type = T; +# 3912|-> Steps.push_back(S); +# 3913| } +# 3914| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3916:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3919:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3917| S.Kind = IsGNUExtension ? SK_GNUArrayInit : SK_ArrayInit; +# 3918| S.Type = T; +# 3919|-> Steps.push_back(S); +# 3920| } +# 3921| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3923:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3926:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "insert". +# 3924| S.Kind = SK_ArrayLoopIndex; +# 3925| S.Type = EltT; +# 3926|-> Steps.insert(Steps.begin(), S); +# 3927| +# 3928| S.Kind = SK_ArrayLoopInit; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3934:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3937:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3935| S.Kind = SK_ParenthesizedArrayInit; +# 3936| S.Type = T; +# 3937|-> Steps.push_back(S); +# 3938| } +# 3939| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3942:3: var_decl: Declaring variable "s". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3946:3: uninit_use_in_call: Using uninitialized value "s". Field "s" is uninitialized when calling "push_back". +# 3944| : SK_PassByIndirectRestore); +# 3945| s.Type = type; +# 3946|-> Steps.push_back(s); +# 3947| } +# 3948| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3950:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3953:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3951| S.Kind = SK_ProduceObjCObject; +# 3952| S.Type = T; +# 3953|-> Steps.push_back(S); +# 3954| } +# 3955| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3957:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3960:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3958| S.Kind = SK_StdInitializerList; +# 3959| S.Type = T; +# 3960|-> Steps.push_back(S); +# 3961| } +# 3962| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3964:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3967:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3965| S.Kind = SK_OCLSamplerInit; +# 3966| S.Type = T; +# 3967|-> Steps.push_back(S); +# 3968| } +# 3969| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3971:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3974:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3972| S.Kind = SK_OCLZeroOpaqueType; +# 3973| S.Type = T; +# 3974|-> Steps.push_back(S); +# 3975| } +# 3976| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3978:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3981:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3979| S.Kind = SK_ParenthesizedListInit; +# 3980| S.Type = T; +# 3981|-> Steps.push_back(S); +# 3982| } +# 3983| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3988:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3991:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "insert". +# 3989| S.Kind = SK_UnwrapInitList; +# 3990| S.Type = Syntactic->getInit(0)->getType(); +# 3991|-> Steps.insert(Steps.begin(), S); +# 3992| +# 3993| S.Kind = SK_RewrapInitList; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:9266:9: var_decl: Declaring variable "ER". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:9272:7: uninit_use_in_call: Using uninitialized value "ER.Val.Data" when calling "~EvalResult". +# 9270| S.Diag(Kind.getLocation(), diag::err_c23_constexpr_pointer_not_null); +# 9271| } +# 9272|-> } +# 9273| +# 9274| bool Complained; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:664:3: alloc_fn: Calling "operator new" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:664:3: assign: Assigning: "this->Paths" = "new clang::CXXBasePaths(true, true, true)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:665:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumEntries" when calling "swap". +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:665:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumTombstones" when calling "swap". +# 663| void LookupResult::setAmbiguousBaseSubobjects(CXXBasePaths &P) { +# 664| Paths = new CXXBasePaths; +# 665|-> Paths->swap(P); +# 666| addDeclsFromBasePaths(*Paths); +# 667| resolveKind(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:672:3: alloc_fn: Calling "operator new" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:672:3: assign: Assigning: "this->Paths" = "new clang::CXXBasePaths(true, true, true)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:673:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumEntries" when calling "swap". +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:673:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumTombstones" when calling "swap". +# 671| void LookupResult::setAmbiguousBaseSubobjectTypes(CXXBasePaths &P) { +# 672| Paths = new CXXBasePaths; +# 673|-> Paths->swap(P); +# 674| addDeclsFromBasePaths(*Paths); +# 675| resolveKind(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:4958:3: var_decl: Declaring variable "Chain". +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:4966:3: uninit_use: Using uninitialized value "Chain". Field "Chain.InlineElts" is uninitialized. +# 4964| Chain.push_back(DC->getPrimaryContext()); +# 4965| } +# 4966|-> return Chain; +# 4967| } +# 4968| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6382:5: var_decl: Declaring variable "DSAChecker". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6427:9: uninit_use_in_call: Using uninitialized element of array "DSAChecker.ImplicitMap". Field "DSAChecker.ImplicitMap[0][0].InlineElts" is uninitialized when calling "getImplicitMap". +# 6425| auto Kind = static_cast(VC); +# 6426| for (unsigned I = 0; I < OMPC_MAP_delete; ++I) { +# 6427|-> ArrayRef ImplicitMap = DSAChecker.getImplicitMap( +# 6428| Kind, static_cast(I)); +# 6429| ImplicitMaps[VC][I].append(ImplicitMap.begin(), ImplicitMap.end()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6382:5: var_decl: Declaring variable "DSAChecker". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6431:7: uninit_use_in_call: Using uninitialized element of array "DSAChecker.ImplicitMapModifier". Field "DSAChecker.ImplicitMapModifier[0].InlineElts" is uninitialized when calling "getImplicitMapModifier". +# 6429| ImplicitMaps[VC][I].append(ImplicitMap.begin(), ImplicitMap.end()); +# 6430| } +# 6431|-> ArrayRef ImplicitModifier = +# 6432| DSAChecker.getImplicitMapModifier(Kind); +# 6433| ImplicitMapModifiers[VC].append(ImplicitModifier.begin(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9865:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9871:7: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 9869| } else { +# 9870| Built.clear(/*Size=*/1); +# 9871|-> return 1; +# 9872| } +# 9873| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9877:5: var_decl: Declaring variable "EVResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9893:7: uninit_use_in_call: Using uninitialized value "EVResult.Val.Data" when calling "~EvalResult". +# 9891| } else { +# 9892| Built.clear(/*Size=*/1); +# 9893|-> return 1; +# 9894| } +# 9895| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21305:13: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21314:11: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#21312| continue; +#21313| } +#21314|-> } +#21315| +#21316| // OpenMP 5.0, 2.17.11 depend Clause, Restrictions, C/C++ + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21708:7: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21719:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#21717| assert(!RelevantExpr && "RelevantExpr is expected to be nullptr"); +#21718| RelevantExpr = TE; +#21719|-> } +#21720| +#21721| // Record the component - we don't have any declaration associated. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21787:7: var_decl: Declaring variable "ResultL". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21807:5: uninit_use_in_call: Using uninitialized value "ResultL.Val.Data" when calling "~EvalResult". +#21805| assert(!RelevantExpr && "RelevantExpr is expected to be nullptr"); +#21806| RelevantExpr = TE; +#21807|-> } +#21808| +#21809| // Record the component - we don't have any declaration associated. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21786:7: var_decl: Declaring variable "ResultR". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21807:5: uninit_use_in_call: Using uninitialized value "ResultR.Val.Data" when calling "~EvalResult". +#21805| assert(!RelevantExpr && "RelevantExpr is expected to be nullptr"); +#21806| RelevantExpr = TE; +#21807|-> } +#21808| +#21809| // Record the component - we don't have any declaration associated. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:24873:7: var_decl: Declaring variable "EvResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:24887:5: uninit_use_in_call: Using uninitialized value "EvResult.Val.Data" when calling "~EvalResult". +#24885| } +#24886| } +#24887|-> } +#24888| NewDims.push_back(Dim); +#24889| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:387:9: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:388:9: uninit_use_in_call: Using uninitialized value "Result.U" when calling "convertFromAPInt". +# 386| // Convert the integer to the floating type. +# 387| llvm::APFloat Result(Ctx.getFloatTypeSemantics(ToType)); +# 388|-> Result.convertFromAPInt(*IntConstantValue, IntConstantValue->isSigned(), +# 389| llvm::APFloat::rmNearestTiesToEven); +# 390| // And back. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:422:7: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:461:5: uninit_use_in_call: Using uninitialized value "R.Val.Data" when calling "~EvalResult". +# 459| return NK_Variable_Narrowing; +# 460| } +# 461|-> } +# 462| return NK_Not_Narrowing; +# 463| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:686:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:762:3: uninit_use: Using uninitialized value "Result". Field "Result.Diagnostic" is uninitialized. +# 760| } +# 761| +# 762|-> return Result; +# 763| } +# 764| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:12614:3: var_decl: Declaring variable "Cands". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:12648:3: uninit_use: Using uninitialized value "Cands". Field "Cands.InlineElts" is uninitialized. +#12646| Cands, CompareOverloadCandidatesForDisplay(S, OpLoc, Args.size(), Kind)); +#12647| +#12648|-> return Cands; +#12649| } +#12650| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:13364:3: var_decl: Declaring variable "DAP" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:13439:5: uninit_use: Using uninitialized value "DAP". +#13437| return nullptr; +#13438| } +#13439|-> Pair = DAP; +#13440| } +#13441| return Result; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:2344:9: alias: Assigning: "DeducedInit" = "&OpaqueId". "DeducedInit" now points to byte 0 of "OpaqueId" (which consists of 24 bytes). +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:2351:11: overrun-buffer-val: Overrunning struct type _ZN5clang15OpaqueValueExprE of 24 bytes by passing it to a function which accesses it at byte offset 47. +# 2349| if (Result != TemplateDeductionResult::Success && +# 2350| Result != TemplateDeductionResult::AlreadyDiagnosed) +# 2351|-> DiagnoseAutoDeductionFailure(D, DeducedInit); +# 2352| if (FirstType.isNull()) { +# 2353| D->setInvalidDecl(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:3906:5: alias: Assigning: "RetExpr" = "&VoidVal". "RetExpr" now points to byte 0 of "VoidVal" (which consists of 24 bytes). +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:3922:5: overrun-buffer-val: Overrunning struct type _ZN5clang22CXXScalarValueInitExprE of 24 bytes by passing it to a function which accesses it at byte offset 31. +# 3920| } +# 3921| TemplateSpecCandidateSet FailedTSC(TemplateSpecLoc); +# 3922|-> TemplateDeductionResult Res = DeduceAutoType( +# 3923| OrigResultType, RetExpr, Deduced, Info, /*DependentDeduction=*/false, +# 3924| /*IgnoreConstraints=*/false, &FailedTSC); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmtAsm.cpp:753:3: var_decl: Declaring variable "Eval". +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmtAsm.cpp:755:5: uninit_use_in_call: Using uninitialized value "Eval.Val.Data" when calling "~EvalResult". +# 753| Expr::EvalResult Eval; +# 754| if (T->isFunctionType() || T->isDependentType()) +# 755|-> return Info.setLabel(Res); +# 756| if (Res->isPRValue()) { +# 757| bool IsEnum = isa(T); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplate.cpp:2726:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplate.cpp:2731:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 2729| Results.push_back(Index); +# 2730| } +# 2731|-> return Results; +# 2732| } +# 2733| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:3286:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:3292:3: uninit_use: Using uninitialized value "Result". +# 3290| TemplateArgs, Deduced, Info); +# 3291| }); +# 3292|-> return Result; +# 3293| } +# 3294| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4360:5: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4366:5: uninit_use: Using uninitialized value "Result". +# 4364| Info); +# 4365| }); +# 4366|-> if (Result != TemplateDeductionResult::Success) +# 4367| return Result; +# 4368| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4526:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4535:3: uninit_use: Using uninitialized value "Result". +# 4533| }); +# 4534| }); +# 4535|-> return Result; +# 4536| } +# 4537| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4621:5: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4627:5: uninit_use: Using uninitialized value "Result". +# 4625| &FunctionType, Info); +# 4626| }); +# 4627|-> if (Result != TemplateDeductionResult::Success) +# 4628| return Result; +# 4629| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4667:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4673:3: uninit_use: Using uninitialized value "Result". +# 4671| Specialization, Info); +# 4672| }); +# 4673|-> if (Result != TemplateDeductionResult::Success) +# 4674| return Result; +# 4675| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4848:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4855:3: uninit_use: Using uninitialized value "Result". +# 4853| }); +# 4854| Specialization = cast_or_null(ConversionSpecialized); +# 4855|-> return Result; +# 4856| } +# 4857| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:5939:3: var_decl: Declaring variable "AtLeastAsSpecialized" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:5946:3: uninit_use: Using uninitialized value "AtLeastAsSpecialized". +# 5944| Deduced, Info) == TemplateDeductionResult::Success; +# 5945| }); +# 5946|-> return AtLeastAsSpecialized; +# 5947| } +# 5948| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiate.cpp:501:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiate.cpp:561:7: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgumentLists.InlineElts" is uninitialized. +# 559| +# 560| if (R.IsDone) +# 561|-> return Result; +# 562| if (R.ClearRelativeToPrimary) +# 563| RelativeToPrimary = false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4108:3: var_decl: Declaring variable "SubstD" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4112:3: uninit_use: Using uninitialized value "SubstD". +# 4110| SubstD = Instantiator.Visit(D); +# 4111| }); +# 4112|-> return SubstD; +# 4113| } +# 4114| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11116:5: var_decl: Declaring variable "InstantiatedVarList". +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11129:5: uninit_use: Using uninitialized value "InstantiatedVarList". Field "InstantiatedVarList.InlineElts" is uninitialized. +#11127| } +#11128| +#11129|-> return InstantiatedVarList; +#11130| } +#11131| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11452:3: var_decl: Declaring variable "TransformedClauses". +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11458:3: uninit_use: Using uninitialized value "TransformedClauses". Field "TransformedClauses.InlineElts" is uninitialized. +#11456| TransformedClauses.push_back(TransformedClause); +#11457| } +#11458|-> return TransformedClauses; +#11459| } +#11460| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:940:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:971:3: uninit_use: Using uninitialized value "Result". Field "Result.Instance.InlineElts" is uninitialized. +# 969| } +# 970| +# 971|-> return Result; +# 972| } +# 973| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:11763:3: var_decl: Declaring variable "VarList". +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:11766:3: uninit_use: Using uninitialized value "VarList". Field "VarList.InlineElts" is uninitialized. +#11764| for (unsigned I = 0; I < NumVars; ++I) +#11765| VarList.push_back(readSubExpr()); +#11766|-> return VarList; +#11767| } +#11768| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReaderStmt.cpp:790:3: var_decl: Declaring variable "Satisfaction". +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReaderStmt.cpp:808:3: uninit_use: Using uninitialized value "Satisfaction". Field "Satisfaction.TemplateArgs.InlineElts" is uninitialized. +# 806| } +# 807| } +# 808|-> return Satisfaction; +# 809| } +# 810| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/GlobalModuleIndex.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Serialization/GlobalModuleIndex.cpp:118:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 116| } +# 117| +# 118|-> return Result; +# 119| } +# 120| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp:51:3: var_decl: Declaring variable "Message". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp:64:3: uninit_use: Using uninitialized value "Message". Field "Message.InlineElts" is uninitialized. +# 62| } +# 63| +# 64|-> return Message; +# 65| } +# 66| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp:493:3: var_decl: Declaring variable "NameParts". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp:501:3: uninit_use: Using uninitialized value "NameParts". Field "NameParts.InlineElts" is uninitialized. +# 499| } +# 500| NameParts.emplace_back(C.Name); +# 501|-> return NameParts; +# 502| } +# 503| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:258:3: assignment: Assigning: "idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, true)". The value of "idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:260:5: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 99999 (byte offset 2399999) using index "idx" (which evaluates to 99999). +# 258| idx = getTrackedFunctionIndex(funName, true); +# 259| if (idx != InvalidIdx) { +# 260|-> unsigned paramIdx = FunctionsToTrack[idx].Param; +# 261| if (CE->getNumArgs() <= paramIdx) +# 262| return; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:290:3: assignment: Assigning: "idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, false)". The value of "idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:294:3: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 99999 (byte offset 2399999) using index "idx" (which evaluates to 99999). +# 292| return; +# 293| +# 294|-> unsigned paramIdx = FunctionsToTrack[idx].Param; +# 295| if (CE->getNumArgs() <= paramIdx) +# 296| return; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:404:3: assignment: Assigning: "idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, true)". The value of "idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:408:3: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 99999 (byte offset 2399999) using index "idx" (which evaluates to 99999). +# 406| return; +# 407| +# 408|-> const Expr *ArgExpr = CE->getArg(FunctionsToTrack[idx].Param); +# 409| // If the argument entered as an enclosing function parameter, skip it to +# 410| // avoid false positives. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:632:3: assignment: Assigning: "Idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, true)". The value of "Idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:634:3: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 100000 (byte offset 2400023) using index "Idx" (which evaluates to 100000). +# 632| unsigned Idx = getTrackedFunctionIndex(funName, true); +# 633| assert(Idx != InvalidIdx && "This should be a call to an allocator."); +# 634|-> const Expr *ArgExpr = CE->getArg(FunctionsToTrack[Idx].Param); +# 635| PathDiagnosticLocation Pos(ArgExpr, BRC.getSourceManager(), +# 636| N->getLocationContext()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:140:3: var_decl: Declaring variable "Regions". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:147:3: uninit_use: Using uninitialized value "Regions". Field "Regions.InlineElts" is uninitialized. +# 145| Regions.push_back(Region); +# 146| } +# 147|-> return Regions; +# 148| } +# 149| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:103:20: constructor_uses_global_object: The constructor of global object "::ValistChecker::VAListAccepters" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::ValistChecker::VAListAccepters" might be created before "Allocator" is available. +# 101| +# 102| const SmallVector +# 103|-> ValistChecker::VAListAccepters = {{{CDM::CLibrary, {"vfprintf"}, 3}, 2}, +# 104| {{CDM::CLibrary, {"vfscanf"}, 3}, 2}, +# 105| {{CDM::CLibrary, {"vprintf"}, 2}, 1}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:103:20: constructor_uses_global_object: The constructor of global object "::ValistChecker::VAListAccepters" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::ValistChecker::VAListAccepters" might be created before "fuzzer::TPC" is available. +# 101| +# 102| const SmallVector +# 103|-> ValistChecker::VAListAccepters = {{{CDM::CLibrary, {"vfprintf"}, 3}, 2}, +# 104| {{CDM::CLibrary, {"vfscanf"}, 3}, 2}, +# 105| {{CDM::CLibrary, {"vprintf"}, 2}, 1}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:103:20: constructor_uses_global_object: The constructor of global object "::ValistChecker::VAListAccepters" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::ValistChecker::VAListAccepters" might be created before "scudo::RegionPageMap::Buffers" is available. +# 101| +# 102| const SmallVector +# 103|-> ValistChecker::VAListAccepters = {{{CDM::CLibrary, {"vfprintf"}, 3}, 2}, +# 104| {{CDM::CLibrary, {"vfscanf"}, 3}, 2}, +# 105| {{CDM::CLibrary, {"vprintf"}, 2}, 1}, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:829:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:846:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 844| ValueFactory.getValue(ToInt)); +# 845| } +# 846|-> return Result; +# 847| } +# 848| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:1614:3: var_decl: Declaring variable "Extents". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:1618:3: uninit_use: Using uninitialized value "Extents". Field "Extents.InlineElts" is uninitialized. +# 1616| Extents.push_back(CAT->getZExtSize()); +# 1617| } while ((CAT = dyn_cast(CAT->getElementType()))); +# 1618|-> return Extents; +# 1619| } +# 1620| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp:131:3: var_decl: Declaring variable "Flows". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp:142:3: uninit_use: Using uninitialized value "Flows". Field "Flows.InlineElts" is uninitialized. +# 140| Flows.push_back(Flow); +# 141| } +# 142|-> return Flows; +# 143| } +# 144| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Support/RISCVVIntrinsicUtils.cpp:1181:3: var_decl: Declaring variable "PrototypeDescriptors". +llvm-project-19.0.0.src/clang/lib/Support/RISCVVIntrinsicUtils.cpp:1198:3: uninit_use: Using uninitialized value "PrototypeDescriptors". Field "PrototypeDescriptors.InlineElts" is uninitialized. +# 1196| Prototypes = Prototypes.drop_front(Idx + 1); +# 1197| } +# 1198|-> return PrototypeDescriptors; +# 1199| } +# 1200| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/AllTUsExecution.cpp:59:5: constructor_uses_global_object: The constructor of global object "clang::tooling::Filter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::Filter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| +# 58| llvm::cl::opt +# 59|-> Filter("filter", +# 60| llvm::cl::desc("Only process files that match this filter. " +# 61| "This flag only applies to all-TUs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/AllTUsExecution.cpp:151:25: constructor_uses_global_object: The constructor of global object "clang::tooling::ExecutorConcurrency" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::ExecutorConcurrency" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 149| } +# 150| +# 151|-> llvm::cl::opt ExecutorConcurrency( +# 152| "execute-concurrency", +# 153| llvm::cl::desc("The number of threads used to process all files in " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp:614:5: var_decl: Declaring variable "FakeInputPath". +llvm-project-19.0.0.src/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp:622:5: uninit_use_in_call: Using uninitialized value "FakeInputPath". Field "FakeInputPath.InlineElts" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 620| +# 621| ModifiedCommandLine = CommandLine; +# 622|-> ModifiedCommandLine->emplace_back(FakeInputPath); +# 623| } +# 624| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp:30:30: constructor_uses_global_object: The constructor of global object "IncludeDirectories[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IncludeDirectories[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace llvm; +# 29| +# 30|-> static cl::list IncludeDirectories( +# 31| "I", cl::desc("Include directories to use while compiling"), +# 32| cl::value_desc("directory"), cl::Required, cl::OneOrMore, cl::Prefix); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp:35:5: constructor_uses_global_object: The constructor of global object "SkipProcessing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SkipProcessing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> SkipProcessing("skip-processing", +# 36| cl::desc("Avoid processing the AST header file"), +# 37| cl::Required, cl::value_desc("bool")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp:39:29: constructor_uses_global_object: The constructor of global object "JsonOutputPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JsonOutputPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::Required, cl::value_desc("bool")); +# 38| +# 39|-> static cl::opt JsonOutputPath("json-output-path", +# 40| cl::desc("json output path"), +# 41| cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/Execution.cpp:19:5: constructor_uses_global_object: The constructor of global object "clang::tooling::ExecutorName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::ExecutorName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| +# 18| llvm::cl::opt +# 19|-> ExecutorName("executor", llvm::cl::desc("The name of the executor to use."), +# 20| llvm::cl::init("standalone")); +# 21| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp:22:3: var_decl: Declaring variable "LangOpts". +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp:33:3: uninit_use: Using uninitialized value "LangOpts". Field "LangOpts.GPUDefaultStream" is uninitialized. +# 31| LangOpts.DeclSpecKeyword = 1; // To get __declspec. +# 32| LangOpts.WChar = 1; // To get wchar_t +# 33|-> return LangOpts; +# 34| } +# 35| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:245:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:248:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 246| for (auto HeaderID : getMappingPerLang(Language)->SymbolHeaderIDs[ID]) +# 247| Results.emplace_back(Header(HeaderID, Language)); +# 248|-> return Results; +# 249| } +# 250| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/Refactoring/Lookup.cpp:31:3: var_decl: Declaring variable "Namespaces". +llvm-project-19.0.0.src/clang/lib/Tooling/Refactoring/Lookup.cpp:42:3: uninit_use: Using uninitialized value "Namespaces". Field "Namespaces.InlineElts" is uninitialized. +# 40| Context = GetNextNamedNamespace(Context->getParent())) +# 41| Namespaces.push_back(cast(Context)); +# 42|-> return Namespaces; +# 43| } +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:19:22: constructor_uses_global_object: The constructor of global object "Help" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Help" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| using namespace llvm; +# 18| +# 19|-> static cl::opt Help("h", cl::desc("Alias for -help"), cl::Hidden); +# 20| +# 21| // Mark all our options with this category. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "Allocator" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "GlobalParser" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "fuzzer::TPC" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/apinotes-test/APINotesTest.cpp:17:36: constructor_uses_global_object: The constructor of global object "APINotes[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "APINotes[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 15| #include "llvm/Support/WithColor.h" +# 16| +# 17|-> static llvm::cl::list APINotes(llvm::cl::Positional, +# 18| llvm::cl::desc("[ ...]"), +# 19| llvm::cl::Required); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/apinotes-test/APINotesTest.cpp:22:5: constructor_uses_global_object: The constructor of global object "OutputFileName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputFileName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| +# 21| static llvm::cl::opt +# 22|-> OutputFileName("o", llvm::cl::desc("output filename"), +# 23| llvm::cl::value_desc("filename"), llvm::cl::init("-")); +# 24| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:27:1: constructor_uses_global_object: The constructor of global object "CheckOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CheckOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| +# 26| static llvm::cl::opt +# 27|-> CheckOnly("check-only", +# 28| llvm::cl::desc("Just check for issues that need to be handled manually")); +# 29| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:35:1: constructor_uses_global_object: The constructor of global object "OutputTransformations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputTransformations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static llvm::cl::opt +# 35|-> OutputTransformations("output-transformations", +# 36| llvm::cl::desc("Print the source transformations")); +# 37| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:39:1: constructor_uses_global_object: The constructor of global object "VerifyDiags" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyDiags" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static llvm::cl::opt +# 39|-> VerifyDiags("verify",llvm::cl::desc("Verify emitted diagnostics and warnings")); +# 40| +# 41| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:42:1: constructor_uses_global_object: The constructor of global object "VerboseOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerboseOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static llvm::cl::opt +# 42|-> VerboseOpt("v", llvm::cl::desc("Enable verbose output")); +# 43| +# 44| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:45:1: constructor_uses_global_object: The constructor of global object "VerifyTransformedFiles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyTransformedFiles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| static llvm::cl::opt +# 45|-> VerifyTransformedFiles("verify-transformed-files", +# 46| llvm::cl::desc("Read pairs of file mappings (typically the output of " +# 47| "c-arcmt-test) and compare their contents with the filenames " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:51:1: constructor_uses_global_object: The constructor of global object "RemappingsFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemappingsFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| +# 50| static llvm::cl::opt +# 51|-> RemappingsFile("remappings-file", +# 52| llvm::cl::desc("Pairs of file mappings (typically the output of " +# 53| "c-arcmt-test)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:56:1: constructor_uses_global_object: The constructor of global object "ResultFiles[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ResultFiles[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| static llvm::cl::list +# 56|-> ResultFiles(llvm::cl::Positional, llvm::cl::desc("...")); +# 57| +# 58| static llvm::cl::extrahelp extraHelp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:58:28: constructor_uses_global_object: The constructor of global object "extraHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "extraHelp" might be created before "GlobalParser" is available. +# 56| ResultFiles(llvm::cl::Positional, llvm::cl::desc("...")); +# 57| +# 58|-> static llvm::cl::extrahelp extraHelp( +# 59| "\nusage with compiler args: arcmt-test [options] --args [compiler flags]\n"); +# 60| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: alloc_fn: Calling "malloc" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: assign: Assigning: "*unsaved_files" = "(struct CXUnsavedFile *)malloc(24UL * *num_unsaved_files)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:300:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Contents" when calling "free_remapped_files". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:300:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Filename" when calling "free_remapped_files". +# 298| fprintf(stderr, +# 299| "error: %sfrom:to argument is missing comma\n", opt_name); +# 300|-> free_remapped_files(*unsaved_files, i); +# 301| *unsaved_files = 0; +# 302| *num_unsaved_files = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: alloc_fn: Calling "malloc" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: assign: Assigning: "*unsaved_files" = "(struct CXUnsavedFile *)malloc(24UL * *num_unsaved_files)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:311:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Contents" when calling "free_remapped_files". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:311:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Filename" when calling "free_remapped_files". +# 309| fprintf(stderr, "error: cannot open file %s that we are remapping to\n", +# 310| sep + 1); +# 311|-> free_remapped_files(*unsaved_files, i); +# 312| *unsaved_files = 0; +# 313| *num_unsaved_files = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: alloc_fn: Calling "malloc" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: assign: Assigning: "*unsaved_files" = "(struct CXUnsavedFile *)malloc(24UL * *num_unsaved_files)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:329:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Contents" when calling "free_remapped_files". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:329:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Filename" when calling "free_remapped_files". +# 327| (feof(to_file) ? "EOF" : "error"), sep + 1); +# 328| fclose(to_file); +# 329|-> free_remapped_files(*unsaved_files, i); +# 330| free(contents); +# 331| *unsaved_files = 0; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2343:3: alloc_fn: Storage is returned from allocation function "clang_createIndex". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2343:3: var_assign: Assigning: "Idx" = storage returned from "clang_createIndex(1, 1)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2349:3: noescape: Resource "Idx" is not freed or pointed-to in "CreateTranslationUnit". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2350:5: leaked_storage: Variable "Idx" going out of scope leaks the storage it points to. +# 2348| +# 2349| if (!CreateTranslationUnit(Idx, ast_file, &TU)) +# 2350|-> return 1; +# 2351| +# 2352| if ((fp = fopen(source_file, "r")) == NULL) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2905:5: noescape: Resource "&Locations[Loc].filename" is not freed or pointed-to in "parse_file_line_column". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2908:7: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2906| &Locations[Loc].line, +# 2907| &Locations[Loc].column, 0, 0))) +# 2908|-> return errorCode; +# 2909| } +# 2910| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2913:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2911| if (parse_remapped_files(argc, argv, NumLocations + 1, &unsaved_files, +# 2912| &num_unsaved_files)) +# 2913|-> return -1; +# 2914| +# 2915| if (getenv("CINDEXTEST_EDITING")) + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2930:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2928| fprintf(stderr, "unable to parse input\n"); +# 2929| describeLibclangFailure(Err); +# 2930|-> return -1; +# 2931| } +# 2932| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2934:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2932| +# 2933| if (checkForErrors(TU) != 0) +# 2934|-> return -1; +# 2935| +# 2936| for (I = 0; I != Repeats; ++I) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2943:9: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2941| describeLibclangFailure(Err); +# 2942| clang_disposeTranslationUnit(TU); +# 2943|-> return 1; +# 2944| } +# 2945| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3199:5: noescape: Resource "&Locations[Loc].filename" is not freed or pointed-to in "parse_file_line_column". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3202:7: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3200| &Locations[Loc].line, +# 3201| &Locations[Loc].column, 0, 0))) +# 3202|-> return errorCode; +# 3203| } +# 3204| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3207:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3205| if (parse_remapped_files(argc, argv, NumLocations + 1, &unsaved_files, +# 3206| &num_unsaved_files)) +# 3207|-> return -1; +# 3208| +# 3209| if (getenv("CINDEXTEST_EDITING")) + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3225:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3223| describeLibclangFailure(Err); +# 3224| clang_disposeTranslationUnit(TU); +# 3225|-> return -1; +# 3226| } +# 3227| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3229:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3227| +# 3228| if (checkForErrors(TU) != 0) +# 3229|-> return -1; +# 3230| +# 3231| for (I = 0; I != Repeats; ++I) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3238:9: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3236| describeLibclangFailure(Err); +# 3237| clang_disposeTranslationUnit(TU); +# 3238|-> return 1; +# 3239| } +# 3240| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3313:5: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3311| if (parse_remapped_files(argc, argv, NumFilenames + 1, &unsaved_files, +# 3312| &num_unsaved_files)) +# 3313|-> return -1; +# 3314| +# 3315| if (getenv("CINDEXTEST_EDITING")) + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3332:5: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3330| describeLibclangFailure(Err); +# 3331| clang_disposeTranslationUnit(TU); +# 3332|-> return -1; +# 3333| } +# 3334| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3336:5: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3334| +# 3335| if (checkForErrors(TU) != 0) +# 3336|-> return -1; +# 3337| +# 3338| for (I = 0; I != Repeats; ++I) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3345:9: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3343| describeLibclangFailure(Err); +# 3344| clang_disposeTranslationUnit(TU); +# 3345|-> return 1; +# 3346| } +# 3347| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4409:9: alloc_fn: Storage is returned from allocation function "clang_CompilationDatabase_getCompileCommands". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4409:9: var_assign: Assigning: "CCmds" = storage returned from "clang_CompilationDatabase_getCompileCommands(db, argv[i + 1])". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4417:9: noescape: Resource "CCmds" is not freed or pointed-to in "clang_CompileCommands_getSize". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4458:3: leaked_storage: Variable "CCmds" going out of scope leaks the storage it points to. +# 4456| free(tmp); +# 4457| +# 4458|-> return errorCode; +# 4459| } +# 4460| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4397:3: alloc_fn: Storage is returned from allocation function "clang_CompilationDatabase_fromDirectory". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4397:3: var_assign: Assigning: "db" = storage returned from "clang_CompilationDatabase_fromDirectory(buildDir, &ec)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4458:3: leaked_storage: Variable "db" going out of scope leaks the storage it points to. +# 4456| free(tmp); +# 4457| +# 4458|-> return errorCode; +# 4459| } +# 4460| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4587:3: alloc_fn: Storage is returned from allocation function "fopen". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4587:3: var_assign: Assigning: "fp" = storage returned from "fopen(file_name, "r")". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4594:3: noescape: Resource "fp" is not freed or pointed-to in "feof". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4595:5: noescape: Resource "fp" is not freed or pointed-to in "fgetc". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4594:3: noescape: Resource "fp" is not freed or pointed-to in "feof". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4595:5: noescape: Resource "fp" is not freed or pointed-to in "fgetc". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4616:9: leaked_storage: Variable "fp" going out of scope leaks the storage it points to. +# 4614| } +# 4615| if (print_usrs(&args[0], &args[i])) +# 4616|-> return 1; +# 4617| } +# 4618| else + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "Allocator" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "GlobalParser" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "fuzzer::TPC" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "Allocator" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "fuzzer::TPC" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "scudo::RegionPageMap::Buffers" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:55:22: constructor_uses_global_object: The constructor of global object "::options::MoreHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::options::MoreHelp" might be created before "GlobalParser" is available. +# 53| cl::cat(IndexTestCoreCategory)); +# 54| +# 55|-> static cl::extrahelp MoreHelp( +# 56| "\nAdd \"-- \" at the end to setup the compiler " +# 57| "invocation\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:61:1: constructor_uses_global_object: The constructor of global object "::options::DumpModuleImports" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::DumpModuleImports" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| +# 60| static cl::opt +# 61|-> DumpModuleImports("dump-imported-module-files", +# 62| cl::desc("Print symbols and input files from imported modules")); +# 63| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:65:1: constructor_uses_global_object: The constructor of global object "::options::IncludeLocals" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::IncludeLocals" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| static cl::opt +# 65|-> IncludeLocals("include-locals", cl::desc("Print local symbols")); +# 66| +# 67| static cl::opt IgnoreMacros("ignore-macros", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:67:22: constructor_uses_global_object: The constructor of global object "::options::IgnoreMacros" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::IgnoreMacros" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| IncludeLocals("include-locals", cl::desc("Print local symbols")); +# 66| +# 67|-> static cl::opt IgnoreMacros("ignore-macros", +# 68| cl::desc("Skip indexing macros")); +# 69| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:71:1: constructor_uses_global_object: The constructor of global object "::options::ModuleFilePath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::ModuleFilePath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| static cl::opt +# 71|-> ModuleFilePath("module-file", +# 72| cl::desc("Path to module file to print symbols from")); +# 73| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:74:3: constructor_uses_global_object: The constructor of global object "::options::ModuleFormat[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::ModuleFormat[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| cl::desc("Path to module file to print symbols from")); +# 73| static cl::opt +# 74|-> ModuleFormat("fmodule-format", cl::init("raw"), +# 75| cl::desc("Container format for clang modules and PCH, 'raw' or 'obj'")); +# 76| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:42:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 40| using namespace llvm; +# 41| +# 42|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 43| static cl::extrahelp MoreHelp( +# 44| "\tFor example, to run clang-check on all files in a subtree of the\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:43:22: constructor_uses_global_object: The constructor of global object "MoreHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "MoreHelp" might be created before "GlobalParser" is available. +# 41| +# 42| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 43|-> static cl::extrahelp MoreHelp( +# 44| "\tFor example, to run clang-check on all files in a subtree of the\n" +# 45| "\tsource tree, use:\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "Allocator" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "GlobalParser" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "fuzzer::TPC" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "Allocator" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "fuzzer::TPC" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "Allocator" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "fuzzer::TPC" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "scudo::RegionPageMap::Buffers" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "Allocator" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "fuzzer::TPC" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "scudo::RegionPageMap::Buffers" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "Allocator" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "Allocator" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "fuzzer::TPC" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "scudo::RegionPageMap::Buffers" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "Allocator" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "Allocator" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "fuzzer::TPC" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "Allocator" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "fuzzer::TPC" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "Allocator" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "fuzzer::TPC" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "Allocator" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "fuzzer::TPC" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "Allocator" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "GlobalParser" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "fuzzer::TPC" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "Allocator" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "fuzzer::TPC" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "Allocator" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "fuzzer::TPC" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "scudo::RegionPageMap::Buffers" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "Allocator" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "fuzzer::TPC" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "scudo::RegionPageMap::Buffers" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "Allocator" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "fuzzer::TPC" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "scudo::RegionPageMap::Buffers" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "Allocator" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "GlobalParser" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "Allocator" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "GlobalParser" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "Allocator" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "Allocator" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "fuzzer::TPC" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "Allocator" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "Allocator" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "Allocator" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "Allocator" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "GlobalParser" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "fuzzer::TPC" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:122:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 120| }; +# 121| +# 122|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 123| +# 124| static IntrusiveRefCntPtr Diags; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:33:22: constructor_uses_global_object: The constructor of global object "Help" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Help" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| using clang::tooling::Replacements; +# 32| +# 33|-> static cl::opt Help("h", cl::desc("Alias for -help"), cl::Hidden); +# 34| +# 35| // Mark all our options with this category, everything else (except for -version + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:37:27: constructor_uses_global_object: The constructor of global object "ClangFormatCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangFormatCategory" might be created before "Allocator" is available. +# 35| // Mark all our options with this category, everything else (except for -version +# 36| // and -help) will be hidden. +# 37|-> static cl::OptionCategory ClangFormatCategory("Clang-format options"); +# 38| +# 39| static cl::list + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:37:27: error[too-many]: 11982 occurrences of constructor_uses_global_object exceeded the specified limit 1024 +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:37:27: note: 10958 occurrences of constructor_uses_global_object were discarded because of this + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/tools/driver/cc1gen_reproducer_main.cpp:189:3: extract: Calling "c_str" which extracts wrapped state from local "Path". +llvm-project-19.0.0.src/clang/tools/driver/cc1gen_reproducer_main.cpp:189:3: escape: The internal representation of local "Path" escapes into "DriverArgs[0UL]", but is destroyed when it exits scope. +# 187| DriverArgs.push_back(Arg.c_str()); +# 188| std::string Path = GetExecutablePath(Argv0, /*CanonicalPrefixes=*/true); +# 189|-> DriverArgs[0] = Path.c_str(); +# 190| std::optional Report = +# 191| generateReproducerForInvocationArguments(DriverArgs, InvocationInfo, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:3804:3: var_decl: Declaring variable "Pieces". +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:3826:3: uninit_use: Using uninitialized value "Pieces". Field "Pieces.InlineElts" is uninitialized. +# 3824| } +# 3825| +# 3826|-> return Pieces; +# 3827| } +# 3828| } // namespace + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:4422:3: var_decl: Declaring variable "ER". +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:4425:5: uninit_use_in_call: Using uninitialized value "ER.Val.Data" when calling "~EvalResult". +# 4423| ASTContext &ctx = getCursorContext(C); +# 4424| if (!expr) +# 4425|-> return nullptr; +# 4426| +# 4427| expr = expr->IgnoreParens(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:9413:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:9413:3: leaked_storage: Failing to save or free storage allocated by "entries.release()" leaks it. +# 9411| CXTUResourceUsage usage = {(void *)entries.get(), (unsigned)entries->size(), +# 9412| !entries->empty() ? &(*entries)[0] : nullptr}; +# 9413|-> (void)entries.release(); +# 9414| return usage; +# 9415| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:980:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(5.)". +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:980:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 978| EXPECT_TRUE(matches("double i = 5.0;", floatLiteral(equals(5.0)))); +# 979| EXPECT_TRUE(matches("double i = 5.0;", floatLiteral(equals(5.0f)))); +# 980|-> EXPECT_TRUE( +# 981| matches("double i = 5.0;", floatLiteral(equals(llvm::APFloat(5.0))))); +# 982| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:986:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(6.)". +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:986:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 984| EXPECT_TRUE(notMatches("double i = 5.0;", floatLiteral(equals(6.0)))); +# 985| EXPECT_TRUE(notMatches("double i = 5.0;", floatLiteral(equals(6.0f)))); +# 986|-> EXPECT_TRUE( +# 987| notMatches("double i = 5.0;", floatLiteral(equals(llvm::APFloat(6.0))))); +# 988| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp:70:3: var_decl: Declaring variable "Chain". +llvm-project-19.0.0.src/clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp:84:3: uninit_use: Using uninitialized value "Chain". Field "Chain.InlineElts" is uninitialized. +# 82| E = dyn_cast(By); +# 83| } +# 84|-> return Chain; +# 85| } +# 86| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/BufferSourceTest.cpp:42:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/BufferSourceTest.cpp:45:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/BufferSourceTest.cpp:45:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 43| LO.CPlusPlus = 1; +# 44| LO.CPlusPlus11 = 1; +# 45|-> TestCompiler Compiler(LO); +# 46| Compiler.init(TestProgram); +# 47| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/CodeGenExternalTest.cpp:262:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/CodeGenExternalTest.cpp:265:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/CodeGenExternalTest.cpp:265:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 263| LO.CPlusPlus = 1; +# 264| LO.CPlusPlus11 = 1; +# 265|-> TestCompiler Compiler(LO); +# 266| auto CustomASTConsumer +# 267| = std::make_unique(std::move(Compiler.CG)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:28:5: var_decl: Declaring variable "CGOpts". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:31:5: uninit_use: Using uninitialized value "CGOpts". Field "CGOpts.LargeDataThreshold" is uninitialized. +# 29| CGOpts.StructPathTBAA = 1; +# 30| CGOpts.OptimizationLevel = 1; +# 31|-> return CGOpts; +# 32| } +# 33| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:64:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:65:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:65:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 63| +# 64| clang::LangOptions LO; +# 65|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 66| Compiler.init(TestProgram); +# 67| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:160:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:162:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:162:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 160| clang::LangOptions LO; +# 161| LO.C11 = 1; +# 162|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 163| Compiler.init(TestProgram); +# 164| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:282:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:284:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:284:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 282| clang::LangOptions LO; +# 283| LO.C11 = 1; +# 284|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 285| Compiler.init(TestProgram); +# 286| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:375:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:377:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:377:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 375| clang::LangOptions LO; +# 376| LO.C11 = 1; +# 377|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 378| Compiler.init(TestProgram); +# 379| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:469:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:471:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:471:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 469| clang::LangOptions LO; +# 470| LO.C11 = 1; +# 471|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 472| Compiler.init(TestProgram); +# 473| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:571:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:574:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:574:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 572| LO.CPlusPlus = 1; +# 573| LO.CPlusPlus11 = 1; +# 574|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 575| Compiler.init(TestProgram); +# 576| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:694:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:697:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:697:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 695| LO.CPlusPlus = 1; +# 696| LO.CPlusPlus11 = 1; +# 697|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 698| Compiler.init(TestProgram); +# 699| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:795:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:798:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:798:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 796| LO.CPlusPlus = 1; +# 797| LO.CPlusPlus11 = 1; +# 798|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 799| Compiler.init(TestProgram); +# 800| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:877:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:880:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:880:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 878| LO.CPlusPlus = 1; +# 879| LO.CPlusPlus11 = 1; +# 880|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 881| Compiler.init(TestProgram); +# 882| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:956:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:959:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:959:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 957| LO.CPlusPlus = 1; +# 958| LO.CPlusPlus11 = 1; +# 959|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 960| Compiler.init(TestProgram); +# 961| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1032:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1035:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1035:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 1033| LO.CPlusPlus = 1; +# 1034| LO.CPlusPlus11 = 1; +# 1035|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 1036| Compiler.init(TestProgram); +# 1037| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1106:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1109:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1109:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 1107| LO.CPlusPlus = 1; +# 1108| LO.CPlusPlus11 = 1; +# 1109|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 1110| Compiler.init(TestProgram); +# 1111| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1192:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1195:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1195:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 1193| LO.CPlusPlus = 1; +# 1194| LO.CPlusPlus11 = 1; +# 1195|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 1196| Compiler.init(TestProgram); +# 1197| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:140:5: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:148:7: uninit_use_in_call: Using uninitialized value "L._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:148:7: uninit_use_in_call: Using uninitialized value "L._M_owns" when calling "unlock". +# 146| } +# 147| if (result()) { +# 148|-> L.unlock(); +# 149| ResultIsReady.notify_one(); +# 150| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:154:5: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:169:7: uninit_use_in_call: Using uninitialized value "L._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:169:7: uninit_use_in_call: Using uninitialized value "L._M_owns" when calling "unlock". +# 167| } +# 168| if (result()) { +# 169|-> L.unlock(); +# 170| ResultIsReady.notify_one(); +# 171| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:72:5: var_decl: Declaring variable "UnexpandedTokens". +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:75:5: uninit_use: Using uninitialized value "UnexpandedTokens". Field "UnexpandedTokens.InlineElts" is uninitialized. +# 73| for (const UnwrappedLineNode &Node : Unexpanded[ID]->Tokens) +# 74| UnexpandedTokens.push_back(Node.Tok); +# 75|-> return UnexpandedTokens; +# 76| } +# 77| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:80:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:83:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 81| for (const auto &Arg : Args) +# 82| Result.push_back(uneof(Lex.lex(Arg))); +# 83|-> return Result; +# 84| } +# 85| llvm::DenseMap> Unexpanded; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Format/MacroExpanderTest.cpp:37:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/unittests/Format/MacroExpanderTest.cpp:40:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 38| for (const auto &Arg : Args) +# 39| Result.push_back(uneof(Lex.lex(Arg))); +# 40|-> return Result; +# 41| } +# 42| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Frontend/FrontendActionTest.cpp:210:5: var_decl: Declaring variable "TC". +llvm-project-19.0.0.src/clang/unittests/Frontend/FrontendActionTest.cpp:214:5: uninit_use: Using uninitialized value "TC". Field "TC.CorrectionDecls.InlineElts" is uninitialized. +# 212| DiagnosticsEngine::Note, "This is a note"); +# 213| TC.addExtraDiagnostic(PartialDiagnostic(DiagID, Ctx.getDiagAllocator())); +# 214|-> return TC; +# 215| } +# 216| }; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp:125:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp:125:3: leaked_storage: Ignoring storage allocated by "Buffer.release()" leaks it. +# 123| EXPECT_TRUE(Clang->createTarget()); +# 124| +# 125|-> Buffer.release(); +# 126| +# 127| SyntaxOnlyAction Action; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/StaticAnalyzer/CheckerRegistration.h:111:3: var_decl: Declaring variable "FileName". +llvm-project-19.0.0.src/clang/unittests/StaticAnalyzer/CheckerRegistration.h:113:3: uninit_use: Using uninitialized value "FileName". Field "FileName.InlineElts" is uninitialized. +# 111| SmallString<80> FileName; +# 112| (Twine{Info->name()} + ".cc").toVector(FileName); +# 113|-> return FileName; +# 114| } +# 115| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Tooling/RefactoringActionRulesTest.cpp:139:5: var_decl: Declaring variable "DiagID" without initializer. +llvm-project-19.0.0.src/clang/unittests/Tooling/RefactoringActionRulesTest.cpp:144:5: uninit_use_in_call: Using uninitialized value "DiagID" when calling "Compare". +# 142| DiagID = Error.getDiagnostic().second.getDiagID(); +# 143| }); +# 144|-> EXPECT_EQ(DiagID, diag::err_refactor_no_selection); +# 145| } +# 146| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:267:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:281:3: uninit_use: Using uninitialized value "result". +# 279| }); +# 280| } +# 281|-> if (result != 0) { +# 282| // If the thread didn't start delete the AsanThread to avoid leaking it. +# 283| // Note AsanThreadContexts never get destroyed so the AsanThreadContext + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:291:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:296:3: uninit_use: Using uninitialized value "result". +# 294| return !result; +# 295| }); +# 296|-> return result; +# 297| } +# 298| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:300:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:305:3: uninit_use: Using uninitialized value "result". +# 303| return !result; +# 304| }); +# 305|-> return result; +# 306| } +# 307| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:315:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:320:3: uninit_use: Using uninitialized value "result". +# 318| return !result; +# 319| }); +# 320|-> return result; +# 321| } +# 322| # endif + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:327:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:332:3: uninit_use: Using uninitialized value "result". +# 330| return !result; +# 331| }); +# 332|-> return result; +# 333| } +# 334| # endif + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/dfsan/dfsan_custom.cpp:2779:3: address_of: Taking address with "&str_origin" yields a singleton pointer. +llvm-project-19.0.0.src/compiler-rt/lib/dfsan/dfsan_custom.cpp:2779:3: callee_ptr_arith: Passing "&str_origin" to function "scan_buffer" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2777| va_list ap; +# 2778| va_start(ap, ret_origin); +# 2779|-> int ret = scan_buffer(str, ~0ul, format, va_labels, ret_label, &str_origin, +# 2780| ret_origin, ap); +# 2781| va_end(ap); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:294:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:299:3: uninit_use: Using uninitialized value "result". +# 297| return !result; +# 298| }); +# 299|-> return result; +# 300| } +# 301| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:303:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:308:3: uninit_use: Using uninitialized value "result". +# 306| return !result; +# 307| }); +# 308|-> return result; +# 309| } +# 310| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:318:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:323:3: uninit_use: Using uninitialized value "result". +# 321| return !result; +# 322| }); +# 323|-> return result; +# 324| } +# 325| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:328:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:333:3: uninit_use: Using uninitialized value "result". +# 331| return !result; +# 332| }); +# 333|-> return result; +# 334| } +# 335| # endif + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:54:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:31: assign: Assigning: "__range1" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:29: uninit_use_in_call: Using uninitialized value "__range1.modules_.data_" when calling "begin". +# 54| ListOfModules modules; +# 55| modules.init(); +# 56|-> for (LoadedModule &module : modules) { +# 57| if (!IsLinker(module)) +# 58| continue; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:54:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:31: assign: Assigning: "__range1" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:29: uninit_use_in_call: Using uninitialized value "__range1.modules_.size_" when calling "end". +# 54| ListOfModules modules; +# 55| modules.init(); +# 56|-> for (LoadedModule &module : modules) { +# 57| if (!IsLinker(module)) +# 58| continue; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:456:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:472:3: uninit_use: Using uninitialized value "result". +# 470| if (attr == &myattr) +# 471| pthread_attr_destroy(&myattr); +# 472|-> return result; +# 473| } +# 474| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:476:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:481:3: uninit_use: Using uninitialized value "result". +# 479| return !result; +# 480| }); +# 481|-> return result; +# 482| } +# 483| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:485:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:490:3: uninit_use: Using uninitialized value "result". +# 488| return !result; +# 489| }); +# 490|-> return result; +# 491| } +# 492| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:500:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:505:3: uninit_use: Using uninitialized value "result". +# 503| return !result; +# 504| }); +# 505|-> return result; +# 506| } +# 507| # define LSAN_MAYBE_INTERCEPT_TRYJOIN INTERCEPT_FUNCTION(pthread_tryjoin_np) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:515:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:520:3: uninit_use: Using uninitialized value "result". +# 518| return !result; +# 519| }); +# 520|-> return result; +# 521| } +# 522| # define LSAN_MAYBE_INTERCEPT_TIMEDJOIN \ + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:300:7: var_decl: Declaring variable "List". +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:302:7: uninit_use_in_call: Using uninitialized value "List.modules_.data_" when calling "begin". +# 300| __sanitizer::ListOfModules List; +# 301| List.init(); +# 302|-> ArrayRef Modules(List.begin(), List.end()); +# 303| u64 BytesSerialized = SerializeToRawProfile(MIBMap, Modules, Buffer); +# 304| CHECK(Buffer && BytesSerialized && "could not serialize to buffer"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:300:7: var_decl: Declaring variable "List". +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:302:7: uninit_use_in_call: Using uninitialized value "List.modules_.size_" when calling "end". +# 300| __sanitizer::ListOfModules List; +# 301| List.init(); +# 302|-> ArrayRef Modules(List.begin(), List.end()); +# 303| u64 BytesSerialized = SerializeToRawProfile(MIBMap, Modules, Buffer); +# 304| CHECK(Buffer && BytesSerialized && "could not serialize to buffer"); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1026:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1026:3: var_assign: Assigning: "FilenameBuf" = storage returned from "malloc(Length + 1)". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1031:3: noescape: Resource "FilenameBuf" is not freed or pointed-to in "getCurFilename". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1033:5: leaked_storage: Variable "FilenameBuf" going out of scope leaks the storage it points to. +# 1031| Filename = getCurFilename(FilenameBuf, 1); +# 1032| if (!Filename) +# 1033|-> return "\0"; +# 1034| +# 1035| return FilenameBuf; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingValue.c:222:3: alloc_fn: Storage is returned from allocation function "allocateOneNode". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingValue.c:222:3: var_assign: Assigning: "CurVNode" = storage returned from "allocateOneNode()". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingValue.c:239:1: leaked_storage: Variable "CurVNode" going out of scope leaks the storage it points to. +# 237| return; +# 238| } +# 239|-> } +# 240| +# 241| COMPILER_RT_VISIBILITY void + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:145:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:148:5: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 146| uptr i1 = idx1(idx); +# 147| uptr i2 = idx2(idx); +# 148|-> if (!l1_[i0].getBit(i1)) { +# 149| l1_[i0].setBit(i1); +# 150| l2_[i0][i1].clear(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:145:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:149:7: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 147| uptr i2 = idx2(idx); +# 148| if (!l1_[i0].getBit(i1)) { +# 149|-> l1_[i0].setBit(i1); +# 150| l2_[i0][i1].clear(); +# 151| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:160:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:164:5: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 162| uptr i2 = idx2(idx); +# 163| bool res = false; +# 164|-> if (l1_[i0].getBit(i1)) { +# 165| res = l2_[i0][i1].clearBit(i2); +# 166| if (l2_[i0][i1].empty()) + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:160:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:167:9: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 165| res = l2_[i0][i1].clearBit(i2); +# 166| if (l2_[i0][i1].empty()) +# 167|-> l1_[i0].clearBit(i1); +# 168| } +# 169| return res; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:174:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:178:5: overrun-local: Overrunning array of 8 bytes at byte offset 8 by dereferencing pointer "this->l1_[i0]". +# 176| uptr i2 = idx2(idx); +# 177| // Printf("%s: %zd => %zd %zd %zd\n", __func__, idx, i0, i1, i2); +# 178|-> return l1_[i0].getBit(i1) && l2_[i0][i1].getBit(i2); +# 179| } +# 180| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use: Using uninitialized value "local_iovec.iov_base". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use: Using uninitialized value "local_iovec.iov_len". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_base" when calling "__memprof_record_access_range". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_base" when calling "__msan_unpoison". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_len" when calling "__memprof_record_access_range". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_len" when calling "__msan_unpoison". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:53:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:28: assign: Assigning: "__range2" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:26: uninit_use_in_call: Using uninitialized value "__range2.modules_.data_" when calling "begin". +# 56| Lib *lib = &libs_[i]; +# 57| bool loaded = false; +# 58|-> for (const auto &mod : modules) { +# 59| for (const auto &range : mod.ranges()) { +# 60| if (!range.executable) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:53:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:28: assign: Assigning: "__range2" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:26: uninit_use_in_call: Using uninitialized value "__range2.modules_.size_" when calling "end". +# 56| Lib *lib = &libs_[i]; +# 57| bool loaded = false; +# 58|-> for (const auto &mod : modules) { +# 59| for (const auto &range : mod.ranges()) { +# 60| if (!range.executable) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:51:5: underflow: The decrement operator on the unsigned variable "minimal_num_length" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:63:5: overflow: The expression "minimal_num_length - pos" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:63:5: overflow: The expression "8UL * (minimal_num_length - pos)" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:63:5: overflow_sink: "8UL * (minimal_num_length - pos)", which might have underflowed, is passed to "__sanitizer::internal_memset(&num_buffer[pos], 0, 8UL * (minimal_num_length - pos))". +# 61| if (pos < minimal_num_length) { +# 62| // Make sure compiler doesn't insert call to memset here. +# 63|-> internal_memset(&num_buffer[pos], 0, +# 64| sizeof(num_buffer[0]) * (minimal_num_length - pos)); +# 65| pos = minimal_num_length; + +Error: INTEGER_OVERFLOW (CWE-125): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:51:5: underflow: The decrement operator on the unsigned variable "minimal_num_length" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:65:5: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:69:3: deref_overflow: "pos", which might have underflowed, is passed to "num_buffer[pos]". +# 67| RAW_CHECK(pos > 0); +# 68| pos--; +# 69|-> for (; pos >= 0 && num_buffer[pos] == 0; pos--) { +# 70| char c = (pad_with_zero || pos == 0) ? '0' : ' '; +# 71| result += AppendChar(buff, buff_end, c); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:33:3: cond_at_most: Checking "i < 5" implies that "i" may be up to 4 on the true branch. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:35:7: overrun-local: Overrunning array of 40 bytes at byte offset 40 by dereferencing pointer "&__sanitizer::InternalDieCallbacks[i + 1]". +# 33| for (int i = 0; i < kMaxNumOfInternalDieCallbacks; i++) { +# 34| if (InternalDieCallbacks[i] == callback) { +# 35|-> internal_memmove(&InternalDieCallbacks[i], &InternalDieCallbacks[i + 1], +# 36| sizeof(InternalDieCallbacks[0]) * +# 37| (kMaxNumOfInternalDieCallbacks - i - 1)); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:28:5: underflow: The decrement operator on the unsigned variable "MinNumberLength" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:41:5: overflow: The expression "MinNumberLength - Pos" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:41:5: overflow: The expression "8UL * static_cast(MinNumberLength - Pos)" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:41:5: overflow_sink: "8UL * static_cast(MinNumberLength - Pos)", which might have underflowed, is passed to "memset(&NumBuffer[Pos], 0, 8UL * static_cast(MinNumberLength - Pos))". +# 39| } while (AbsoluteValue > 0); +# 40| if (Pos < MinNumberLength) { +# 41|-> memset(&NumBuffer[Pos], 0, +# 42| sizeof(NumBuffer[0]) * static_cast(MinNumberLength - Pos)); +# 43| Pos = MinNumberLength; + +Error: INTEGER_OVERFLOW (CWE-125): +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:28:5: underflow: The decrement operator on the unsigned variable "MinNumberLength" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:43:5: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:47:3: deref_overflow: "Pos", which might have underflowed, is passed to "NumBuffer[Pos]". +# 45| RAW_CHECK(Pos > 0); +# 46| Pos--; +# 47|-> for (; Pos >= 0 && NumBuffer[Pos] == 0; Pos--) { +# 48| char c = (PadWithZero || Pos == 0) ? '0' : ' '; +# 49| String.push_back(c); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_rtl_access.cpp:279:3: var_decl: Declaring variable "old" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_rtl_access.cpp:295:3: uninit_use_in_call: Using uninitialized value "static_cast<__tsan::RawShadow>(old)" when calling "Shadow". +# 293| break; +# 294| } +# 295|-> Shadow prev(static_cast(old)); +# 296| // For the free shadow markers the first element (that contains kFreeSid) +# 297| // triggers the race, but the second element contains info about the freeing + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_sync.cpp:21:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_sync.cpp:21:46: uninit_use_in_call: Using uninitialized value "this->clock" when calling "Reset". +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_sync.cpp:21:46: uninit_use_in_call: Using uninitialized value "this->read_clock" when calling "Reset". +# 19| void DDMutexInit(ThreadState *thr, uptr pc, SyncVar *s); +# 20| +# 21|-> SyncVar::SyncVar() : mtx(MutexTypeSyncVar) { Reset(); } +# 22| +# 23| void SyncVar::Init(ThreadState *thr, uptr pc, uptr addr, bool save_stack) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:88:3: var_decl: Declaring variable "Loc". +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:112:3: uninit_use_in_call: Using uninitialized value "Loc". Field "Loc.MemoryLoc" is uninitialized when calling "ScopedReport". +# 110| } +# 111| +# 112|-> ScopedReport R(Opts, Loc, ET); +# 113| +# 114| switch (ET) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:156:3: var_decl: Declaring variable "Loc". +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:164:3: uninit_use_in_call: Using uninitialized value "Loc". Field "Loc.MemoryLoc" is uninitialized when calling "ScopedReport". +# 162| return; +# 163| +# 164|-> ScopedReport R(Opts, Loc, ET); +# 165| +# 166| uptr RealPointer = Pointer - Offset; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_basic_logging.cpp:184:5: var_decl: Declaring variable "E" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_basic_logging.cpp:191:5: uninit_use_in_call: Using uninitialized value "E". Field "E.Padding" is uninitialized when calling "internal_memcpy". +# 189| auto StackEntryPtr = static_cast(TLD.ShadowStack) + +# 190| (sizeof(StackEntry) * (TLD.StackEntries - 1)); +# 191|-> internal_memcpy(StackEntryPtr, &E, sizeof(StackEntry)); +# 192| break; +# 193| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:144:3: tainted_data_return: Called function "write(this->Fd, Begin, TotalBytes)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:144:3: assign: Assigning: "Written" = "write(this->Fd, Begin, TotalBytes)". +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:151:5: overflow: The expression "TotalBytes" is considered to have possibly overflowed. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:144:3: overflow_sink: "TotalBytes", which might be negative, is passed to "write(this->Fd, Begin, TotalBytes)". +# 142| return; +# 143| auto TotalBytes = std::distance(Begin, End); +# 144|-> while (auto Written = write(Fd, Begin, TotalBytes)) { +# 145| if (Written < 0) { +# 146| if (errno == EINTR) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:33:3: tainted_data_return: Called function "read(Fd, Begin, BytesToRead)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:33:3: assign: Assigning: "BytesRead" = "read(Fd, Begin, BytesToRead)". +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:42:5: overflow: The expression "BytesToRead" is considered to have possibly overflowed. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:33:3: overflow_sink: "BytesToRead", which might be negative, is passed to "read(Fd, Begin, BytesToRead)". +# 31| ssize_t BytesRead; +# 32| ssize_t TotalBytesRead = 0; +# 33|-> while (BytesToRead && (BytesRead = read(Fd, Begin, BytesToRead))) { +# 34| if (BytesRead == -1) { +# 35| if (errno == EINTR) + +Error: SIGMA.container_requesting_net_raw (CWE-269): +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:9: Sigma main event: The Docker container requests the `NET_RAW` capability, either explicitly or by default, granting access to the host's network interfaces. +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:9: remediation: Explicitly remove the `NET_RAW` capability by adding either `NET_RAW` or `ALL` to the `cap_drop` list and avoiding the `NET_RAW` capability in the `cap_add` list. +# 7| services: +# 8| buildkite-builder: +# 9|-> image: ghcr.io/libcxx/buildkite-builder:${TAG:-latest} +# 10| build: +# 11| context: . + +Error: SIGMA.container_requesting_net_raw (CWE-269): +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:18: Sigma main event: The Docker container requests the `NET_RAW` capability, either explicitly or by default, granting access to the host's network interfaces. +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:18: remediation: Explicitly remove the `NET_RAW` capability by adding either `NET_RAW` or `ALL` to the `cap_drop` list and avoiding the `NET_RAW` capability in the `cap_add` list. +# 16| <<: *compiler_versions +# 17| actions-builder: +# 18|-> image: ghcr.io/libcxx/actions-builder:${TAG:-latest} +# 19| build: +# 20| context: . + +Error: SIGMA.container_requesting_net_raw (CWE-269): +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:27: Sigma main event: The Docker container requests the `NET_RAW` capability, either explicitly or by default, granting access to the host's network interfaces. +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:27: remediation: Explicitly remove the `NET_RAW` capability by adding either `NET_RAW` or `ALL` to the `cap_drop` list and avoiding the `NET_RAW` capability in the `cap_add` list. +# 25| <<: *compiler_versions +# 26| android-buildkite-builder: +# 27|-> image: ghcr.io/libcxx/android-buildkite-builder:${TAG:-latest} +# 28| build: +# 29| context: . + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1021:3: return_constant: Function call "llvm::Log2_32(c->getAlignment())" may return 4294967295. +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1021:3: assignment: Assigning: "p2Align" = "llvm::Log2_32(c->getAlignment())". The value of "p2Align" is now 255. +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1023:3: alias: Assigning: "mc" = "ctx.mergeChunkInstances[p2Align]". "mc" now points to element 255 of "ctx.mergeChunkInstances" (which consists of 14 8-byte elements). +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1024:3: overrun-local: Overrunning array of 14 8-byte elements at element index 255 (byte offset 2047) by dereferencing pointer "mc". +# 1022| assert(p2Align < std::size(ctx.mergeChunkInstances)); +# 1023| auto *&mc = ctx.mergeChunkInstances[p2Align]; +# 1024|-> if (!mc) +# 1025| mc = make(c->getAlignment()); +# 1026| mc->sections.push_back(c); + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/lld/COFF/Driver.cpp:1824:27: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "time(NULL)" is cast to "uint32_t". +# 1822| ". Expected 32-bit integer"); +# 1823| } else { +# 1824|-> config->timestamp = time(nullptr); +# 1825| } +# 1826| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:160:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:160:5: leaked_storage: Ignoring storage allocated by "bin.release()" leaks it. +# 158| +# 159| if (auto *obj = dyn_cast(bin.get())) { +# 160|-> bin.release(); +# 161| coffObj.reset(obj); +# 162| } else { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:1137:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:1137:5: leaked_storage: Ignoring storage allocated by "bin.release()" leaks it. +# 1135| +# 1136| if (auto *obj = dyn_cast(bin.get())) { +# 1137|-> bin.release(); +# 1138| coffObj.reset(obj); +# 1139| } else { + +Error: WRITE_CONST_FIELD (CWE-843): +llvm-project-19.0.0.src/lld/COFF/Symbols.h:109:18: field_definition: A const-qualified field is defined. +llvm-project-19.0.0.src/lld/COFF/SymbolTable.cpp:503:9: store_writes_const_field: A write to an aggregate overwrites a const-qualified field within the aggregate. +# 501| // are dealing with and copy the correct number of bytes. +# 502| if (isa(d)) +# 503|-> memcpy(sym, d, sizeof(DefinedRegular)); +# 504| else if (isa(d)) +# 505| memcpy(sym, d, sizeof(DefinedAbsolute)); + +Error: WRITE_CONST_FIELD (CWE-843): +llvm-project-19.0.0.src/lld/COFF/Symbols.h:109:18: field_definition: A const-qualified field is defined. +llvm-project-19.0.0.src/lld/COFF/SymbolTable.cpp:505:9: store_writes_const_field: A write to an aggregate overwrites a const-qualified field within the aggregate. +# 503| memcpy(sym, d, sizeof(DefinedRegular)); +# 504| else if (isa(d)) +# 505|-> memcpy(sym, d, sizeof(DefinedAbsolute)); +# 506| else +# 507| memcpy(sym, d, sizeof(SymbolUnion)); + +Error: WRITE_CONST_FIELD (CWE-843): +llvm-project-19.0.0.src/lld/COFF/Symbols.h:109:18: field_definition: A const-qualified field is defined. +llvm-project-19.0.0.src/lld/COFF/SymbolTable.cpp:507:9: store_writes_const_field: A write to an aggregate overwrites a const-qualified field within the aggregate. +# 505| memcpy(sym, d, sizeof(DefinedAbsolute)); +# 506| else +# 507|-> memcpy(sym, d, sizeof(SymbolUnion)); +# 508| continue; +# 509| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/Common/Filesystem.cpp:87:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/lld/Common/Filesystem.cpp:91:5: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 89| +# 90| if (ec) +# 91|-> return; +# 92| +# 93| // close and therefore remove TempPath in background. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/ELF/Arch/PPC64.cpp:272:3: var_decl: Declaring variable "first" without initializer. +llvm-project-19.0.0.src/lld/ELF/Arch/PPC64.cpp:288:3: uninit_use: Using uninitialized value "first". +# 286| // The full section content has the extent of [begin, end). We drop unused +# 287| // instructions and write [first,end). +# 288|-> auto *sec = make( +# 289| ctx.internalFile, SHF_ALLOC, SHT_PROGBITS, 4, +# 290| ArrayRef(reinterpret_cast(buf.data() + first), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/ELF/SyntheticSections.cpp:3058:3: var_decl: Declaring variable "offsets" without initializer. +llvm-project-19.0.0.src/lld/ELF/SyntheticSections.cpp:3059:3: uninit_use: Using uninitialized element of array "offsets". +# 3057| // current shard. +# 3058| uint32_t offsets[numShards]; +# 3059|-> parallelFor(0, numShards, [&](size_t shard) { +# 3060| uint32_t offset = 0; +# 3061| for (NameEntry &ne : nameVecs[shard]) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/Driver.cpp:85:49: destructor_uses_global_object: The destructor of global object "resolvedLibraries" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "resolvedLibraries" might be called after "fuzzer::TPC" has already been destroyed. +# 83| } +# 84| +# 85|-> static DenseMap resolvedLibraries; +# 86| static std::optional findLibrary(StringRef name) { +# 87| CachedHashStringRef key(name); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/Driver.cpp:116:49: destructor_uses_global_object: The destructor of global object "resolvedFrameworks" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "resolvedFrameworks" might be called after "fuzzer::TPC" has already been destroyed. +# 114| } +# 115| +# 116|-> static DenseMap resolvedFrameworks; +# 117| static std::optional findFramework(StringRef name) { +# 118| CachedHashStringRef key(name); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/Driver.cpp:271:45: destructor_uses_global_object: The destructor of global object "loadedArchives" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "loadedArchives" might be called after "fuzzer::TPC" has already been destroyed. +# 269| }; +# 270| +# 271|-> static DenseMap loadedArchives; +# 272| +# 273| static InputFile *addFile(StringRef path, LoadType loadType, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/DriverUtils.cpp:222:51: destructor_uses_global_object: The destructor of global object "loadedDylibs" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "loadedDylibs" might be called after "fuzzer::TPC" has already been destroyed. +# 220| // It's not uncommon to have multiple attempts to load a single dylib, +# 221| // especially if it's a commonly re-exported core library. +# 222|-> static DenseMap loadedDylibs; +# 223| +# 224| DylibFile *macho::loadDylib(MemoryBufferRef mbref, DylibFile *umbrella, + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/lld/MachO/DriverUtils.cpp:309:14: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "llvm::sys::toTimeT(stat.getLastModificationTime())" is cast to "uint32_t". +# 307| if (!fs::status(path, stat)) +# 308| if (fs::exists(stat)) +# 309|-> return toTimeT(stat.getLastModificationTime()); +# 310| +# 311| warn("failed to get modification time of " + path); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/InputFiles.cpp:214:55: destructor_uses_global_object: The destructor of global object "lld::macho::cachedReads" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "lld::macho::cachedReads" might be called after "fuzzer::TPC" has already been destroyed. +# 212| // Theoretically this caching could be more efficient by hoisting it, but that +# 213| // would require altering many callers to track the state. +# 214|-> DenseMap macho::cachedReads; +# 215| // Open a given file path and return it as a memory-mapped file. +# 216| std::optional macho::readFile(StringRef path) { + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/lld/MachO/InputFiles.cpp:2203:30: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "llvm::sys::toTimeT(std::chrono::time_point > >(*modTime))" is cast to "uint32_t". +# 2201| +# 2202| Expected file = +# 2203|-> loadArchiveMember(*mb, toTimeT(*modTime), getName(), c.getChildOffset(), +# 2204| forceHidden, compatArch); +# 2205| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/MachO/MapFile.cpp:65:3: var_decl: Declaring variable "info". +llvm-project-19.0.0.src/lld/MachO/MapFile.cpp:122:3: uninit_use: Using uninitialized value "info". Field "info.files.InlineElts" is uninitialized. +# 120| return p1.first < p2.first; +# 121| }); +# 122|-> return info; +# 123| } +# 124| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/OutputSegment.cpp:170:45: destructor_uses_global_object: The destructor of global object "nameToOutputSegment" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "nameToOutputSegment" might be called after "fuzzer::TPC" has already been destroyed. +# 168| } +# 169| +# 170|-> static DenseMap nameToOutputSegment; +# 171| std::vector macho::outputSegments; +# 172| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/SyntheticSections.cpp:811:24: destructor_uses_global_object: The destructor of global object "lld::macho::ObjCSelRefsHelper::methnameToSelref" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "lld::macho::ObjCSelRefsHelper::methnameToSelref" might be called after "fuzzer::TPC" has already been destroyed. +# 809| +# 810| llvm::DenseMap +# 811|-> ObjCSelRefsHelper::methnameToSelref; +# 812| void ObjCSelRefsHelper::initialize() { +# 813| // Do not fold selrefs without ICF. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/MachO/SyntheticSections.cpp:1891:3: var_decl: Declaring variable "firstFile" without initializer. +llvm-project-19.0.0.src/lld/MachO/SyntheticSections.cpp:1901:7: uninit_use_in_call: Using uninitialized value "firstFile" when calling "toString". +# 1899| +# 1900| if (info.swiftVersion != 0 && info.swiftVersion != inputInfo.swiftVersion) { +# 1901|-> error("Swift version mismatch: " + toString(firstFile) + " has version " + +# 1902| swiftVersionString(info.swiftVersion) + " but " + toString(file) + +# 1903| " has version " + swiftVersionString(inputInfo.swiftVersion)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/wasm/InputFiles.cpp:422:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/lld/wasm/InputFiles.cpp:422:3: leaked_storage: Ignoring storage allocated by "bin.release()" leaks it. +# 420| fatal(toString(this) + ": not a relocatable wasm file"); +# 421| +# 422|-> bin.release(); +# 423| wasmObj.reset(obj); +# 424| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:150:5: move: "Val" is moved (indicated by "std::forward(Val)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:152:7: use_after_move: "Val" is used after it has been already moved. +# 150| auto Ret = try_emplace(Key, std::forward(Val)); +# 151| if (!Ret.second) +# 152|-> Ret.first->second = std::forward(Val); +# 153| return Ret; +# 154| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:157:5: move: "Val" is moved (indicated by "std::forward(Val)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:159:7: use_after_move: "Val" is used after it has been already moved. +# 157| auto Ret = try_emplace(std::move(Key), std::forward(Val)); +# 158| if (!Ret.second) +# 159|-> Ret.first->second = std::forward(Val); +# 160| return Ret; +# 161| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:46:7: alloc_fn: Storage is returned from allocation function "createFastDAGScheduler". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:46:7: leaked_storage: Failing to save or free storage allocated by "llvm::createFastDAGScheduler(NULL, Default)" leaks it. +# 44| (void)llvm::createHybridListDAGScheduler(nullptr, +# 45| llvm::CodeGenOptLevel::Default); +# 46|-> (void)llvm::createFastDAGScheduler(nullptr, +# 47| llvm::CodeGenOptLevel::Default); +# 48| (void)llvm::createDefaultScheduler(nullptr, + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:48:7: alloc_fn: Storage is returned from allocation function "createDefaultScheduler". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:48:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDefaultScheduler(NULL, Default)" leaks it. +# 46| (void)llvm::createFastDAGScheduler(nullptr, +# 47| llvm::CodeGenOptLevel::Default); +# 48|-> (void)llvm::createDefaultScheduler(nullptr, +# 49| llvm::CodeGenOptLevel::Default); +# 50| (void)llvm::createVLIWDAGScheduler(nullptr, + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:667:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:667:3: use_after_move: "Op" is used after it has been already moved. +# 665| /// Allows to peek through optional extensions +# 666| template inline auto m_ZExtOrSelf(Opnd &&Op) { +# 667|-> return m_AnyOf(m_ZExt(std::forward(Op)), std::forward(Op)); +# 668| } +# 669| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:673:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:673:3: use_after_move: "Op" is used after it has been already moved. +# 671| /// Allows to peek through optional extensions +# 672| template inline auto m_SExtOrSelf(Opnd &&Op) { +# 673|-> return m_AnyOf(m_SExt(std::forward(Op)), std::forward(Op)); +# 674| } +# 675| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:680:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:680:3: use_after_move: "Op" is used after it has been already moved. +# 678| template +# 679| inline Or, Opnd> m_AExtOrSelf(Opnd &&Op) { +# 680|-> return Or, Opnd>(m_AnyExt(std::forward(Op)), +# 681| std::forward(Op)); +# 682| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:688:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:688:3: use_after_move: "Op" is used after it has been already moved. +# 686| template +# 687| inline Or, Opnd> m_TruncOrSelf(Opnd &&Op) { +# 688|-> return Or, Opnd>(m_Trunc(std::forward(Op)), +# 689| std::forward(Op)); +# 690| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DWARFLinker/Utils.h:42:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/include/llvm/DWARFLinker/Utils.h:46:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 44| StringRef Base = sys::path::parent_path(SysRoot); +# 45| if (sys::path::filename(Base) != "SDKs") +# 46|-> return Result; +# 47| Base = sys::path::parent_path(Base); +# 48| Result = Base; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:49:5: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:50:5: uninit_use_in_call: Using uninitialized value "Record.Machine" when calling "deserializeAs". +# 48| template static Expected deserializeAs(CVSymbol Symbol) { +# 49| T Record(static_cast(Symbol.kind())); +# 50|-> if (auto EC = deserializeAs(Symbol, Record)) +# 51| return std::move(EC); +# 52| return Record; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:49:5: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:52:5: uninit_use_in_call: Using uninitialized value "Record". Field "Record.Machine" is uninitialized when calling "Expected". +# 50| if (auto EC = deserializeAs(Symbol, Record)) +# 51| return std::move(EC); +# 52|-> return Record; +# 53| } +# 54| + +Error: VIRTUAL_DTOR (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/IR/Metadata.h:382:7: no_virtual_dtor: Class "llvm::ReplaceableMetadataImpl" does not have a virtual destructor. +llvm-project-19.0.0.src/llvm/include/llvm/IR/DebugInfoMetadata.h:3830:3: dtor_in_derived: Class "llvm::DIArgList" has a destructor and a pointer to it is upcast to class "llvm::ReplaceableMetadataImpl" which doesn't have a virtual destructor. +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:457:5: upcast: Example 1: Casting from a pointer to "llvm::DIArgList" to a pointer to "llvm::ReplaceableMetadataImpl" in "ArgList". +/usr/include/c++/14/bits/unique_ptr.h:93:2: delete: Example 1: Deletion of type "llvm::ReplaceableMetadataImpl". +llvm-project-19.0.0.src/llvm/lib/IR/DebugInfoMetadata.cpp:2139:3: alloc: Example 1: Allocated an object of type "llvm::DIArgList". +# 380| /// use-lists and associated API for the three that support it ( +# 381| /// \a ValueAsMetadata, \a TempMDNode, and \a DIArgList). +# 382|-> class ReplaceableMetadataImpl { +# 383| friend class MetadataTracking; +# 384| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:62:7: alloc_fn: Storage is returned from allocation function "createAtomicExpandLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:62:7: leaked_storage: Failing to save or free storage allocated by "llvm::createAtomicExpandLegacyPass()" leaks it. +# 60| return; +# 61| +# 62|-> (void)llvm::createAtomicExpandLegacyPass(); +# 63| (void) llvm::createBasicAAWrapperPass(); +# 64| (void) llvm::createSCEVAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:98:7: alloc_fn: Storage is returned from allocation function "createPromoteMemoryToRegisterPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:98:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPromoteMemoryToRegisterPass()" leaks it. +# 96| (void) llvm::createNaryReassociatePass(); +# 97| (void) llvm::createObjCARCContractPass(); +# 98|-> (void) llvm::createPromoteMemoryToRegisterPass(); +# 99| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 100| (void)llvm::createPostDomPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:115:7: alloc_fn: Storage is returned from allocation function "createCodeGenPrepareLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:115:7: leaked_storage: Failing to save or free storage allocated by "llvm::createCodeGenPrepareLegacyPass()" leaks it. +# 113| (void)llvm::createTLSVariableHoistPass(); +# 114| (void) llvm::createConstantHoistingPass(); +# 115|-> (void)llvm::createCodeGenPrepareLegacyPass(); +# 116| (void) llvm::createEarlyCSEPass(); +# 117| (void) llvm::createGVNPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:121:7: alloc_fn: Storage is returned from allocation function "createExpandMemCmpLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:121:7: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandMemCmpLegacyPass()" leaks it. +# 119| (void) llvm::createMergeICmpsLegacyPass(); +# 120| (void) llvm::createExpandLargeDivRemPass(); +# 121|-> (void)llvm::createExpandMemCmpLegacyPass(); +# 122| (void) llvm::createExpandVectorPredicationPass(); +# 123| std::string buf; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:749:5: var_decl: Declaring variable "CS". +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:758:5: uninit_use: Using uninitialized value "CS". Field "CS.InlineElts" is uninitialized. +# 756| CS.push_back(F); +# 757| } +# 758|-> return CS; +# 759| } +# 760| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:808:5: var_decl: Declaring variable "Frames". +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:819:5: uninit_use: Using uninitialized value "Frames". Field "Frames.InlineElts" is uninitialized. +# 817| Frames.push_back(FrameIdToFrame(Id)); +# 818| } +# 819|-> return Frames; +# 820| } +# 821| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2221:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2221:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2219| case Intrinsic::exp10: +# 2220| // Fold exp10(x) as pow(10, x), in case the host lacks a C99 library. +# 2221|-> return ConstantFoldBinaryFP(pow, APFloat(10.0), APF, Ty); +# 2222| case Intrinsic::sin: +# 2223| return ConstantFoldFP(sin, APF, Ty); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3142:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), llvm::APInt(16U, (uint16_t)Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3142:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3140| auto *ScalarTy = CurTy->getScalarType(); +# 3141| if (ScalarTy->isHalfTy()) +# 3142|-> V = ConstantFP::get(CurTy, APFloat(APFloat::IEEEhalf(), +# 3143| APInt(16, (uint16_t)Record[0]))); +# 3144| else if (ScalarTy->isBFloatTy()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3145:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::BFloat(), llvm::APInt(16U, (uint32_t)Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3145:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3143| APInt(16, (uint16_t)Record[0]))); +# 3144| else if (ScalarTy->isBFloatTy()) +# 3145|-> V = ConstantFP::get( +# 3146| CurTy, APFloat(APFloat::BFloat(), APInt(16, (uint32_t)Record[0]))); +# 3147| else if (ScalarTy->isFloatTy()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3148:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, (uint32_t)Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3148:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3146| CurTy, APFloat(APFloat::BFloat(), APInt(16, (uint32_t)Record[0]))); +# 3147| else if (ScalarTy->isFloatTy()) +# 3148|-> V = ConstantFP::get(CurTy, APFloat(APFloat::IEEEsingle(), +# 3149| APInt(32, (uint32_t)Record[0]))); +# 3150| else if (ScalarTy->isDoubleTy()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3151:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3151:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3149| APInt(32, (uint32_t)Record[0]))); +# 3150| else if (ScalarTy->isDoubleTy()) +# 3151|-> V = ConstantFP::get( +# 3152| CurTy, APFloat(APFloat::IEEEdouble(), APInt(64, Record[0]))); +# 3153| else if (ScalarTy->isX86_FP80Ty()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3158:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), llvm::APInt(80U, llvm::ArrayRef(Rearrange)))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3158:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3156| Rearrange[0] = (Record[1] & 0xffffLL) | (Record[0] << 16); +# 3157| Rearrange[1] = Record[0] >> 48; +# 3158|-> V = ConstantFP::get( +# 3159| CurTy, APFloat(APFloat::x87DoubleExtended(), APInt(80, Rearrange))); +# 3160| } else if (ScalarTy->isFP128Ty()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3161:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3161:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3159| CurTy, APFloat(APFloat::x87DoubleExtended(), APInt(80, Rearrange))); +# 3160| } else if (ScalarTy->isFP128Ty()) +# 3161|-> V = ConstantFP::get(CurTy, +# 3162| APFloat(APFloat::IEEEquad(), APInt(128, Record))); +# 3163| else if (ScalarTy->isPPC_FP128Ty()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3164:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3164:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3162| APFloat(APFloat::IEEEquad(), APInt(128, Record))); +# 3163| else if (ScalarTy->isPPC_FP128Ty()) +# 3164|-> V = ConstantFP::get( +# 3165| CurTy, APFloat(APFloat::PPCDoubleDouble(), APInt(128, Record))); +# 3166| else + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:817:3: return_constant: Function call "getOutlineAtomicLibcall(MI)" may return 653. +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:817:3: assignment: Assigning: "RTLibcall" = "getOutlineAtomicLibcall(MI)". The value of "RTLibcall" is now 653. +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:828:3: overrun-call: Overrunning callee's array of size 653 by passing argument "RTLibcall" (which evaluates to 653) in call to "getLibcallCallingConv". +# 826| +# 827| CallLowering::CallLoweringInfo Info; +# 828|-> Info.CallConv = TLI.getLibcallCallingConv(RTLibcall); +# 829| Info.Callee = MachineOperand::CreateES(Name); +# 830| Info.OrigRet = CallLowering::ArgInfo(RetRegs, RetTy, 0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectOptimize.cpp:1199:3: var_decl: Declaring variable "SImap". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectOptimize.cpp:1203:3: uninit_use: Using uninitialized value "SImap". Field "SImap.NumEntries" is uninitialized. +# 1201| for (SelectLike SI : ASI) +# 1202| SImap.try_emplace(SI.getI(), SI); +# 1203|-> return SImap; +# 1204| } +# 1205| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:17149:7: var_decl: Declaring variable "Recip". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:17150:7: uninit_use_in_call: Using uninitialized value "Recip.U" when calling "divide". +#17148| const APFloat &N1APF = N1CFP->getValueAPF(); +#17149| APFloat Recip(N1APF.getSemantics(), 1); // 1.0 +#17150|-> APFloat::opStatus st = Recip.divide(N1APF, APFloat::rmNearestTiesToEven); +#17151| // Only do the transform if the reciprocal is a legal fp immediate that +#17152| // isn't too nasty (eg NaN, denormal, ...). + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22395:7: var_decl: Declaring variable "CstFP". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22398:9: uninit_use_in_call: Using uninitialized value "CstFP.U" when calling "getConstantFP". +#22396| APFloat(DAG.EVTToAPFloatSemantics(ScalarVT), KnownElt.getConstant()); +#22397| if (TLI.isFPImmLegal(CstFP, ScalarVT)) +#22398|-> return DAG.getConstantFP(CstFP, DL, ScalarVT); +#22399| } +#22400| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22395:7: var_decl: Declaring variable "CstFP". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22399:5: uninit_use_in_call: Using uninitialized value "CstFP.U" when calling "~APFloat". +#22397| if (TLI.isFPImmLegal(CstFP, ScalarVT)) +#22398| return DAG.getConstantFP(CstFP, DL, ScalarVT); +#22399|-> } +#22400| } +#22401| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6324:9: var_decl: Declaring variable "apf". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6326:9: uninit_use_in_call: Using uninitialized value "apf.U" when calling "convertFromAPInt". +# 6324| APFloat apf(EVTToAPFloatSemantics(VT), +# 6325| APInt::getZero(VT.getSizeInBits())); +# 6326|-> (void)apf.convertFromAPInt(Val, Opcode == ISD::SINT_TO_FP, +# 6327| APFloat::rmNearestTiesToEven); +# 6328| return getConstantFP(apf, DL, VT); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5962:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5987:3: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 5985| }); +# 5986| +# 5987|-> return Ret; +# 5988| } +# 5989| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/TargetLoweringBase.cpp:776:21: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/llvm/lib/CodeGen/TargetLoweringBase.cpp:777:3: uninit_use_in_call: Using uninitialized element of array "this->AtomicLoadExtActions" when calling "initActions". +# 775| /// NOTE: The TargetMachine owns TLOF. +# 776| TargetLoweringBase::TargetLoweringBase(const TargetMachine &tm) : TM(tm) { +# 777|-> initActions(); +# 778| +# 779| // Perform these initializations only once. + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1212:9: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1212:9: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1215:9: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1213| reinterpret_cast(&LinkedAddress), +# 1214| OrigAddressByteSize); +# 1215|-> OutputBuffer.append(AddressBytes.begin(), AddressBytes.end()); +# 1216| } else +# 1217| Linker.reportWarning("cannot read DW_OP_addrx operand.", File); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1246:11: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1246:11: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1249:11: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1247| reinterpret_cast(&LinkedAddress), +# 1248| OrigAddressByteSize); +# 1249|-> OutputBuffer.append(AddressBytes.begin(), AddressBytes.end()); +# 1250| } +# 1251| } else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1995:7: var_decl: Declaring variable "LinkedExpression". +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:2009:7: uninit_use_in_call: Using uninitialized value "LinkedExpression". Field "LinkedExpression.Expr.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 2007| CurLocAttr.RelocAdjustment); +# 2008| +# 2009|-> LinkedLocationExpressions.push_back(LinkedExpression); +# 2010| } +# 2011| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DIEAttributeCloner.cpp:551:3: cond_at_least: Checking "Bytes.size() > 4294967295UL" implies that ".Length", "Buffer.Size", "Bytes.Length" and "Bytes.size()" are at least 4294967296 on the true branch. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DIEAttributeCloner.cpp:577:3: overrun-buffer-arg: Calling "~SmallVector" with "Buffer->BeginX" and "Buffer->Size" is suspicious because of the very large index, 4294967296. The index may be due to a negative parameter being interpreted as unsigned. +# 575| InUnit.getGlobalData().getOptions().UpdateIndexTablesOnly; +# 576| +# 577|-> return FinalAttributeSize; +# 578| } +# 579| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1178:9: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1178:9: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1181:9: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1179| reinterpret_cast(&LinkedAddress), +# 1180| OrigAddressByteSize); +# 1181|-> OutputExpression.append(AddressBytes.begin(), AddressBytes.end()); +# 1182| } else +# 1183| warn("cann't read DW_OP_addrx operand."); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1215:11: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1215:11: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1218:11: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1216| reinterpret_cast(&LinkedAddress), +# 1217| OrigAddressByteSize); +# 1218|-> OutputExpression.append(AddressBytes.begin(), AddressBytes.end()); +# 1219| } +# 1220| } else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp:457:3: var_decl: Declaring variable "DstFI". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp:481:3: uninit_use_in_call: Using uninitialized value "DstFI". Field "DstFI.EncodingCache.InlineElts" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 479| } +# 480| std::lock_guard Guard(Mutex); +# 481|-> Funcs.emplace_back(DstFI); +# 482| return Funcs.back().cacheEncoding(); +# 483| } + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp:368:20: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "Sig.operator bool() ? *Sig : time(NULL)" is cast to "llvm::support::detail::packed_endian_specific_integral::value_type". +# 366| H->Guid = Info->getGuid(); +# 367| std::optional Sig = Info->getSignature(); +# 368|-> H->Signature = Sig ? *Sig : time(nullptr); +# 369| } +# 370| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:72:3: var_decl: Declaring variable "ReadGuard". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:76:5: uninit_use_in_call: Using uninitialized value "ReadGuard._M_owns" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:76:5: uninit_use_in_call: Using uninitialized value "ReadGuard._M_pm" when calling "unlock". +# 74| // Only read from the environment variable if the user hasn't already +# 75| // set the value. +# 76|-> ReadGuard.unlock(); +# 77| std::unique_lock WriteGuard(UrlsMutex); +# 78| DebuginfodUrls = SmallVector(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:77:5: var_decl: Declaring variable "WriteGuard". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:83:5: uninit_use_in_call: Using uninitialized value "WriteGuard._M_device" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:83:5: uninit_use_in_call: Using uninitialized value "WriteGuard._M_owns" when calling "unlock". +# 81| .split(DebuginfodUrls.value(), " ", -1, false); +# 82| } +# 83|-> WriteGuard.unlock(); +# 84| ReadGuard.lock(); +# 85| } + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2312:3: extract: Calling "back" which extracts wrapped state from "IPLS.CurDefGeneratorStack". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2312:3: identity_transfer: Member function call "IPLS.CurDefGeneratorStack.back()->lock()" returns "IPLS.CurDefGeneratorStack.back()" ("this"). +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2312:3: assign: Assigning: "DG" = "IPLS.CurDefGeneratorStack.back()->lock()". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2313:5: invalidate: Calling "pop_back" invalidates the internal representation of "IPLS.CurDefGeneratorStack". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2314:5: use_after_free: Using invalidated internal representation of "IPLS.CurDefGeneratorStack". +# 2312| if (auto DG = IPLS.CurDefGeneratorStack.back().lock()) { +# 2313| IPLS.CurDefGeneratorStack.pop_back(); +# 2314|-> std::lock_guard Lock(DG->M); +# 2315| +# 2316| // If there are no pending lookups then mark the generator as free and + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:163:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.MappedSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.UnwindDataSize" when calling "Expected". +# 167| if (!Eh_frame) { +# 168| LLVM_DEBUG(dbgs() << "No .eh_frame section found\n"); +# 169|-> return Record; +# 170| } +# 171| if (!G.getTargetTriple().isOSBinFormatELF()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:163:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.MappedSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.UnwindDataSize" when calling "Expected". +# 171| if (!G.getTargetTriple().isOSBinFormatELF()) { +# 172| LLVM_DEBUG(dbgs() << "Not an ELF file, will not emit unwinding info\n"); +# 173|-> return Record; +# 174| } +# 175| auto SR = SectionRange(*Eh_frame); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:163:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.EHFrameAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.MappedSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.UnwindDataSize" when calling "Expected". +# 184| } else { +# 185| LLVM_DEBUG(dbgs() << "No .eh_frame_hdr section found\n"); +# 186|-> return Record; +# 187| } +# 188| Record.EHFrameHdrAddr = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:230:3: var_decl: Declaring variable "Batch". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: uninit_use: Using uninitialized value "Batch". Field "Batch.UnwindingRecord.Prefix" is uninitialized. +# 249| Batch.UnwindingRecord.Prefix.TotalSize = 0; +# 250| } +# 251|-> return Batch; +# 252| } +# 253| } // namespace +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: note: trimmed 2 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:230:3: var_decl: Declaring variable "Batch". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: uninit_use: Using uninitialized value "Batch". Field "Batch.UnwindingRecord.UnwindDataSize" is uninitialized. +# 249| Batch.UnwindingRecord.Prefix.TotalSize = 0; +# 250| } +# 251|-> return Batch; +# 252| } +# 253| } // namespace +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: note: trimmed 2 message(s) with length over 512 + +Error: BAD_FREE (CWE-763): +llvm-project-19.0.0.src/llvm/lib/IR/BasicBlock.cpp:126:5: address: Taking address of "*Inst.DebugMarker". +llvm-project-19.0.0.src/llvm/lib/IR/BasicBlock.cpp:126:5: assign: Assigning: "Marker" = "*Inst.DebugMarker". +llvm-project-19.0.0.src/llvm/lib/IR/BasicBlock.cpp:131:5: incorrect_free: "eraseFromParent" frees incorrect pointer "Marker". +# 129| DR.createDebugIntrinsic(getModule(), nullptr)); +# 130| +# 131|-> Marker.eraseFromParent(); +# 132| } +# 133| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:290:3: var_decl: Declaring variable "DVRUsers". +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:293:3: uninit_use: Using uninitialized value "DVRUsers". Field "DVRUsers.InlineElts" is uninitialized. +# 291| for (auto UserWithID : DVRUsersWithID) +# 292| DVRUsers.push_back(UserWithID->first.get()->getUser()); +# 293|-> return DVRUsers; +# 294| } +# 295| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/ReplaceConstant.cpp:27:3: var_decl: Declaring variable "NewInsts". +llvm-project-19.0.0.src/llvm/lib/IR/ReplaceConstant.cpp:49:3: uninit_use: Using uninitialized value "NewInsts". Field "NewInsts.InlineElts" is uninitialized. +# 47| llvm_unreachable("Not an expandable user"); +# 48| } +# 49|-> return NewInsts; +# 50| } +# 51| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5293:7: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5308:7: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 92 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5314:14: overrun-call: Overrunning callee's array of size 89 by passing argument "Kind" (which evaluates to 92) in call to "canUseAsParamAttr". +# 5312| Check(isa(Call.getOperand(Elem.Begin + 1)), +# 5313| "the second argument should be a constant integral value", Call); +# 5314|-> } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5315| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5316| } else if (Attribute::canUseAsFnAttr(Kind)) { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5293:7: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5308:7: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 92 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5316:14: overrun-call: Overrunning callee's array of size 89 by passing argument "Kind" (which evaluates to 92) in call to "canUseAsFnAttr". +# 5314| } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5315| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5316|-> } else if (Attribute::canUseAsFnAttr(Kind)) { +# 5317| Check((ArgCount) == 0, "this attribute has no argument", Call); +# 5318| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/WasmObjectWriter.cpp:1658:11: var_decl: Declaring variable "Global". +llvm-project-19.0.0.src/llvm/lib/MC/WasmObjectWriter.cpp:1683:11: uninit_use_in_call: Using uninitialized value "Global". Field "Global.Offset" is uninitialized when calling "push_back". +# 1681| assert(WasmIndices.count(&WS) == 0); +# 1682| WasmIndices[&WS] = Global.Index; +# 1683|-> Globals.push_back(Global); +# 1684| } else { +# 1685| // An import; the index was assigned above + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:710:5: var_decl: Declaring variable "Info". +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:886:5: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". +# 884| Twine(Info.Name), +# 885| object_error::parse_failed); +# 886|-> Symbols.emplace_back(Info, GlobalType, TableType, Signature); +# 887| LLVM_DEBUG(dbgs() << "Adding symbol: " << Symbols.back() << "\n"); +# 888| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Passes/StandardInstrumentations.cpp:751:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Passes/StandardInstrumentations.cpp:781:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 779| llvm_unreachable("Unknown wrapped IR type"); +# 780| } +# 781|-> return Result; +# 782| } +# 783| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:184:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:208:9: uninit_use: Using uninitialized value "LastPoppedValue". +# 206| Current.VisitCount = StackElem::KVisitedOnce; +# 207| } else if (Current.VisitCount == StackElem::KVisitedOnce) { +# 208|-> Current.LHS = LastPoppedValue; +# 209| CounterStack.push(StackElem{E.RHS}); +# 210| Current.VisitCount = StackElem::KVisitedTwice; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:184:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:213:9: uninit_use: Using uninitialized value "LastPoppedValue". +# 211| } else { +# 212| int64_t LHS = Current.LHS; +# 213|-> int64_t RHS = LastPoppedValue; +# 214| LastPoppedValue = +# 215| E.Kind == CounterExpression::Subtract ? LHS - RHS : LHS + RHS; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:545:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:569:11: uninit_use: Using uninitialized value "LastPoppedValue". +# 567| Current.VisitCount = StackElem::KVisitedOnce; +# 568| } else if (Current.VisitCount == StackElem::KVisitedOnce) { +# 569|-> Current.LHS = LastPoppedValue; +# 570| CounterStack.push(StackElem{E.RHS}); +# 571| Current.VisitCount = StackElem::KVisitedTwice; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:545:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:574:11: uninit_use: Using uninitialized value "LastPoppedValue". +# 572| } else { +# 573| int64_t LHS = Current.LHS; +# 574|-> int64_t RHS = LastPoppedValue; +# 575| LastPoppedValue = std::max(LHS, RHS); +# 576| CounterStack.pop(); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:113:5: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:113:5: assign: Assigning: "" = "llvm::InstrProfCorrelator::get(std::unique_ptr >(std::move(*BufferOrErr)), FileKind)". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:113:5: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 111| return std::move(Err); +# 112| +# 113|-> return get(std::move(*BufferOrErr), FileKind); +# 114| } +# 115| if (FileKind == BINARY) { + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:120:5: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:120:5: assign: Assigning: "" = "llvm::InstrProfCorrelator::get(std::unique_ptr >(std::move(*BufferOrErr)), FileKind)". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:120:5: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 118| return std::move(Err); +# 119| +# 120|-> return get(std::move(*BufferOrErr), FileKind); +# 121| } +# 122| return make_error( + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfReader.cpp:961:5: move: "BitmapByteBuffer" is moved (indicated by "std::move(BitmapByteBuffer)"). +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfReader.cpp:961:5: use_after_move: "BitmapByteBuffer" is used after it has been already moved. +# 959| } +# 960| +# 961|-> DataBuffer.emplace_back(K, Hash, std::move(CounterBuffer), +# 962| std::move(BitmapByteBuffer)); +# 963| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:14:3: var_decl: Declaring variable "List". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:18:3: uninit_use: Using uninitialized value "List". Field "List.InlineElts" is uninitialized. +# 16| #include "llvm/ProfileData/MIBEntryDef.inc" +# 17| #undef MIBEntryDef +# 18|-> return List; +# 19| } +# 20| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:206:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:228:3: uninit_use: Using uninitialized value "Record". Field "Record.AllocSites.InlineElts" is uninitialized. +# 226| } +# 227| +# 228|-> return Record; +# 229| } +# 230| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:248:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:260:3: uninit_use: Using uninitialized value "Record". Field "Record.AllocSites.InlineElts" is uninitialized. +# 258| Record.CallSites.push_back(Callback(CSId)); +# 259| +# 260|-> return Record; +# 261| } +# 262| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:90:3: var_decl: Declaring variable "Items". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:95:3: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 93| Ptr + I * sizeof(SegmentEntry))); +# 94| } +# 95|-> return Items; +# 96| } +# 97| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:104:3: var_decl: Declaring variable "Items". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:113:3: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 111| Ptr += sizeof(MemInfoBlock); +# 112| } +# 113|-> return Items; +# 114| } +# 115| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4290:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloat::IEEEFloat(reciprocal), this->semantics)". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4290:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4288| +# 4289| if (inv) +# 4290|-> *inv = APFloat(reciprocal, *semantics); +# 4291| +# 4292| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5215:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloat::IEEEFloat(std::move(this->getIEEE())), ToSemantics)". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5215:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5213| usesLayout(ToSemantics)) { +# 5214| auto Ret = getIEEE().convert(ToSemantics, RM, losesInfo); +# 5215|-> *this = APFloat(std::move(getIEEE()), ToSemantics); +# 5216| return Ret; +# 5217| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:77:3: open_fn: Returning handle opened by "socket". +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:77:3: var_assign: Assigning: "Socket" = handle returned from "socket(1, SOCK_STREAM, 0)". +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:85:3: noescape: Resource "Socket" is not freed or pointed-to in "connect". +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:86:5: leaked_handle: Handle variable "Socket" going out of scope leaks the handle. +# 84| struct sockaddr_un Addr = setSocketAddr(SocketPath); +# 85| if (::connect(Socket, (struct sockaddr *)&Addr, sizeof(Addr)) == -1) +# 86|-> return llvm::make_error(getLastSocketErrorCode(), +# 87| "Connect socket failed"); +# 88| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp:428:3: return_constant: Function call "llvm::countr_zero(SmallSize)" may return 32. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp:428:3: overrun-local: Overrunning array "RepeatedOnesTable" of 7 8-byte elements at element index 32 (byte offset 263) using index "llvm::countr_zero(SmallSize)" (which evaluates to 32). +# 426| // dividing the 64-bit value into fields of width SmallSize, and placing a +# 427| // one in the least significant bit of each field. +# 428|-> uint64_t SmallOnes = RepeatedOnesTable[countr_zero(SmallSize)]; +# 429| +# 430| // Now we try to find the number of ones in each of the smaller repetitions, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp:1025:3: var_decl: Declaring variable "Opc" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp:1039:3: uninit_use_in_call: Using uninitialized value "Opc" when calling "get". +# 1037| auto TRI = MBB.getParent()->getSubtarget().getRegisterInfo(); +# 1038| unsigned SMReg32 = TRI->getSubReg(PStateSM, AArch64::sub_32); +# 1039|-> MachineInstrBuilder Tbx = +# 1040| BuildMI(MBB, MBBI, DL, TII->get(Opc)).addReg(SMReg32).addImm(0); +# 1041| +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp:1039:3: note: trimmed 1 message(s) with length over 512 + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8258:3: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8258:3: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8554:7: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8627:5: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 8625| // link register. +# 8626| bool ModStackToSaveLR = false; +# 8627|-> if (std::any_of(FirstCand.begin(), std::prev(FirstCand.end()), +# 8628| [](const MachineInstr &MI) { return MI.isCall(); })) +# 8629| ModStackToSaveLR = true; +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8627:5: note: trimmed 1 message(s) with length over 512 + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5609:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5609:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5607| AArch64::LDRQpre}; +# 5608| if (RBI.getRegBank(Dst, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5609|-> Opc = FPROpcodes[Log2_32(MemSize)]; +# 5610| else +# 5611| Opc = GPROpcodes[Log2_32(MemSize)]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5611:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5611:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5609| Opc = FPROpcodes[Log2_32(MemSize)]; +# 5610| else +# 5611|-> Opc = GPROpcodes[Log2_32(MemSize)]; +# 5612| } else { +# 5613| static constexpr unsigned GPROpcodes[] = { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5620:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5620:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5618| AArch64::LDRDpost, AArch64::LDRQpost}; +# 5619| if (RBI.getRegBank(Dst, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5620|-> Opc = FPROpcodes[Log2_32(MemSize)]; +# 5621| else +# 5622| Opc = GPROpcodes[Log2_32(MemSize)]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5622:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5622:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5620| Opc = FPROpcodes[Log2_32(MemSize)]; +# 5621| else +# 5622|-> Opc = GPROpcodes[Log2_32(MemSize)]; +# 5623| } +# 5624| auto Cst = getIConstantVRegVal(Offset, MRI); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5654:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5654:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5652| +# 5653| if (RBI.getRegBank(Val, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5654|-> Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5655| else +# 5656| Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5656:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5656:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5654| Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5655| else +# 5656|-> Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5657| } else { +# 5658| static constexpr unsigned GPROpcodes[] = { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5666:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5666:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5664| +# 5665| if (RBI.getRegBank(Val, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5666|-> Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5667| else +# 5668| Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5668:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5668:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5666| Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5667| else +# 5668|-> Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5669| } +# 5670| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:77:5: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:80:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:85:5: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 360 bytes. +# 83| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 84| "Invalid kind!"); +# 85|-> return Infos[Kind - FirstTargetFixupKind]; +# 86| } +# 87| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp:153:3: var_decl: Declaring variable "AI". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp:174:3: uninit_use: Using uninitialized value "AI". Field "AI.PreloadKernArgs.NumEntries" is uninitialized. +# 172| AI.WorkItemIDY = ArgDescriptor::createRegister(AMDGPU::VGPR31, Mask << 10); +# 173| AI.WorkItemIDZ = ArgDescriptor::createRegister(AMDGPU::VGPR31, Mask << 20); +# 174|-> return AI; +# 175| } +# 176| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3235:3: var_decl: Declaring variable "ModOpcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3252:7: uninit_use_in_call: Using uninitialized value "ModOpcode" when calling "selectWMMAModsNegAbs". +# 3250| // All elements have ModOpcode modifier +# 3251| if (BV->getNumOperands() * 2 == EltsF16.size()) +# 3252|-> selectWMMAModsNegAbs(ModOpcode, Mods, EltsF16, Src, CurDAG, SDLoc(In), +# 3253| 16); +# 3254| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3345:15: var_decl: Declaring variable "FloatVal". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3349:15: uninit_use_in_call: Using uninitialized value "FloatVal.U" when calling "isInlineConstant". +# 3347| : APFloatBase::BFloat(), +# 3348| RawValue.value()); +# 3349|-> if (TII->isInlineConstant(FloatVal)) { +# 3350| Src = CurDAG->getTargetConstant(RawValue.value(), SDLoc(In), +# 3351| MVT::i16); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp:5252:11: var_decl: Declaring variable "Zero". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp:5253:11: uninit_use_in_call: Using uninitialized value "Zero.U" when calling "~APFloat". +# 5251| if (V.isDenormal()) { +# 5252| APFloat Zero(V.getSemantics(), 0); +# 5253|-> return V.isNegative() ? -Zero : Zero; +# 5254| } +# 5255| return V; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:1781:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:1795:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1793| } +# 1794| +# 1795|-> return Result; +# 1796| } +# 1797| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:923:9: cond_at_most: Checking "Interval.first >= NUM_ALL_VGPRS" implies that "Interval.first" may be up to 520 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:931:16: assignment: Assigning: "RegNo" = "Interval.first". The value of "RegNo" may now be up to 520. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:931:69: incr: Incrementing "RegNo". The value of "RegNo" may now be up to 521. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:932:13: overrun-local: Overrunning array "this->VgprVmemTypes" of 521 bytes at byte offset 521 using index "RegNo" (which evaluates to 521). +# 930| VmemType V = getVmemType(Inst); +# 931| for (int RegNo = Interval.first; RegNo < Interval.second; ++RegNo) +# 932|-> VgprVmemTypes[RegNo] |= 1 << V; +# 933| } +# 934| } + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5876:3: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5876:3: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6063:7: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6074:5: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 6072| // check if the range contains a call. These require a save + restore of +# 6073| // the link register. +# 6074|-> if (std::any_of(FirstCand.begin(), std::prev(FirstCand.end()), +# 6075| [](const MachineInstr &MI) { return MI.isCall(); })) +# 6076| NumBytesToCreateFrame += Costs.SaveRestoreLROnStack; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1691:3: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1704:3: overrun-call: Overrunning callee's array of size 653 by passing argument "LC" (which evaluates to 653) in call to "ARMEmitLibcall". +# 1702| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SDIV!"); +# 1703| +# 1704|-> return ARMEmitLibcall(I, LC); +# 1705| } +# 1706| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1720:3: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1733:3: overrun-call: Overrunning callee's array of size 653 by passing argument "LC" (which evaluates to 653) in call to "ARMEmitLibcall". +# 1731| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SREM!"); +# 1732| +# 1733|-> return ARMEmitLibcall(I, LC); +# 1734| } +# 1735| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:198:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:201:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:206:3: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 984 bytes. +# 204| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 205| "Invalid kind!"); +# 206|-> return (Endian == llvm::endianness::little +# 207| ? InfosLE +# 208| : InfosBE)[Kind - FirstTargetFixupKind]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AVR/AVRISelLowering.cpp:2194:3: var_decl: Declaring variable "Opc" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/AVRISelLowering.cpp:2216:3: uninit_use_in_call: Using uninitialized value "Opc" when calling "insertMultibyteShift". +# 2214| +# 2215| // Do the shift. The registers are modified in-place. +# 2216|-> insertMultibyteShift(MI, BB, Registers, Opc, ShiftAmt); +# 2217| +# 2218| // Combine the 8-bit registers into 16-bit register pairs. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:485:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:488:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:489:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 487| +# 488| if (Kind < FirstTargetFixupKind) +# 489|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 490| +# 491| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:485:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:488:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:494:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 840 bytes. +# 492| "Invalid kind!"); +# 493| +# 494|-> return Infos[Kind - FirstTargetFixupKind]; +# 495| } +# 496| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/BPF/BPFTargetTransformInfo.h:74:5: var_decl: Declaring variable "Options". +llvm-project-19.0.0.src/llvm/lib/Target/BPF/BPFTargetTransformInfo.h:77:5: uninit_use: Using uninitialized value "Options". Field "Options.AllowedTailExpansions.InlineElts" is uninitialized. +# 75| Options.LoadSizes = {8, 4, 2, 1}; +# 76| Options.MaxNumLoads = TLI->getMaxExpandSizeMemcmp(OptSize); +# 77|-> return Options; +# 78| } +# 79| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp:63:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp:64:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 62| +# 63| if (Kind < FirstTargetFixupKind) +# 64|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 65| +# 66| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp:147:7: var_decl: Declaring variable "Nodes". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp:149:7: uninit_use: Using uninitialized value "Nodes". Field "Nodes.InlineElts" is uninitialized. +# 147| SmallVector Nodes; +# 148| nodesWith(Root, P, CheckAlign, Nodes); +# 149|-> return Nodes; +# 150| } +# 151| void dump() const; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: alloc_fn: Storage is returned from allocation function "getLoopTripCount". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: var_assign: Assigning: "TripCount" = storage returned from "this->getLoopTripCount(L, OldInsts)". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1211:3: noescape: Resource "TripCount" is not freed or pointed-to in "isReg". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1214:5: noescape: Resource "TripCount" is not freed or pointed-to in "getReg". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1217:7: leaked_storage: Variable "TripCount" going out of scope leaks the storage it points to. +# 1215| MachineBasicBlock *BBDef = TCDef->getParent(); +# 1216| if (!MDT->dominates(BBDef, Preheader)) +# 1217|-> return false; +# 1218| } +# 1219| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: alloc_fn: Storage is returned from allocation function "getLoopTripCount". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: var_assign: Assigning: "TripCount" = storage returned from "this->getLoopTripCount(L, OldInsts)". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1211:3: noescape: Resource "TripCount" is not freed or pointed-to in "isReg". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1229:7: leaked_storage: Variable "TripCount" going out of scope leaks the storage it points to. +# 1227| +# 1228| if (TII->analyzeBranch(*ExitingBlock, TB, FB, Cond, false)) +# 1229|-> return false; +# 1230| +# 1231| if (L->contains(TB)) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1890:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1912:3: uninit_use: Using uninitialized value "Result". Field "Result.Weight" is uninitialized. +# 1910| } +# 1911| +# 1912|-> return Result; +# 1913| } +# 1914| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1917:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1939:3: uninit_use: Using uninitialized value "Result". Field "Result.Weight" is uninitialized. +# 1937| } +# 1938| +# 1939|-> return Result; +# 1940| } +# 1941| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1058:3: var_decl: Declaring variable "SegList". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1060:5: uninit_use: Using uninitialized value "SegList". Field "SegList.InlineElts" is uninitialized. +# 1058| SmallVector SegList; +# 1059| if (SM.MaxSrc == -1) +# 1060|-> return SegList; +# 1061| +# 1062| unsigned Shift = Log2_32(SegLen); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1058:3: var_decl: Declaring variable "SegList". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1072:3: uninit_use: Using uninitialized value "SegList". Field "SegList.InlineElts" is uninitialized. +# 1070| for (unsigned B : Segs.set_bits()) +# 1071| SegList.push_back(B); +# 1072|-> return SegList; +# 1073| } +# 1074| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1340:8: assignment: Assigning: "X" = "*__begin1". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1344:7: assignment: Assigning: "Seg0" = "X". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1345:10: cond_const: Checking "Seg1 != 4294967295U" implies that "Seg1" is 4294967295 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1391:5: cond_at_most: Checking "Seg0 / 2U == Seg1 / 2U" implies that "Seg0" may be up to 4294967293 on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1393:7: overrun-local: Overrunning array "Inp" of 2 24-byte elements at element index 2147483646 (byte offset 51539607527) using index "Seg0 / 2U" (which evaluates to 2147483646). +# 1391| if (Seg0 / 2 == Seg1 / 2) { +# 1392| // Same input vector. +# 1393|-> Va = Inp[Seg0 / 2]; +# 1394| if (Seg0 > Seg1) { +# 1395| // Swap halves. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp:2899:3: var_decl: Declaring variable "TLOpc" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp:2916:3: uninit_use_in_call: Using uninitialized value "TLOpc" when calling "getNode". +# 2914| +# 2915| const SDLoc &dl(Op); +# 2916|-> return DAG.getNode(TLOpc, dl, ty(Op), Op.getOperand(0), +# 2917| DAG.getUNDEF(MVT::i128), // illegal type +# 2918| DAG.getConstant(Opc, dl, MVT::i32)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3361:3: var_decl: Declaring variable "Jumpers". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3365:5: uninit_use: Using uninitialized value "Jumpers". Field "Jumpers.InlineElts" is uninitialized. +# 3363| MachineBasicBlock::instr_iterator I = MBB.instr_end(); +# 3364| if (I == MBB.instr_begin()) +# 3365|-> return Jumpers; +# 3366| +# 3367| // A basic block may looks like this: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3361:3: var_decl: Declaring variable "Jumpers". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3382:7: uninit_use: Using uninitialized value "Jumpers". Field "Jumpers.InlineElts" is uninitialized. +# 3380| --I; +# 3381| if (I->isEHLabel()) +# 3382|-> return Jumpers; +# 3383| } while (I != MBB.instr_begin()); +# 3384| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3361:3: var_decl: Declaring variable "Jumpers". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3390:7: uninit_use: Using uninitialized value "Jumpers". Field "Jumpers.InlineElts" is uninitialized. +# 3388| while (I->isDebugInstr()) { +# 3389| if (I == MBB.instr_begin()) +# 3390|-> return Jumpers; +# 3391| --I; +# 3392| } + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:1140:5: extract: Calling "operator []" which extracts wrapped state from "ASpan.Blocks". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:1140:5: escape: The internal representation of "ASpan.Blocks" escapes into "ASpan.Blocks[Index].Seg.Val", but is destroyed when it exits scope. +# 1138| ASpan.Blocks.emplace_back(nullptr, ScLen, Index * ScLen); +# 1139| for (int Index = 0; Index != NumSectors; ++Index) { +# 1140|-> ASpan.Blocks[Index].Seg.Val = +# 1141| reinterpret_cast(&ASpan.Blocks[Index]); +# 1142| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:2121:3: var_decl: Declaring variable "WordP". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:2127:3: uninit_use: Using uninitialized value "WordP". Field "WordP.InlineElts" is uninitialized. +# 2125| } +# 2126| +# 2127|-> return WordP; +# 2128| } +# 2129| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp:196:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp:197:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 195| +# 196| if (Kind < FirstTargetFixupKind) +# 197|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 198| +# 199| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:697:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:1009:3: uninit_use: Using uninitialized value "Result". Field "Result.Operands.InlineElts" is uninitialized. +# 1007| break; // 1,2 SUBInst $Rd = zxth($Rs) +# 1008| } +# 1009|-> return Result; +# 1010| } +# 1011| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:1032:3: var_decl: Declaring variable "duplexToTry". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:1104:3: uninit_use: Using uninitialized value "duplexToTry". Field "duplexToTry.InlineElts" is uninitialized. +# 1102| } +# 1103| } +# 1104|-> return duplexToTry; +# 1105| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp:108:5: overrun-local: Overrunning array "sbss" of 4 16-byte elements at element index 63 (byte offset 1023) using index "llvm::Log2_64(AccessSize)" (which evaluates to 63). +# 106| +# 107| if (ELFSymbol->getBinding() == ELF::STB_LOCAL) { +# 108|-> StringRef SectionName = +# 109| ((AccessSize == 0) || (Size == 0) || (Size > GPSize)) +# 110| ? ".bss" + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp:576:3: alloc_fn: Storage is returned from allocation function "createHexagonMCSubtargetInfoImpl". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp:576:3: var_assign: Assigning: "X" = storage returned from "llvm::createHexagonMCSubtargetInfoImpl(TT, CPUName, CPUName, ArchFS)". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp:587:5: leaked_storage: Variable "X" going out of scope leaks the storage it points to. +# 585| errs() << "error: invalid CPU \"" << CPUName.str().c_str() +# 586| << "\" specified\n"; +# 587|-> return nullptr; +# 588| } +# 589| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:465:7: uninit_use: Using uninitialized value "Summary.pSlot3Cnt". +# 463| +# 464| if (HexagonMCInstrInfo::prefersSlot3(MCII, ID)) { +# 465|-> ++Summary.pSlot3Cnt; +# 466| Summary.PrefSlot3Inst = ISJ; +# 467| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:470:5: uninit_use: Using uninitialized value "Summary.ReservedSlotMask". +# 468| const unsigned ReservedSlots = +# 469| HexagonMCInstrInfo::getOtherReservedSlots(MCII, STI, ID); +# 470|-> Summary.ReservedSlotMask |= ReservedSlots; +# 471| if (ReservedSlots != 0) +# 472| AppliedRestrictions.push_back(std::make_pair(ID.getLoc(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:491:7: uninit_use: Using uninitialized value "Summary.NonZCVIloads". +# 489| case HexagonII::TypeCVI_GATHER_DV: +# 490| case HexagonII::TypeCVI_GATHER_RST: +# 491|-> ++Summary.NonZCVIloads; +# 492| [[fallthrough]]; +# 493| case HexagonII::TypeCVI_ZW: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:494:7: uninit_use: Using uninitialized value "Summary.AllCVIloads". +# 492| [[fallthrough]]; +# 493| case HexagonII::TypeCVI_ZW: +# 494|-> ++Summary.AllCVIloads; +# 495| [[fallthrough]]; +# 496| case HexagonII::TypeLD: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:497:7: uninit_use: Using uninitialized value "Summary.loads". +# 495| [[fallthrough]]; +# 496| case HexagonII::TypeLD: +# 497|-> ++Summary.loads; +# 498| ++Summary.memory; +# 499| if (ISJ->Core.getUnits() == slotSingleLoad || + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:498:7: uninit_use: Using uninitialized value "Summary.memory". +# 496| case HexagonII::TypeLD: +# 497| ++Summary.loads; +# 498|-> ++Summary.memory; +# 499| if (ISJ->Core.getUnits() == slotSingleLoad || +# 500| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_VP_LDU) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:501:9: uninit_use: Using uninitialized value "Summary.load0". +# 499| if (ISJ->Core.getUnits() == slotSingleLoad || +# 500| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_VP_LDU) +# 501|-> ++Summary.load0; +# 502| if (HexagonMCInstrInfo::getDesc(MCII, ID).isReturn()) +# 503| Summary.branchInsts.push_back(ISJ); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:513:7: uninit_use: Using uninitialized value "Summary.CVIstores". +# 511| case HexagonII::TypeCVI_SCATTER_NEW_RST: +# 512| case HexagonII::TypeCVI_SCATTER_NEW_ST: +# 513|-> ++Summary.CVIstores; +# 514| [[fallthrough]]; +# 515| case HexagonII::TypeST: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:516:7: uninit_use: Using uninitialized value "Summary.stores". +# 514| [[fallthrough]]; +# 515| case HexagonII::TypeST: +# 516|-> ++Summary.stores; +# 517| ++Summary.memory; +# 518| if (ISJ->Core.getUnits() == slotSingleStore || + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:517:7: uninit_use: Using uninitialized value "Summary.memory". +# 515| case HexagonII::TypeST: +# 516| ++Summary.stores; +# 517|-> ++Summary.memory; +# 518| if (ISJ->Core.getUnits() == slotSingleStore || +# 519| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_STU) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:520:9: uninit_use: Using uninitialized value "Summary.store0". +# 518| if (ISJ->Core.getUnits() == slotSingleStore || +# 519| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_STU) +# 520|-> ++Summary.store0; +# 521| break; +# 522| case HexagonII::TypeV4LDST: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:523:7: uninit_use: Using uninitialized value "Summary.loads". +# 521| break; +# 522| case HexagonII::TypeV4LDST: +# 523|-> ++Summary.loads; +# 524| ++Summary.stores; +# 525| ++Summary.store1; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:524:7: uninit_use: Using uninitialized value "Summary.stores". +# 522| case HexagonII::TypeV4LDST: +# 523| ++Summary.loads; +# 524|-> ++Summary.stores; +# 525| ++Summary.store1; +# 526| ++Summary.memops; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:525:7: uninit_use: Using uninitialized value "Summary.store1". +# 523| ++Summary.loads; +# 524| ++Summary.stores; +# 525|-> ++Summary.store1; +# 526| ++Summary.memops; +# 527| ++Summary.memory; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:526:7: uninit_use: Using uninitialized value "Summary.memops". +# 524| ++Summary.stores; +# 525| ++Summary.store1; +# 526|-> ++Summary.memops; +# 527| ++Summary.memory; +# 528| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:527:7: uninit_use: Using uninitialized value "Summary.memory". +# 525| ++Summary.store1; +# 526| ++Summary.memops; +# 527|-> ++Summary.memory; +# 528| break; +# 529| case HexagonII::TypeNCJ: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:530:7: uninit_use: Using uninitialized value "Summary.memory". +# 528| break; +# 529| case HexagonII::TypeNCJ: +# 530|-> ++Summary.memory; // NV insns are memory-like. +# 531| Summary.branchInsts.push_back(ISJ); +# 532| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:535:9: uninit_use: Using uninitialized value "Summary.loads". +# 533| case HexagonII::TypeV2LDST: +# 534| if (HexagonMCInstrInfo::getDesc(MCII, ID).mayLoad()) { +# 535|-> ++Summary.loads; +# 536| ++Summary.memory; +# 537| if (ISJ->Core.getUnits() == slotSingleLoad || + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:536:9: uninit_use: Using uninitialized value "Summary.memory". +# 534| if (HexagonMCInstrInfo::getDesc(MCII, ID).mayLoad()) { +# 535| ++Summary.loads; +# 536|-> ++Summary.memory; +# 537| if (ISJ->Core.getUnits() == slotSingleLoad || +# 538| HexagonMCInstrInfo::getType(MCII, ID) == + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:540:11: uninit_use: Using uninitialized value "Summary.load0". +# 538| HexagonMCInstrInfo::getType(MCII, ID) == +# 539| HexagonII::TypeCVI_VM_VP_LDU) +# 540|-> ++Summary.load0; +# 541| } else { +# 542| assert(HexagonMCInstrInfo::getDesc(MCII, ID).mayStore()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:543:9: uninit_use: Using uninitialized value "Summary.memory". +# 541| } else { +# 542| assert(HexagonMCInstrInfo::getDesc(MCII, ID).mayStore()); +# 543|-> ++Summary.memory; +# 544| ++Summary.stores; +# 545| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:544:9: uninit_use: Using uninitialized value "Summary.stores". +# 542| assert(HexagonMCInstrInfo::getDesc(MCII, ID).mayStore()); +# 543| ++Summary.memory; +# 544|-> ++Summary.stores; +# 545| } +# 546| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:554:7: uninit_use: Using uninitialized value "Summary.duplex". +# 552| break; +# 553| case HexagonII::TypeDUPLEX: { +# 554|-> ++Summary.duplex; +# 555| MCInst const &Inst0 = *ID.getOperand(0).getInst(); +# 556| MCInst const &Inst1 = *ID.getOperand(1).getInst(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:569:3: uninit_use: Using uninitialized value "Summary". Field "Summary.memory" is uninitialized. +# 567| } +# 568| } +# 569|-> return Summary; +# 570| } +# 571| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp:151:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp:152:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 150| +# 151| if (Kind < FirstTargetFixupKind) +# 152|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 153| +# 154| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:74:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:77:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:78:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 76| +# 77| if (Kind < FirstTargetFixupKind) +# 78|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 79| +# 80| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:74:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:77:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:82:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 264 bytes. +# 80| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 81| "Invalid kind!"); +# 82|-> return Infos[Kind - FirstTargetFixupKind]; +# 83| } +# 84| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:27:3: var_decl: Declaring variable "Insts". +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:31:5: uninit_use: Using uninitialized value "Insts". Field "Insts.InlineElts" is uninitialized. +# 29| if (Highest12 != 0 && SignExtend64<52>(Val) == 0) { +# 30| Insts.push_back(Inst(LoongArch::LU52I_D, SignExtend64<12>(Highest12))); +# 31|-> return Insts; +# 32| } +# 33| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:27:3: var_decl: Declaring variable "Insts". +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:50:3: uninit_use: Using uninitialized value "Insts". Field "Insts.InlineElts" is uninitialized. +# 48| Insts.push_back(Inst(LoongArch::LU52I_D, SignExtend64<12>(Highest12))); +# 49| +# 50|-> return Insts; +# 51| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp:87:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp:88:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 86| +# 87| if (Kind < FirstTargetFixupKind) +# 88|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 89| +# 90| return Infos[Kind - FirstTargetFixupKind]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:3414:5: var_decl: Declaring variable "RealVal". +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:3415:5: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "bitcastToAPInt". +# 3413| if ((Hi_32(ImmOp64) & 0x7ff00000) == 0) { +# 3414| APFloat RealVal(APFloat::IEEEdouble(), ImmOp64); +# 3415|-> ImmOp64 = RealVal.bitcastToAPInt().getZExtValue(); +# 3416| } +# 3417| return ImmOp64; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:128:5: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:131:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:136:5: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 264 bytes. +# 134| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 135| "Invalid kind!"); +# 136|-> return (Endian == llvm::endianness::little +# 137| ? InfosLE +# 138| : InfosBE)[Kind - FirstTargetFixupKind]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp:438:3: var_decl: Declaring variable "Options". +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp:441:3: uninit_use: Using uninitialized value "Options". Field "Options.AllowedTailExpansions.InlineElts" is uninitialized. +# 439| Options.LoadSizes = {8, 4, 2, 1}; +# 440| Options.MaxNumLoads = TLI->getMaxExpandSizeMemcmp(OptSize); +# 441|-> return Options; +# 442| } +# 443| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:615:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, this->getFPConst(), false))". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:615:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 613| if (Kind != KindTy::FPImmediate) +# 614| return false; +# 615|-> int Idx = RISCVLoadFPImm::getLoadFPImm( +# 616| APFloat(APFloat::IEEEdouble(), APInt(64, getFPConst()))); +# 617| // Don't allow decimal version of the minimum value. It is a different value + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1210:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, this->getFPConst(), false))". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1210:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1208| } +# 1209| +# 1210|-> int Imm = RISCVLoadFPImm::getLoadFPImm( +# 1211| APFloat(APFloat::IEEEdouble(), APInt(64, getFPConst()))); +# 1212| Inst.addOperand(MCOperand::createImm(Imm)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1944:3: var_decl: Declaring variable "RealVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1945:3: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "convertFromString". +# 1943| // Parse FP representation. +# 1944| APFloat RealVal(APFloat::IEEEdouble()); +# 1945|-> auto StatusOrErr = +# 1946| RealVal.convertFromString(Tok.getString(), APFloat::rmTowardZero); +# 1947| if (errorToBool(StatusOrErr.takeError())) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp:138:5: var_decl: Declaring variable "Instruments". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp:163:5: uninit_use: Using uninitialized value "Instruments". Field "Instruments.InlineElts" is uninitialized. +# 161| createInstrument(RISCVSEWInstrument::DESC_NAME, SEWStr)); +# 162| +# 163|-> return Instruments; +# 164| } +# 165| return SmallVector(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:101:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:104:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:105:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 103| +# 104| if (Kind < FirstTargetFixupKind) +# 105|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 106| +# 107| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:101:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:104:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:109:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 624 bytes. +# 107| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 108| "Invalid kind!"); +# 109|-> return Infos[Kind - FirstTargetFixupKind]; +# 110| } +# 111| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:380:3: var_decl: Declaring variable "NonLibcallCSI". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:388:3: uninit_use: Using uninitialized value "NonLibcallCSI". Field "NonLibcallCSI.InlineElts" is uninitialized. +# 386| } +# 387| +# 388|-> return NonLibcallCSI; +# 389| } +# 390| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:395:3: var_decl: Declaring variable "RVVCSI". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:403:3: uninit_use: Using uninitialized value "RVVCSI". Field "RVVCSI.InlineElts" is uninitialized. +# 401| } +# 402| +# 403|-> return RVVCSI; +# 404| } +# 405| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:840:3: var_decl: Declaring variable "Opcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:873:3: uninit_use_in_call: Using uninitialized value "Opcode" when calling "getMachineNode". +# 871| } +# 872| +# 873|-> ReplaceNode(Node, CurDAG->getMachineNode( +# 874| Opcode, DL, Node->getSimpleValueType(0), Operands)); +# 875| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3025:3: var_decl: Declaring variable "MaxVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3026:3: uninit_use_in_call: Using uninitialized value "MaxVal.U" when calling "convertFromAPInt". +# 3024| unsigned Precision = APFloat::semanticsPrecision(FltSem); +# 3025| APFloat MaxVal = APFloat(FltSem); +# 3026|-> MaxVal.convertFromAPInt(APInt::getOneBitSet(Precision, Precision - 1), +# 3027| /*IsSigned*/ false, APFloat::rmNearestTiesToEven); +# 3028| SDValue MaxValNode = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3135:3: var_decl: Declaring variable "MaxVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3136:3: uninit_use_in_call: Using uninitialized value "MaxVal.U" when calling "convertFromAPInt". +# 3134| unsigned Precision = APFloat::semanticsPrecision(FltSem); +# 3135| APFloat MaxVal = APFloat(FltSem); +# 3136|-> MaxVal.convertFromAPInt(APInt::getOneBitSet(Precision, Precision - 1), +# 3137| /*IsSigned*/ false, APFloat::rmNearestTiesToEven); +# 3138| SDValue MaxValNode = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3215:3: var_decl: Declaring variable "MaxVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3216:3: uninit_use_in_call: Using uninitialized value "MaxVal.U" when calling "convertFromAPInt". +# 3214| unsigned Precision = APFloat::semanticsPrecision(FltSem); +# 3215| APFloat MaxVal = APFloat(FltSem); +# 3216|-> MaxVal.convertFromAPInt(APInt::getOneBitSet(Precision, Precision - 1), +# 3217| /*IsSigned*/ false, APFloat::rmNearestTiesToEven); +# 3218| SDValue MaxValNode = DAG.getConstantFP(MaxVal, DL, VT); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:7606:9: address_of: Taking address with "&NewSel" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:7606:9: callee_ptr_arith: Passing "&NewSel" to function "ReplaceAllUsesWith" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 7604| if (SDValue NewSel = foldBinOpIntoSelectIfProfitable(*Op->use_begin(), +# 7605| DAG, Subtarget)) { +# 7606|-> DAG.ReplaceAllUsesWith(BinOp, &NewSel); +# 7607| return lowerSELECT(NewSel, DAG); +# 7608| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:14478:3: var_decl: Declaring variable "Strategies". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:14525:3: uninit_use: Using uninitialized value "Strategies". Field "Strategies.InlineElts" is uninitialized. +#14523| llvm_unreachable("Unexpected opcode"); +#14524| } +#14525|-> return Strategies; +#14526| } +#14527| } // End anonymous namespace. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:260:7: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:263:7: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:264:9: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 262| +# 263| if (Kind < FirstTargetFixupKind) +# 264|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 265| +# 266| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:260:7: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:263:7: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:269:9: illegal_address: "InfosLE[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1008 bytes. +# 267| "Invalid kind!"); +# 268| if (Endian == llvm::endianness::little) +# 269|-> return InfosLE[Kind - FirstTargetFixupKind]; +# 270| +# 271| return InfosBE[Kind - FirstTargetFixupKind]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:260:7: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:263:7: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:271:7: illegal_address: "InfosBE[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1008 bytes. +# 269| return InfosLE[Kind - FirstTargetFixupKind]; +# 270| +# 271|-> return InfosBE[Kind - FirstTargetFixupKind]; +# 272| } +# 273| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/SparcISelLowering.cpp:3226:3: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(Op)->getSuccessOrdering()" (which evaluates to 15) in call to "isStrongerThanMonotonic". +# 3224| +# 3225| static SDValue LowerATOMIC_LOAD_STORE(SDValue Op, SelectionDAG &DAG) { +# 3226|-> if (isStrongerThanMonotonic(cast(Op)->getSuccessOrdering())) { +# 3227| // Expand with a fence. +# 3228| return SDValue(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:686:5: cond_at_most: Checking "regIdx > 31U" implies that "regIdx" may be up to 31 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:686:5: overrun-local: Overrunning array "MISCRegs" of 31 2-byte elements at element index 31 (byte offset 63) using index "regIdx" (which evaluates to 31). +# 684| return false; +# 685| unsigned regIdx = ConstExpr->getValue(); +# 686|-> if (regIdx > 31 || MISCRegs[regIdx] == VE::NoRegister) +# 687| return false; +# 688| Op.Kind = k_Register; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:686:5: cond_at_most: Checking "regIdx > 31U" implies that "regIdx" may be up to 31 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:689:5: overrun-local: Overrunning array "MISCRegs" of 31 2-byte elements at element index 31 (byte offset 63) using index "regIdx" (which evaluates to 31). +# 687| return false; +# 688| Op.Kind = k_Register; +# 689|-> Op.Reg.RegNum = MISCRegs[regIdx]; +# 690| return true; +# 691| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp:126:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp:127:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 125| +# 126| if (Kind < FirstTargetFixupKind) +# 127|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 128| +# 129| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/GISel/X86RegisterBankInfo.cpp:450:5: var_decl: Declaring variable "AltMappings". +llvm-project-19.0.0.src/llvm/lib/Target/X86/GISel/X86RegisterBankInfo.cpp:452:5: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 450| InstructionMappings AltMappings; +# 451| AltMappings.push_back(&Mapping); +# 452|-> return AltMappings; +# 453| } +# 454| default: + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: assign: Assigning: "MemOpNo" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:652:5: overflow: The expression "MemOpNo + AddrDisp" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:652:5: overflow_sink: "MemOpNo + AddrDisp", which might be negative, is passed to "MI->getOperand(MemOpNo + AddrDisp)". +# 650| return false; +# 651| int MemOpNo = X86::getFirstAddrOperandIdx(MI); +# 652|-> const MachineOperand &DispOp = MI.getOperand(MemOpNo + X86::AddrDisp); +# 653| Register Base = MI.getOperand(MemOpNo + X86::AddrBaseReg).getReg(); +# 654| // If the displacement is a expr, conservatively estimate 4 bytes. + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: assign: Assigning: "MemOpNo" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:658:5: overflow: The expression "MemOpNo + AddrIndexReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:658:5: overflow_sink: "MemOpNo + AddrIndexReg", which might be negative, is passed to "MI->getOperand(MemOpNo + AddrIndexReg)". +# 656| return false; +# 657| // There can only be one of three: SIB, segment override register, ADSIZE +# 658|-> Register Index = MI.getOperand(MemOpNo + X86::AddrIndexReg).getReg(); +# 659| unsigned Count = !!MI.getOperand(MemOpNo + X86::AddrSegmentReg).getReg(); +# 660| if (X86II::needSIB(Base, Index, /*In64BitMode=*/true)) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: assign: Assigning: "MemOpNo" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:659:5: overflow: The expression "MemOpNo + AddrSegmentReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:659:5: overflow_sink: "MemOpNo + AddrSegmentReg", which might be negative, is passed to "MI->getOperand(MemOpNo + AddrSegmentReg)". +# 657| // There can only be one of three: SIB, segment override register, ADSIZE +# 658| Register Index = MI.getOperand(MemOpNo + X86::AddrIndexReg).getReg(); +# 659|-> unsigned Count = !!MI.getOperand(MemOpNo + X86::AddrSegmentReg).getReg(); +# 660| if (X86II::needSIB(Base, Index, /*In64BitMode=*/true)) +# 661| ++Count; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7211:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7211:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7209| if (VT.isFloatingPoint()) { +# 7210| if (ScalarSize == 16) +# 7211|-> return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 7212| if (ScalarSize == 32) +# 7213| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7213:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7213:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7211| return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 7212| if (ScalarSize == 32) +# 7213|-> return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 7214| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 7215| return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7215:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7215:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7213| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 7214| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 7215|-> return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); +# 7216| } +# 7217| return Constant::getIntegerValue(Type::getIntNTy(C, ScalarSize), Val); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:47529:7: var_decl: Declaring variable "ShiftAmt1" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:47540:9: uninit_use_in_call: Using uninitialized value "ShiftAmt1" when calling "Log2_64". +#47538| +#47539| if (Opc) { +#47540|-> SDValue Shift1 = +#47541| DAG.getNode(ISD::SHL, DL, VT, N->getOperand(0), +#47542| DAG.getConstant(Log2_64(ShiftAmt1), DL, ShiftVT)); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5680:9: return_constant: Function call "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5680:9: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5678| return true; +# 5679| UseMI.setDesc(get(X86::MOV32r0)); +# 5680|-> UseMI.removeOperand( +# 5681| UseMI.findRegisterUseOperandIdx(Reg, /*TRI=*/nullptr)); +# 5682| UseMI.addOperand(MachineOperand::CreateReg(X86::EFLAGS, /*isDef=*/true, + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5714:5: return_constant: Function call "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5714:5: assignment: Assigning: "RegIdx" = "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)". The value of "RegIdx" is now 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5724:5: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "RegIdx" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5722| return true; +# 5723| UseMI.setDesc(get(NewOpc)); +# 5724|-> UseMI.removeOperand(RegIdx); +# 5725| UseMI.addOperand(MachineOperand::CreateImm(ImmVal)); +# 5726| // Reg is physical register $cl, so we don't know if DefMI is dead through + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5743:7: return_constant: Function call "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5743:7: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5741| // %100 = COPY %101 +# 5742| UseMI.setDesc(get(TargetOpcode::COPY)); +# 5743|-> UseMI.removeOperand( +# 5744| UseMI.findRegisterUseOperandIdx(Reg, /*TRI=*/nullptr)); +# 5745| UseMI.removeOperand( + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5745:7: return_constant: Function call "UseMI->findRegisterDefOperandIdx(llvm::Register(EFLAGS), NULL, false, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5745:7: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "UseMI->findRegisterDefOperandIdx(llvm::Register(EFLAGS), NULL, false, false)" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5743| UseMI.removeOperand( +# 5744| UseMI.findRegisterUseOperandIdx(Reg, /*TRI=*/nullptr)); +# 5745|-> UseMI.removeOperand( +# 5746| UseMI.findRegisterDefOperandIdx(X86::EFLAGS, /*TRI=*/nullptr)); +# 5747| UseMI.untieRegOperand(0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3934:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3946:3: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 3944| AC.UseLiveness = false; +# 3945| +# 3946|-> Attributor A(Functions, InfoCache, AC); +# 3947| +# 3948| for (Function *F : Functions) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3934:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3946:3: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 3944| AC.UseLiveness = false; +# 3945| +# 3946|-> Attributor A(Functions, InfoCache, AC); +# 3947| +# 3948| for (Function *F : Functions) { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:62:5: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(AttributeText)". The value of "Kind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:63:5: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 92 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:63:5: overrun-call: Overrunning callee's array of size 89 by passing argument "Kind" (which evaluates to 92) in call to "canUseAsFnAttr". +# 61| } +# 62| auto Kind = Attribute::getAttrKindFromName(AttributeText); +# 63|-> if (Kind == Attribute::None || !Attribute::canUseAsFnAttr(Kind)) { +# 64| LLVM_DEBUG(dbgs() << "ForcedAttribute: " << AttributeText +# 65| << " unknown or not a function attribute!\n"); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:112:11: assignment: Assigning: "AttrKind" = "llvm::Attribute::getAttrKindFromName(SplitPair.second)". The value of "AttrKind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:113:11: cond_between: Checking "AttrKind != None" implies that "AttrKind" is between 1 and 92 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:113:11: overrun-call: Overrunning callee's array of size 89 by passing argument "AttrKind" (which evaluates to 92) in call to "canUseAsFnAttr". +# 111| } else { +# 112| auto AttrKind = Attribute::getAttrKindFromName(SplitPair.second); +# 113|-> if (AttrKind != Attribute::None && +# 114| Attribute::canUseAsFnAttr(AttrKind)) { +# 115| // TODO: There could be string attributes without a value, we should + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:2711:7: address_of: Taking address with "&EI" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:2711:7: callee_ptr_arith: Passing "&EI" to function "moveEdgeToExistingCalleeClone" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2709| // The edge iterator is adjusted when we move the CallerEdge to the clone. +# 2710| if (Clone) +# 2711|-> moveEdgeToExistingCalleeClone(CallerEdge, Clone, &EI, /*NewClone=*/false, +# 2712| CallerEdgeContextsForAlloc); +# 2713| else + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:3164:17: address_of: Taking address with "&EI" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:3164:17: callee_ptr_arith: Passing "&EI" to function "moveEdgeToExistingCalleeClone" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3162| ContextNode *NewClone = +# 3163| FuncCloneToNewCallsiteCloneMap[FuncCloneCalledByCaller]; +# 3164|-> moveEdgeToExistingCalleeClone(Edge, NewClone, &EI); +# 3165| // Cleanup any none type edges cloned over. +# 3166| removeNoneTypeCalleeEdges(NewClone); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:260:3: var_decl: Declaring variable "T". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:261:3: uninit_use_in_call: Using uninitialized value "T.U" when calling "changeSign". +# 259| +# 260| APFloat T(Sem, 0 - Val); +# 261|-> T.changeSign(); +# 262| +# 263| return T; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:3291:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(FPType->getFltSemantics(), C)". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:3291:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3289| Attribute::NoImplicitFloat) && +# 3290| Cmp.isEquality() && FPType->isIEEELikeFPTy()) { +# 3291|-> FPClassTest Mask = APFloat(FPType->getFltSemantics(), *C).classify(); +# 3292| if (Mask & (fcInf | fcZero)) { +# 3293| if (Pred == ICmpInst::ICMP_NE) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4012:7: var_decl: Declaring variable "NewOps". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4018:7: uninit_use: Using uninitialized value "NewOps". Field "NewOps.InlineElts" is uninitialized. +# 4016| else +# 4017| NewOps.push_back(Op); +# 4018|-> return NewOps; +# 4019| }; +# 4020| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4102:7: var_decl: Declaring variable "NewOps". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4108:7: uninit_use: Using uninitialized value "NewOps". Field "NewOps.InlineElts" is uninitialized. +# 4106| else +# 4107| NewOps.push_back(Op); +# 4108|-> return NewOps; +# 4109| }; +# 4110| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/InlineFunction.cpp:1442:3: var_decl: Declaring variable "Valid". +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/InlineFunction.cpp:1447:3: uninit_use: Using uninitialized value "Valid". Field "Valid.Attrs.InlineElts" is uninitialized. +# 1445| if (CB.hasRetAttr(Attribute::Alignment)) +# 1446| Valid.addAlignmentAttr(CB.getRetAlign()); +# 1447|-> return Valid; +# 1448| } +# 1449| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:9033:3: var_decl: Declaring variable "ArgTys". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:9048:3: uninit_use: Using uninitialized value "ArgTys". Field "ArgTys.InlineElts" is uninitialized. +# 9046| ArgTys.push_back(FixedVectorType::get(Arg->getType(), VF)); +# 9047| } +# 9048|-> return ArgTys; +# 9049| } +# 9050| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15155:5: var_decl: Declaring variable "CallChecker". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15211:5: uninit_use_in_call: Using uninitialized value "CallChecker.callable" when calling "operator ()". +#15209| (void)AttemptCheckBitwidth(Checker, NeedToExit); +#15210| BitWidth = BestBitWidth; +#15211|-> return TryProcessInstruction(BitWidth, Operands, CallChecker); +#15212| } +#15213| +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15211:5: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15832:9: var_decl: Declaring variable "AnyProfitableGraph" without initializer. +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15959:9: uninit_use: Using uninitialized value "AnyProfitableGraph". +#15957| break; +#15958| // Check if tried all attempts or no need for the last attempts at all. +#15959|-> if (Repeat >= MaxAttempts || +#15960| (Repeat > 1 && (RepeatChanged || !AnyProfitableGraph))) +#15961| break; +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15959:9: note: trimmed 5 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:1235:3: var_decl: Declaring variable "HeaderMasks". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:1250:3: uninit_use: Using uninitialized value "HeaderMasks". Field "HeaderMasks.InlineElts" is uninitialized. +# 1248| } +# 1249| } +# 1250|-> return HeaderMasks; +# 1251| } +# 1252| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VectorCombine.cpp:1702:9: var_decl: Declaring variable "NItem". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VectorCombine.cpp:1710:9: uninit_use: Using uninitialized value "NItem". Field "NItem.InlineElts" is uninitialized. +# 1708| cast(V.first)->getOperand(Op), V.second)); +# 1709| } +# 1710|-> return NItem; +# 1711| }; +# 1712| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: alloc_fn: Storage is returned from allocation function "strdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: var_assign: Assigning: "NewDefinedDefaultHref" = storage returned from "strdup(reinterpret_cast(Def->href))". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: overwrite_var: Overwriting "NewDefinedDefaultHref" in "NewDefinedDefaultHref = reinterpret_cast(strdup(reinterpret_cast(Def->href)))" leaks the storage that "NewDefinedDefaultHref" points to. +# 346| if (!Def->prefix) { +# 347| if (namespaceOverrides(Def->href, OriginalNsDef->href)) { +# 348|-> NewDefinedDefaultHref = TO_XML_CHAR(strdup(FROM_XML_CHAR(Def->href))); +# 349| } +# 350| } else if (!xmlStringsEqual(OriginalNsDef->href, Def->href)) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: alloc_fn: Storage is returned from allocation function "strdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: var_assign: Assigning: "NewDefinedDefaultHref" = storage returned from "strdup(reinterpret_cast(Def->href))". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:351:9: leaked_storage: Variable "NewDefinedDefaultHref" going out of scope leaks the storage it points to. +# 349| } +# 350| } else if (!xmlStringsEqual(OriginalNsDef->href, Def->href)) { +# 351|-> return make_error( +# 352| Twine("conflicting namespace definitions for ") + +# 353| FROM_XML_CHAR(Def->prefix)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:337:5: alloc_fn: Storage is returned from allocation function "xmlStrdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:337:5: var_assign: Assigning: "OriginalDefinedDefaultHref" = storage returned from "xmlStrdup(OriginalDefinedDefaultNs->href)". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:351:9: leaked_storage: Variable "OriginalDefinedDefaultHref" going out of scope leaks the storage it points to. +# 349| } +# 350| } else if (!xmlStringsEqual(OriginalNsDef->href, Def->href)) { +# 351|-> return make_error( +# 352| Twine("conflicting namespace definitions for ") + +# 353| FROM_XML_CHAR(Def->prefix)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: alloc_fn: Storage is returned from allocation function "strdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: var_assign: Assigning: "NewDefinedDefaultHref" = storage returned from "strdup(reinterpret_cast(Def->href))". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:385:11: leaked_storage: Variable "NewDefinedDefaultHref" going out of scope leaks the storage it points to. +# 383| searchOrDefine(OriginalDefinedDefaultHref, DominantNode); +# 384| if (!EC) { +# 385|-> return EC.takeError(); +# 386| } +# 387| xmlNsPtr PrefixDominantDefinedDefault = std::move(EC.get()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48129:3: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48130:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isReleaseOrStronger". +#48128| +#48129| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#48130|-> return !isReleaseOrStronger(Ordering); +#48131| +#48132| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48199:3: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48200:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isReleaseOrStronger". +#48198| +#48199| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#48200|-> return isReleaseOrStronger(Ordering); +#48201| +#48202| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:579:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(floatSema, value)". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:579:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 577| const llvm::fltSemantics &floatSema = llvm::APFloatBase::EnumToSemantics( +# 578| static_cast(semantics)); +# 579|-> return APValue(llvm::APFloat(floatSema, value)); +# 580| +# 581| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:604:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(sema, imag)". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:604:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 602| const llvm::fltSemantics &sema = llvm::APFloatBase::EnumToSemantics( +# 603| static_cast(semantics)); +# 604|-> return APValue(llvm::APFloat(sema, real), +# 605| llvm::APFloat(sema, imag)); +# 606| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:629:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:633:7: uninit_use_in_call: Using uninitialized value "result.Data" when calling "getArrayInitializedElt". +# 631| result.MakeArray(initLength, totalLength); +# 632| for (unsigned i = 0; i < initLength; ++i) +# 633|-> result.getArrayInitializedElt(i) = elements[i]; +# 634| if (hasFiller) +# 635| result.getArrayFiller() = elements.back(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:646:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:649:7: uninit_use_in_call: Using uninitialized value "result.Data" when calling "getStructBase". +# 647| result.MakeStruct(bases.size(), fields.size()); +# 648| for (unsigned i = 0; i < bases.size(); ++i) +# 649|-> result.getStructBase(i) = bases[i]; +# 650| for (unsigned i = 0; i < fields.size(); ++i) +# 651| result.getStructField(i) = fields[i]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:678:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:684:5: uninit_use: Using uninitialized value "result". Field "result.Data" is uninitialized. +# 682| for (unsigned i = 0; i < pathSize; ++i) +# 683| pathArray[i] = memberPath[i]->getCanonicalDecl(); +# 684|-> return result; +# 685| +# 686| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/gold/gold-plugin.cpp:128:34: destructor_uses_global_object: The destructor of global object "ResInfo" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "ResInfo" might be called after "fuzzer::TPC" has already been destroyed. +# 126| static std::list Modules; +# 127| static DenseMap FDToLeaderHandle; +# 128|-> static StringMap ResInfo; +# 129| static std::vector Cleanup; +# 130| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:351:5: move: "CoverageInfo" is moved (indicated by "std::move(CoverageInfo)"). +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:351:5: use_after_move: "CoverageInfo" is used after it has been already moved. +# 349| ViewBranches.push_back(*NextBranch++); +# 350| +# 351|-> View.addBranch(CurrentLine, std::move(ViewBranches), +# 352| SourceCoverageView::create(SourceName, File, ViewOpts, +# 353| std::move(CoverageInfo))); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:377:5: move: "CoverageInfo" is moved (indicated by "std::move(CoverageInfo)"). +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:377:5: use_after_move: "CoverageInfo" is used after it has been already moved. +# 375| ViewMCDCRecords.push_back(*NextRecord++); +# 376| +# 377|-> View.addMCDCRecord(CurrentLine, std::move(ViewMCDCRecords), +# 378| SourceCoverageView::create(SourceName, File, ViewOpts, +# 379| std::move(CoverageInfo))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp:439:5: var_decl: Declaring variable "rlim" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp:442:5: uninit_use_in_call: Using uninitialized value "rlim". Field "rlim.rlim_max" is uninitialized when calling "setrlimit". +# 440| +# 441| rlim.rlim_cur = 0; +# 442|-> setrlimit(RLIMIT_CORE, &rlim); +# 443| } +# 444| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/llvm-exegesis.cpp:427:13: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/llvm-exegesis.cpp:429:11: use_after_move: "Err" is used after it has been already moved. +# 427| ExitOnErr(std::move(Err)); +# 428| +# 429|-> BenchmarkResult.Error = toString(std::move(Err)); +# 430| } +# 431| AllResults.push_back(std::move(BenchmarkResult)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-nm/llvm-nm.cpp:665:3: var_decl: Declaring variable "Line" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-nm/llvm-nm.cpp:724:3: uninit_use_in_call: Using uninitialized value "Line" when calling "operator <<". +# 722| } +# 723| } +# 724|-> outs() << '\t' << FileName << ':' << Line; +# 725| } +# 726| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp:283:37: destructor_uses_global_object: The destructor of global object "TargetMap" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "TargetMap" might be called after "fuzzer::TPC" has already been destroyed. +# 281| +# 282| // FIXME: consolidate with the bfd parsing used by lld. +# 283|-> static const StringMap TargetMap{ +# 284| // Name, {EMachine, 64bit, LittleEndian} +# 285| // x86 + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-profgen/PerfReader.cpp:1227:52: destructor_uses_global_object: The destructor of global object "llvm::sampleprof::PerfScriptReader::TempFileCleanups" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::sampleprof::PerfScriptReader::TempFileCleanups" might be called after "fuzzer::TPC" has already been destroyed. +# 1225| } +# 1226| +# 1227|-> SmallVector PerfScriptReader::TempFileCleanups; +# 1228| +# 1229| } // end namespace sampleprof + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/ResourceScriptStmt.cpp:149:44: destructor_uses_global_object: The destructor of global object "llvm::rc::Control::SupportedCtls" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::rc::Control::SupportedCtls" might be called after "fuzzer::TPC" has already been destroyed. +# 147| } +# 148| +# 149|-> const StringMap Control::SupportedCtls = { +# 150| {"LTEXT", CtlInfo{0x50020000, ClsStatic, true}}, +# 151| {"CTEXT", CtlInfo{0x50020001, ClsStatic, true}}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/ResourceScriptStmt.cpp:220:57: destructor_uses_global_object: The destructor of global object "llvm::rc::VersionInfoResource::VersionInfoFixed::FixedFieldsInfoMap" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::rc::VersionInfoResource::VersionInfoFixed::FixedFieldsInfoMap" might be called after "fuzzer::TPC" has already been destroyed. +# 218| "FILEFLAGS", "FILEOS", "FILETYPE", "FILESUBTYPE"}; +# 219| +# 220|-> const StringMap VersionInfoFixed::FixedFieldsInfoMap = { +# 221| {FixedFieldsNames[FtFileVersion], FtFileVersion}, +# 222| {FixedFieldsNames[FtProductVersion], FtProductVersion}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/llvm-rc.cpp:109:20: destructor_uses_global_object: The destructor of global object "::TempPreprocFile" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::TempPreprocFile" might be called after "fuzzer::TPC" has already been destroyed. +# 107| +# 108| static ExitOnError ExitOnErr; +# 109|-> static FileRemover TempPreprocFile; +# 110| static FileRemover TempResFile; +# 111| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/llvm-rc.cpp:110:20: destructor_uses_global_object: The destructor of global object "::TempResFile" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::TempResFile" might be called after "fuzzer::TPC" has already been destroyed. +# 108| static ExitOnError ExitOnErr; +# 109| static FileRemover TempPreprocFile; +# 110|-> static FileRemover TempResFile; +# 111| +# 112| [[noreturn]] static void fatalError(const Twine &Message) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-readtapi/DiffEngine.cpp:287:3: var_decl: Declaring variable "Diff". +llvm-project-19.0.0.src/llvm/tools/llvm-readtapi/DiffEngine.cpp:293:3: uninit_use: Using uninitialized value "Diff". Field "Diff.Kind" is uninitialized. +# 291| Diff.Values.push_back(std::make_unique(RHS)); +# 292| } +# 293|-> return Diff; +# 294| } +# 295| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/dxcontainer2yaml.cpp:20:3: var_decl: Declaring variable "YAML". +llvm-project-19.0.0.src/llvm/tools/obj2yaml/dxcontainer2yaml.cpp:26:3: uninit_use: Using uninitialized value "YAML". Field "YAML.Parameters.InlineElts" is uninitialized. +# 24| Param.SystemValue, Param.CompType, Param.Register, Param.Mask, +# 25| Param.ExclusiveMask, Param.MinPrecision}); +# 26|-> return YAML; +# 27| } +# 28| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:583:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:584:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "minnum". +# 582| APFloat zp(0.0); +# 583| APFloat zn(-0.0); +# 584|-> EXPECT_EQ(-0.0, minnum(zp, zn).convertToDouble()); +# 585| EXPECT_EQ(-0.0, minnum(zn, zp).convertToDouble()); +# 586| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:582:3: var_decl: Declaring variable "zp". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:584:3: uninit_use_in_call: Using uninitialized value "zp.U" when calling "minnum". +# 582| APFloat zp(0.0); +# 583| APFloat zn(-0.0); +# 584|-> EXPECT_EQ(-0.0, minnum(zp, zn).convertToDouble()); +# 585| EXPECT_EQ(-0.0, minnum(zn, zp).convertToDouble()); +# 586| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:599:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:600:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "maxnum". +# 598| APFloat zp(0.0); +# 599| APFloat zn(-0.0); +# 600|-> EXPECT_EQ(0.0, maxnum(zp, zn).convertToDouble()); +# 601| EXPECT_EQ(0.0, maxnum(zn, zp).convertToDouble()); +# 602| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:598:3: var_decl: Declaring variable "zp". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:600:3: uninit_use_in_call: Using uninitialized value "zp.U" when calling "maxnum". +# 598| APFloat zp(0.0); +# 599| APFloat zn(-0.0); +# 600|-> EXPECT_EQ(0.0, maxnum(zp, zn).convertToDouble()); +# 601| EXPECT_EQ(0.0, maxnum(zn, zp).convertToDouble()); +# 602| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:136:3: move: "two" is moved (indicated by "std::move(two)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:142:3: use_after_move: "two" is used after it has been already moved. +# 140| +# 141| std::unique_ptr p(new int(3)); +# 142|-> auto try3 = mv.try_emplace(std::move(two), 3, std::move(p)); +# 143| EXPECT_FALSE(try3.second); +# 144| EXPECT_EQ(2, try3.first->second.a.v); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:175:3: move: "two" is moved (indicated by "std::move(two)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:180:3: use_after_move: "two" is used after it has been already moved. +# 178| EXPECT_EQ(1, try2.first->second.move); +# 179| +# 180|-> auto try3 = mv.insert_or_assign(std::move(two), 3); +# 181| EXPECT_FALSE(try3.second); +# 182| EXPECT_EQ(3, try3.first->second.v); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/MLRegAllocDevelopmentFeatures.cpp:50:5: var_decl: Declaring variable "PositionsToReturn". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/MLRegAllocDevelopmentFeatures.cpp:80:5: uninit_use: Using uninitialized value "PositionsToReturn". Field "PositionsToReturn.InlineElts" is uninitialized. +# 78| CurrentIndex += SlotIndex::InstrDist; +# 79| } +# 80|-> return PositionsToReturn; +# 81| } +# 82| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/LogicalView/DWARFReaderTest.cpp:323:3: extract: Calling "get" which extracts wrapped state from local "Reference". +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/LogicalView/DWARFReaderTest.cpp:323:3: escape: The internal representation of local "Reference" escapes, but is destroyed when it exits scope. +# 321| std::unique_ptr Target = +# 322| createReader(ReaderHandler, InputsDir, DwarfGcc); +# 323|-> checkElementComparison(Reference.get(), Target.get()); +# 324| } +# 325| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:540:3: alloc_fn: Storage is returned from allocation function "LLVMOrcLLJITEnableDebugSupport". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:540:3: var_assign: Assigning: "E" = storage returned from "LLVMOrcLLJITEnableDebugSupport(this->Jit)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:544:5: leaked_storage: Variable "E" going out of scope leaks the storage it points to. +# 542| << "Error testing LLJIT debug support " +# 543| << "(triple = " << TargetTriple << "): " << toString(E); +# 544|-> GTEST_SKIP() << "LLJIT C bindings provide debug support only for JITLink"; +# 545| } +# 546| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537:3: alloc_fn: Storage is returned from allocation function "createTestObject". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537:3: var_assign: Assigning: "ObjBuffer" = storage returned from "OrcCAPITestBase::createTestObject(::SumDebugExample, llvm::StringRef("sum.ll"))". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:544:5: leaked_storage: Variable "ObjBuffer" going out of scope leaks the storage it points to. +# 542| << "Error testing LLJIT debug support " +# 543| << "(triple = " << TargetTriple << "): " << toString(E); +# 544|-> GTEST_SKIP() << "LLJIT C bindings provide debug support only for JITLink"; +# 545| } +# 546| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:699:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyEmitted". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:699:3: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyEmitted(MR, &DependenceSet, 1UL)" leaks it. +# 697| /* .NumDependencies = */ 1}; +# 698| +# 699|-> LLVMOrcMaterializationResponsibilityNotifyEmitted(MR, &DependenceSet, 1); +# 700| LLVMOrcDisposeMaterializationResponsibility(MR); +# 701| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:573:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:573:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 571| +# 572| TEST_F(PatternMatchTest, BitCast) { +# 573|-> Value *OneDouble = ConstantFP::get(IRB.getDoubleTy(), APFloat(1.0)); +# 574| Value *ScalableDouble = ConstantFP::get( +# 575| VectorType::get(IRB.getDoubleTy(), 2, /*Scalable=*/true), APFloat(1.0)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:574:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:574:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 572| TEST_F(PatternMatchTest, BitCast) { +# 573| Value *OneDouble = ConstantFP::get(IRB.getDoubleTy(), APFloat(1.0)); +# 574|-> Value *ScalableDouble = ConstantFP::get( +# 575| VectorType::get(IRB.getDoubleTy(), 2, /*Scalable=*/true), APFloat(1.0)); +# 576| // scalar -> scalar + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/unittests/IR/VFABIDemanglerTest.cpp:24:20: destructor_uses_global_object: The destructor of global object "::Ctx" itself makes use of global object "UseConstantFPForFixedLengthSplat" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::Ctx" might be called after "UseConstantFPForFixedLengthSplat" has already been destroyed. +# 22| namespace { +# 23| +# 24|-> static LLVMContext Ctx; +# 25| +# 26| /// Perform tests against VFABI Rules. `invokeParser` creates a VFInfo object + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/unittests/IR/VFABIDemanglerTest.cpp:24:20: destructor_uses_global_object: The destructor of global object "::Ctx" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::Ctx" might be called after "fuzzer::TPC" has already been destroyed. +# 22| namespace { +# 23| +# 24|-> static LLVMContext Ctx; +# 25| +# 26| /// Perform tests against VFABI Rules. `invokeParser` creates a VFInfo object + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ProfileData/CoverageMappingTest.cpp:29:3: var_decl: Declaring variable "Found" without initializer. +llvm-project-19.0.0.src/llvm/unittests/ProfileData/CoverageMappingTest.cpp:37:3: uninit_use: Using uninitialized value "Found". +# 35| FoundMsg = CME.message(); +# 36| }); +# 37|-> if (Expected_Err == Found && Msg == Expected_Msg) +# 38| return ::testing::AssertionSuccess(); +# 39| return ::testing::AssertionFailure() << "error: " << FoundMsg << "\n"; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:411:3: var_decl: Declaring variable "MR". +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:419:3: uninit_use: Using uninitialized value "MR". Field "MR.AllocSites.InlineElts" is uninitialized. +# 417| for (const auto &CSId : CallSiteFrames) +# 418| MR.CallSiteIds.push_back(CSId); +# 419|-> return MR; +# 420| } +# 421| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1458:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: identity_transfer: Passing "FD" as argument 1 to function "convertFDToNativeFile", which returns that argument. +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "FD" is not freed or pointed-to in "convertFDToNativeFile". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "llvm::sys::fs::convertFDToNativeFile(FD)" is not freed or pointed-to in "mapped_file_region". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1462:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1460| fs::mapped_file_region mfr(fs::convertFDToNativeFile(FD), +# 1461| fs::mapped_file_region::readonly, Size, 0, EC); +# 1462|-> ASSERT_NO_ERROR(EC); +# 1463| +# 1464| // Verify content + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1458:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: identity_transfer: Passing "FD" as argument 1 to function "convertFDToNativeFile", which returns that argument. +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "FD" is not freed or pointed-to in "convertFDToNativeFile". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "llvm::sys::fs::convertFDToNativeFile(FD)" is not freed or pointed-to in "mapped_file_region". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1468:5: identity_transfer: Passing "FD" as argument 1 to function "convertFDToNativeFile", which returns that argument. +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1468:5: noescape: Resource "FD" is not freed or pointed-to in "convertFDToNativeFile". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1468:5: noescape: Resource "llvm::sys::fs::convertFDToNativeFile(FD)" is not freed or pointed-to in "mapped_file_region". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1470:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1468| fs::mapped_file_region m(fs::convertFDToNativeFile(FD), +# 1469| fs::mapped_file_region::readonly, Size, 0, EC); +# 1470|-> ASSERT_NO_ERROR(EC); +# 1471| ASSERT_EQ(close(FD), 0); +# 1472| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:463:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:478:3: noescape: Resource "fd" is not freed or pointed-to in "read". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:478:3: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 476| #else +# 477| char buf[10]; +# 478|-> ASSERT_EQ(::read(fd, buf, 10), 10); +# 479| ASSERT_EQ(strncmp(buf, utf8_text, 10), 0); +# 480| #endif + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:463:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:478:3: noescape: Resource "fd" is not freed or pointed-to in "read". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:479:3: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 477| char buf[10]; +# 478| ASSERT_EQ(::read(fd, buf, 10), 10); +# 479|-> ASSERT_EQ(strncmp(buf, utf8_text, 10), 0); +# 480| #endif +# 481| ::close(fd); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:405:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:406:5: noescape: Resource "FD" is not freed or pointed-to in "lseek". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:407:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 405| ASSERT_NO_ERROR(fs::openFileForRead(OutputPath, FD)); +# 406| Size = ::lseek(FD, 0, SEEK_END); +# 407|-> ASSERT_NE(-1, Size); +# 408| ::lseek(FD, 0, SEEK_SET); +# 409| Buffer = std::make_unique(Size); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:405:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:406:5: noescape: Resource "FD" is not freed or pointed-to in "lseek". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:408:5: noescape: Resource "FD" is not freed or pointed-to in "lseek". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:410:5: noescape: Resource "FD" is not freed or pointed-to in "read". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:410:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 408| ::lseek(FD, 0, SEEK_SET); +# 409| Buffer = std::make_unique(Size); +# 410|-> ASSERT_EQ(::read(FD, Buffer.get(), Size), Size); +# 411| ::close(FD); +# 412| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/CodeGenRegisters.cpp:502:7: var_decl: Declaring variable "Parts". +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/CodeGenRegisters.cpp:526:7: uninit_use_in_call: Using uninitialized value "Parts". Field "Parts.InlineElts" is uninitialized when calling "getConcatSubRegIndex". +# 524| // Each part of Cand is a sub-register of this. Make the full Cand also +# 525| // a sub-register with a concatenated sub-register index. +# 526|-> CodeGenSubRegIndex *Concat = +# 527| RegBank.getConcatSubRegIndex(Parts, RegBank.getHwModes()); +# 528| std::pair NewSubReg = + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/DAGISelMatcher.cpp:44:3: alloc_fn: Storage is returned from allocation function "takeNext". +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/DAGISelMatcher.cpp:44:3: leaked_storage: Ignoring storage allocated by "Cur->takeNext()" leaks it. +# 42| if (!Cur) +# 43| return nullptr; +# 44|-> Cur->takeNext(); +# 45| Cur->setNext(Other->takeNext()); +# 46| return this; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/GlobalISel/MatchDataInfo.cpp:19:37: destructor_uses_global_object: The destructor of global object "llvm::gi::AllMatchDataVars[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::gi::AllMatchDataVars[abi:cxx11]" might be called after "fuzzer::TPC" has already been destroyed. +# 17| namespace gi { +# 18| +# 19|-> StringMap> AllMatchDataVars; +# 20| +# 21| StringRef MatchDataInfo::getVariableName() const { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:512:5: var_decl: Declaring variable "SymbolType" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:532:5: uninit_use: Using uninitialized value "SymbolType". +# 530| +# 531| // Make sure it is a kernel symbol. +# 532|-> if (SymbolType != HSA_SYMBOL_KIND_KERNEL) +# 533| return Plugin::error("Symbol %s is not a kernel function"); +# 534| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:2792:5: var_decl: Declaring variable "AMDGPUKernel". +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:2799:5: uninit_use_in_call: Using uninitialized value "AMDGPUKernel.ArgsSize" when calling "launchImpl". +# 2797| +# 2798| KernelArgsTy KernelArgs = {}; +# 2799|-> if (auto Err = AMDGPUKernel.launchImpl(*this, /*NumThread=*/1u, +# 2800| /*NumBlocks=*/1ul, KernelArgs, +# 2801| /*Args=*/nullptr, AsyncInfoWrapper)) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3014:5: var_decl: Declaring variable "SymbolSize" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3030:5: uninit_use: Using uninitialized value "SymbolSize". +# 3028| +# 3029| // Check the size of the symbol. +# 3030|-> if (SymbolSize != DeviceGlobal.getSize()) +# 3031| return Plugin::error( +# 3032| "Failed to load global '%s' due to size mismatch (%zu != %zu)", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3013:5: var_decl: Declaring variable "SymbolAddr" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3037:5: uninit_use_in_call: Using uninitialized value "reinterpret_cast(SymbolAddr)" when calling "setPtr". +# 3035| +# 3036| // Store the symbol address on the device global metadata. +# 3037|-> DeviceGlobal.setPtr(reinterpret_cast(SymbolAddr)); +# 3038| +# 3039| return Plugin::success(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h:241:5: var_decl: Declaring variable "KernelData" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h:248:5: uninit_use_in_call: Using uninitialized value "KernelData". Field "KernelData.KernelObject" is uninitialized when calling "pair". +# 246| return Err; +# 247| +# 248|-> KernelInfoMap.insert({KernelName, KernelData}); +# 249| return Error::success(); +# 250| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:139:3: identity_transfer: Passing "4294967295U" as argument 2 to constructor for class "GlobalTy", which sets "ImageGlobal.Size" to that argument. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: identity_transfer: Member function call "ImageGlobal.getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: cond_const: Checking "ImageGlobal.getSize() != HostGlobal->getSize()" implies that "HostGlobal->getSize()" and "HostGlobal.Size" are 4294967295 on the false branch. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: identity_transfer: Member function call "HostGlobal->getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: overrun-buffer-arg: Calling "memcpy" with "HostGlobal->getPtr()" and "HostGlobal->getSize()" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 158| +# 159| // Perform the copy from the image to the host memory. +# 160|-> std::memcpy(HostGlobal.getPtr(), ImageGlobal.getPtr(), HostGlobal.getSize()); +# 161| +# 162| return Plugin::success(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:139:3: identity_transfer: Passing "4294967295U" as argument 2 to constructor for class "GlobalTy", which sets "ImageGlobal.Size" to that argument. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: identity_transfer: Member function call "ImageGlobal.getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: cond_const: Checking "ImageGlobal.getSize() != HostGlobal->getSize()" implies that "HostGlobal->getSize()" and "HostGlobal.Size" are 4294967295 on the false branch. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: identity_transfer: Member function call "HostGlobal->getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: overrun-buffer-arg: Calling "memcpy" with "ImageGlobal.getPtr()" and "HostGlobal->getSize()" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 158| +# 159| // Perform the copy from the image to the host memory. +# 160|-> std::memcpy(HostGlobal.getPtr(), ImageGlobal.getPtr(), HostGlobal.getSize()); +# 161| +# 162| return Plugin::success(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:185:5: alloc_fn: Storage is returned from allocation function "fdopen". +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:185:5: var_assign: Assigning: "TmpFile" = storage returned from "fdopen(TmpFileFd, "wb")". +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:191:5: noescape: Resource "TmpFile" is not freed or pointed-to in "fwrite". +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:193:7: leaked_storage: Variable "TmpFile" going out of scope leaks the storage it points to. +# 191| size_t Written = fwrite(Image->getStart(), Image->getSize(), 1, TmpFile); +# 192| if (Written != 1) +# 193|-> return Plugin::error("Failed to write target image to tmpfile %s", +# 194| TmpFileName); +# 195| + +Error: BAD_FREE (CWE-763): +llvm-project-19.0.0.src/offload/src/OpenMP/Mapping.cpp:104:3: address: Taking address of "*It->HDTT". +llvm-project-19.0.0.src/offload/src/OpenMP/Mapping.cpp:104:3: assign: Assigning: "HDTT" = "*It->HDTT". +llvm-project-19.0.0.src/offload/src/OpenMP/Mapping.cpp:119:5: incorrect_free: "operator delete" frees incorrect pointer "HDTT". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 117| DP("Association found, removing it\n"); +# 118| void *Event = HDTT.getEvent(); +# 119|-> delete &HDTT; +# 120| if (Event) +# 121| Device.destroyEvent(Event); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: var_assign: Assigning: "PostProcessingPtrs" = storage returned from "new llvm::SmallVector<::PostProcessingInfo, 1u>". +llvm-project-19.0.0.src/offload/src/omptarget.cpp:867:9: leaked_storage: Variable "PostProcessingPtrs" going out of scope leaks the storage it points to. +# 865| REPORT("Call to targetDataEnd via targetDataMapper for custom mapper" +# 866| " failed.\n"); +# 867|-> return OFFLOAD_FAIL; +# 868| } +# 869| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: var_assign: Assigning: "PostProcessingPtrs" = storage returned from "new llvm::SmallVector<::PostProcessingInfo, 1u>". +llvm-project-19.0.0.src/offload/src/omptarget.cpp:912:9: leaked_storage: Variable "PostProcessingPtrs" going out of scope leaks the storage it points to. +# 910| "not exist for host address " DPxMOD " (%" PRId64 " bytes)", +# 911| DPxPTR(HstPtrBegin), DataSize); +# 912|-> return OFFLOAD_FAIL; +# 913| } +# 914| } else { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:112:3: address_of: Taking address with "&KernelEntry" yields a singleton pointer. +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:112:3: ptr_arith: Using "&KernelEntry" as an array. This might corrupt or misinterpret adjacent memory locations. +# 110| DeviceImage.ImageEnd = const_cast(ImageMB.get()->getBufferEnd()); +# 111| DeviceImage.EntriesBegin = &KernelEntry; +# 112|-> DeviceImage.EntriesEnd = &KernelEntry + 1; +# 113| +# 114| __tgt_bin_desc Desc; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:117:3: address_of: Taking address with "&KernelEntry" yields a singleton pointer. +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:117:3: ptr_arith: Using "&KernelEntry" as an array. This might corrupt or misinterpret adjacent memory locations. +# 115| Desc.NumDeviceImages = 1; +# 116| Desc.HostEntriesBegin = &KernelEntry; +# 117|-> Desc.HostEntriesEnd = &KernelEntry + 1; +# 118| Desc.DeviceImages = &DeviceImage; +# 119| + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: equal: The address of "*((int8_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: overlapping_assignment: Assigning "*((int8_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: target_type: "buf" has type "int". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: source_type: "*((int8_t *)buf)" has type "signed char". +# 236| switch (baseTypeSize) { +# 237| case 1: +# 238|-> buf = (T) * ((int8_t *)&buf); +# 239| break; +# 240| case 2: + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: equal: The address of "*((int16_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: overlapping_assignment: Assigning "*((int16_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: target_type: "buf" has type "signed char". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: source_type: "*((int16_t *)buf)" has type "short". +# 239| break; +# 240| case 2: +# 241|-> buf = (T) * ((int16_t *)&buf); +# 242| break; +# 243| case 4: + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: equal: The address of "*((int32_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: overlapping_assignment: Assigning "*((int32_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: target_type: "buf" has type "signed char". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: source_type: "*((int32_t *)buf)" has type "int". +# 242| break; +# 243| case 4: +# 244|-> buf = (T) * ((int32_t *)&buf); +# 245| break; +# 246| case 8: + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: equal: The address of "*((int64_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: overlapping_assignment: Assigning "*((int64_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: target_type: "buf" has type "signed char". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: source_type: "*((int64_t *)buf)" has type "long". +# 245| break; +# 246| case 8: +# 247|-> buf = (T) * ((int64_t *)&buf); +# 248| break; +# 249| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_affinity.cpp:4718:3: var_decl: Declaring variable "numUnique" without initializer. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_affinity.cpp:4750:5: uninit_use: Using uninitialized value "numUnique". +# 4748| } +# 4749| if (affinity.gran_levels == 0) { +# 4750|-> KMP_DEBUG_ASSERT((int)numUnique == __kmp_avail_proc); +# 4751| } +# 4752| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:442:5: assignment: Assigning: "size" = "16L". +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:445:3: assignment: Assigning: "size" = "size + 7L & 0xfffffffffffffff8L". The value of "size" is now 16. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:448:3: assignment: Assigning: "size" += "32UL". The value of "size" is now 48. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:461:5: cond_at_most: Checking "bin < 20" implies that "bin" may be up to 19 on the true branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:467:9: alias: Assigning: "best" = "&thr->freelist[bin]". "best" may now point to as high as element 19 of "thr->freelist" (which consists of 20 48-byte elements). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:482:9: alias: Assigning: "b" = "best". "b" may now point to as high as element 19 of "thr->freelist" (which consists of 20 48-byte elements). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:495:11: cond_between: Checking "b->bh.bb.bsize - (bufsize)size > 48L" implies that "b->bh.bb.bsize" is between 48 and 96 (inclusive) on the false branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:532:13: alias: Assigning: "ba" = "(char *)b + b->bh.bb.bsize". "ba" may now point to as high as byte 1008 of "thr->freelist" (which consists of 960 bytes). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:534:13: overrun-local: Overrunning array of 960 bytes at byte offset 1008 by dereferencing pointer "ba". +# 532| ba = BH(((char *)b) + b->bh.bb.bsize); +# 533| +# 534|-> KMP_DEBUG_ASSERT(ba->bb.prevfree == b->bh.bb.bsize); +# 535| +# 536| /* The buffer isn't big enough to split. Give the whole + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_barrier.cpp:1665:11: overrun-buffer-arg: Overrunning struct type kmp_internal_control_t of 56 bytes by passing it to a function which accesses it at byte offset 63 using argument "64UL". +# 1663| // Use ngo store (if available) to both store ICVs and release child +# 1664| // via child's b_go +# 1665|-> ngo_store_go(&child_bar->th_fixed_icvs, &thr_bar->th_fixed_icvs); +# 1666| } +# 1667| ngo_sync(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:1545:3: assignment: Assigning: "lockseq" = "__kmp_map_hint_to_lock(hint)". The value of "lockseq" is now between 0 and 14 (inclusive). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:1547:5: cond_const: Checking "lockseq >= lockseq_tas" implies that "lockseq" is 0 on the false branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:1552:7: overrun-call: Overrunning callee's array of size 10 by passing argument "(kmp_indirect_locktag_t)(lockseq - lockseq_ticket)" (which evaluates to 4294967291) in call to "__kmp_init_indirect_csptr". +# 1550| KMP_GET_D_TAG(lockseq)); +# 1551| } else { +# 1552|-> __kmp_init_indirect_csptr(crit, loc, global_tid, KMP_GET_I_TAG(lockseq)); +# 1553| } +# 1554| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:3444:5: cond_const: Checking "__kmp_user_lock_seq >= lockseq_tas" implies that "__kmp_user_lock_seq" is 0 on the false branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:3448:7: overrun-call: Overrunning callee's array of size 10 by passing argument "(kmp_indirect_locktag_t)(__kmp_user_lock_seq - lockseq_ticket)" (which evaluates to 4294967291) in call to "__kmp_init_indirect_csptr". +# 3446| KMP_GET_D_TAG(__kmp_user_lock_seq)); +# 3447| } else { +# 3448|-> __kmp_init_indirect_csptr(crit, loc, global_tid, +# 3449| KMP_GET_I_TAG(__kmp_user_lock_seq)); +# 3450| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: alloc_fn: Storage is returned from allocation function "dlopen". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: var_assign: Assigning: "h" = storage returned from "dlopen(fname, 1)". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:368:7: noescape: Resource "h" is not freed or pointed-to in "dlsym". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:377:11: leaked_storage: Variable "h" going out of scope leaks the storage it points to. +# 375| OMPT_VERBOSE_INIT_PRINT( +# 376| "----- END LOGGING OF TOOL REGISTRATION -----\n"); +# 377|-> return ret; +# 378| } +# 379| OMPT_VERBOSE_INIT_CONTINUED_PRINT( + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: alloc_fn: Storage is returned from allocation function "dlopen". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: var_assign: Assigning: "h" = storage returned from "dlopen(fname, 1)". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:368:7: noescape: Resource "h" is not freed or pointed-to in "dlsym". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:385:3: leaked_storage: Variable "h" going out of scope leaks the storage it points to. +# 383| } +# 384| } +# 385|-> } +# 386| #endif +# 387| OMPT_VERBOSE_INIT_PRINT("No OMP tool loaded.\n"); + +Error: LOCK_EVASION (CWE-543): +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: thread1_checks_field: Thread1 uses the value read from field "api_initialized" in the condition "__kmp_itt__ittapi_global.api_initialized". It sees that the condition is true. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1283:5: thread1_acquires_lock: Thread1 acquires lock "___itt_global.mutex". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1284:9: thread1_double_checks_field: Thread1 double checks the field "api_initialized" in the condition "__kmp_itt__ittapi_global.api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1303:9: thread1_modifies_field: Thread1 modifies the field "api_initialized". "api_initialized" is of type "long", a scalar type whose values cannot be accessed atomically. This modification will be split into multiple writes which can complete at different times and can be re-ordered independently. Also, these modifications can be re-ordered with other correlated field assignments within this critical section at runtime. Thus, checking the value of "api_initialized" is not an adequate test that the critical section has completed unless t [...] +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: thread2_checks_field_early: Thread2 checks "api_initialized", reading it after Thread1 assigns to "api_initialized" but before some of the correlated field assignments can occur. It sees the condition "__kmp_itt__ittapi_global.api_initialized" as being false. It continues on before the critical section has completed, and can read data changed by that critical section while it is in an inconsistent state. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: remove_unlocked_check: Remove this outer, unlocked check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1283:5: correlated_field: The modification of "mutex_initialized" can race with the unguarded check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1304:9: code_after_assignment: Any code run after the execution of "__kmp_itt__ittapi_global.api_initialized = 0L;" may not necessarily run when a second thread reaches "if (__kmp_itt__ittapi_global.api_initialized)". +# 1280| static volatile TIDT current_thread = 0; +# 1281| +# 1282|-> if (_N_(_ittapi_global).api_initialized) { +# 1283| ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); +# 1284| if (_N_(_ittapi_global).api_initialized) { +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: note: trimmed 1 message(s) with length over 512 + +Error: LOCK_EVASION (CWE-543): +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: thread1_checks_field: Thread1 uses the value read from field "api_initialized" in the condition "!__kmp_itt__ittapi_global.api_initialized". It sees that the condition is true. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1376:5: thread1_acquires_lock: Thread1 acquires lock "___itt_global.mutex". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1379:9: thread1_double_checks_field: Thread1 double checks the field "api_initialized" in the condition "!__kmp_itt__ittapi_global.api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1478:9: thread1_modifies_field: Thread1 modifies the field "api_initialized". "api_initialized" is of type "long", a scalar type whose values cannot be accessed atomically. This modification will be split into multiple writes which can complete at different times and can be re-ordered independently. Also, these modifications can be re-ordered with other correlated field assignments within this critical section at runtime. Thus, checking the value of "api_initialized" is not an adequate test that the critical section has completed unless t [...] +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: thread2_checks_field_early: Thread2 checks "api_initialized", reading it after Thread1 assigns to "api_initialized" but before some of the correlated field assignments can occur. It sees the condition "!__kmp_itt__ittapi_global.api_initialized" as being false. It continues on before the critical section has completed, and can read data changed by that critical section while it is in an inconsistent state. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: remove_unlocked_check: Remove this outer, unlocked check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1376:5: correlated_field: The modification of "mutex_initialized" can race with the unguarded check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1388:11: correlated_field: The modification of "lib" can race with the unguarded check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1431:17: correlated_field: The modification of "__kmp_itt_thread_ignore_ptr__3_0" can race with the unguarded check of "api_initialized". +# 1372| static volatile TIDT current_thread = 0; +# 1373| +# 1374|-> if (!_N_(_ittapi_global).api_initialized) { +# 1375| #ifndef ITT_SIMPLE_INIT +# 1376| ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: note: trimmed 1 message(s) with length over 512 + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/third-party/unittest/googlemock/src/gmock.cc:220:3: alias: Assigning: "argv" = "&argv0". "argv" now points to element 0 of "argv0" (which consists of 1 8-byte elements). +llvm-project-19.0.0.src/third-party/unittest/googlemock/src/gmock.cc:222:3: overrun-buffer-val: Overrunning buffer pointed to by "argv" of 1 8-byte elements by passing it to a function which accesses it at element index 2 (byte offset 23). +# 220| char** argv = &argv0; +# 221| +# 222|-> internal::InitGoogleMockImpl(&argc, argv); +# 223| } +# 224| + +Error: CTOR_DTOR_LEAK (CWE-401): +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1035:46: alloc_fn: Calling allocation function "dup". +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1035:46: assign: Assigning: "this->uncaptured_fd_" = "dup(fd)". +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1035:46: ctor_dtor_leak: The constructor allocates field "uncaptured_fd_" of "testing::internal::CapturedStream" but the destructor and whatever functions it calls do not free it. +# 1033| public: +# 1034| // The ctor redirects the stream to a temporary file. +# 1035|-> explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { +# 1036| #ifdef GTEST_OS_WINDOWS +# 1037| char temp_dir_path[MAX_PATH + 1] = {'\0'}; // NOLINT + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1206:3: return_constant: Function call "testing::internal::GetFileSize(file)" may return 18446744073709551615. +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1206:3: assignment: Assigning: "file_size" = "testing::internal::GetFileSize(file)". The value of "file_size" is now 18446744073709551615. +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1220:57: cond_at_least: Checking "bytes_read < file_size" implies that "bytes_read" is at least 18446744073709551615 on the false branch. +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1222:3: overrun-buffer-arg: Calling "basic_string" with "buffer" and "bytes_read" is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned. [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1220| } while (bytes_last_read > 0 && bytes_read < file_size); +# 1221| +# 1222|-> const std::string content(buffer, bytes_read); +# 1223| delete[] buffer; +# 1224| + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/clang/lib/Basic/Targets/ARM.cpp:1191:7: identical_branches: The same code is executed regardless of whether "!this->supportsThumb2()" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 1189| case 'K': +# 1190| if (isThumb()) { +# 1191|-> if (!supportsThumb2()) +# 1192| // FIXME: should check if immediate value can be obtained from shifting +# 1193| // a value between 0 and 255 left by any amount + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/clang/lib/Basic/Targets/ARM.cpp:1218:5: identical_branches: The same code is executed regardless of whether "this->isThumb() && !this->supportsThumb2()" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 1216| return true; +# 1217| case 'M': +# 1218|-> if (isThumb() && !supportsThumb2()) +# 1219| // FIXME: should check if immediate value is a multiple of 4 between 0 and +# 1220| // 1020 + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/CodeGen/ItaniumCXXABI.cpp:4071:18: original: "VMI_NonDiamondRepeat" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/CodeGen/ItaniumCXXABI.cpp:4061:18: copy_paste_error: "VMI_NonDiamondRepeat" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/CodeGen/ItaniumCXXABI.cpp:4061:18: remediation: Should it say "VMI_DiamondShaped" instead? +# 4059| } else { +# 4060| if (Bases.NonVirtualBases.count(BaseDecl)) +# 4061|-> Flags |= ItaniumRTTIBuilder::VMI_NonDiamondRepeat; +# 4062| } +# 4063| } else { + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-project-19.0.0.src/clang/lib/Parse/ParseTentative.cpp:1970:7: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-project-19.0.0.src/clang/lib/Parse/ParseTentative.cpp:1977:12: do_while_false_condition: This loop will never continue since the condition "false" is never true. +# 1968| if (Tok.is(tok::comma)) { +# 1969| ConsumeToken(); +# 1970|-> continue; +# 1971| } +# 1972| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:7144:32: original: "MD->isDeleted()" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:7158:32: copy_paste_error: "isDeleted" in "MD->isDeleted()" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:7158:32: remediation: Should it say "isConsteval" instead? +# 7156| return MD->isConsteval() != V->isConsteval(); +# 7157| })) { +# 7158|-> if (MD->isDefaulted() && MD->isDeleted()) +# 7159| // Explain why this defaulted function was deleted. +# 7160| DiagnoseDeletedDefaultedFunction(MD); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:7704:14: original: "CK_IntegralCast" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:7670:14: copy_paste_error: "CK_IntegralCast" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:7670:14: remediation: Should it say "CK_FloatingCast" instead? +# 7668| diag::err_unimplemented_conversion_with_fixed_point_type) +# 7669| << SrcTy; +# 7670|-> return CK_IntegralCast; +# 7671| } +# 7672| llvm_unreachable("Should have returned before this"); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/Sema/SemaObjCProperty.cpp:674:20: original: "kind_unsafe_unretained" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/Sema/SemaObjCProperty.cpp:687:20: copy_paste_error: "kind_unsafe_unretained" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/Sema/SemaObjCProperty.cpp:687:20: remediation: Should it say "kind_assign" instead? +# 685| +# 686| // 'unsafe_unretained' is alias for 'assign'. +# 687|-> if (Attributes & ObjCPropertyAttribute::kind_unsafe_unretained) +# 688| PDecl->setPropertyAttributes(ObjCPropertyAttribute::kind_assign); +# 689| if (isAssign) + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/tools/libclang/CIndexHigh.cpp:446:51: original: "clang::cxcursor::getCursorTU(cursor)" looks like the original copy. +llvm-project-19.0.0.src/clang/tools/libclang/CIndexHigh.cpp:471:46: copy_paste_error: "cursor" in "clang::cxcursor::getCursorTU(cursor)" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/tools/libclang/CIndexHigh.cpp:471:46: remediation: Should it say "refCursor" instead? +# 469| } +# 470| +# 471|-> if (findIdRefsInFile(cxcursor::getCursorTU(cursor), +# 472| refCursor, +# 473| *cxfile::getFileEntryRef(file), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/clang/tools/scan-build-py/lib/libear/__init__.py:140:17: identical_branches: Ternary expression on condition "release" has identical then and else expressions: "{}". Should one of the expressions be modified, or the entire ternary expression replaced? +# 138| +# 139| def shared_library_ld_flags(self, release, name): +# 140|-> extra = [] if release else [] +# 141| return extra + ["-shared", "-Wl,-soname," + name] +# 142| + +Error: IDENTIFIER_TYPO (CWE-688): +llvm-project-19.0.0.src/clang/utils/ClangDataFormat.py:124:9: identifier_typo: Using "getTypename" appears to be a typo: +* Identifier "getTypename" is only known to be referenced here, or in copies of this code. +* Identifier "getTypeName" is referenced elsewhere at least 17 times. +llvm-project-19.0.0.src/clang/utils/ClangDataFormat.py:124:9: remediation: Should identifier "getTypename" be replaced by "getTypeName"? +llvm-project-19.0.0.src/clang/utils/ABITest/ABITestGen.py:220:20: identifier_use: Example 2: Using identifier "getTypeName". +llvm-project-19.0.0.src/clang/utils/ABITest/TypeGen.py:160:23: identifier_use: Example 3: Using identifier "getTypeName". +llvm-project-19.0.0.src/clang/utils/ABITest/TypeGen.py:53:9: identifier_use: Example 5: Using identifier "getTypeName". +# 122| def getTypename(value): +# 123| # FIXME: lldb should provide something like getBaseType +# 124|-> ty = value.GetType() +# 125| if ty.IsPointerType() or ty.IsReferenceType(): +# 126| return ty.GetPointeeType().GetName() + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/utils/update_options_td_flags.py:35:68: original: "m.end" looks like the original copy. +llvm-project-19.0.0.src/clang/utils/update_options_td_flags.py:41:69: copy_paste_error: "end" in "m.end" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/utils/update_options_td_flags.py:41:69: remediation: Should it say "start" instead? +# 39| m = re.search(r'let Flags = \[([A-Za-z0-9, ]*)\]', line) +# 40| if m: +# 41|-> return process_letflags(m.group(1), line[:m.start(1)], line[m.end():]) +# 42| +# 43| return [line] + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/compiler-rt/lib/builtins/udivmoddi4.c:44:26: original: "d.s.low" looks like the original copy. +llvm-project-19.0.0.src/compiler-rt/lib/builtins/udivmoddi4.c:61:27: copy_paste_error: "low" in "d.s.low" looks like a copy-paste error. +llvm-project-19.0.0.src/compiler-rt/lib/builtins/udivmoddi4.c:61:27: remediation: Should it say "high" instead? +# 59| // 0 0 +# 60| if (rem) +# 61|-> *rem = n.s.high % d.s.low; +# 62| return n.s.high / d.s.low; +# 63| } + +Error: IDENTIFIER_TYPO (CWE-688): +llvm-project-19.0.0.src/cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/control.py:331:22: identifier_typo: Using "WaitforEvent" appears to be a typo: +* Identifier "WaitforEvent" is only known to be referenced here, or in copies of this code. +* Identifier "WaitForEvent" is referenced elsewhere at least 10 times. +llvm-project-19.0.0.src/cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/control.py:331:22: remediation: Should identifier "WaitforEvent" be replaced by "WaitForEvent"? +llvm-project-19.0.0.src/cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/setup.py:93:11: identifier_use: Example 2: Using identifier "WaitForEvent" (2 total uses in this function). +llvm-project-19.0.0.src/lldb/examples/python/performance.py:201:20: identifier_use: Example 3: Using identifier "WaitForEvent". +llvm-project-19.0.0.src/lldb/examples/python/process_events.py:347:24: identifier_use: Example 4: Using identifier "WaitForEvent". +llvm-project-19.0.0.src/lldb/utils/lui/debuggerdriver.py:117:25: identifier_use: Example 5: Using identifier "WaitForEvent". +# 329| # No flags are taken by WaitForEvent, hence 0 +# 330| ret = self.vt.WaitForEvent(self.control, 0, timeout) +# 331|-> aborter(ret, "WaitforEvent", ignore=[S_FALSE]) +# 332| return ret +# 333| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/lld/wasm/Writer.cpp:455:9: original: "memoryPtr > lld::wasm::config->initialMemory" looks like the original copy. +llvm-project-19.0.0.src/lld/wasm/Writer.cpp:480:9: copy_paste_error: "memoryPtr" in "memoryPtr > lld::wasm::config->maxMemory" looks like a copy-paste error. +llvm-project-19.0.0.src/lld/wasm/Writer.cpp:480:9: remediation: Should it say "maxMemory" instead? +# 478| if (config->maxMemory != alignTo(config->maxMemory, WasmPageSize)) +# 479| error("maximum memory must be " + Twine(WasmPageSize) + "-byte aligned"); +# 480|-> if (memoryPtr > config->maxMemory) +# 481| error("maximum memory too small, " + Twine(memoryPtr) + " bytes needed"); +# 482| if (config->maxMemory > maxMemorySetting) + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/lldb/examples/summaries/cocoa/NSIndexSet.py:48:21: original: "lldb.eBasicTypeUnsignedInt" looks like the original copy. +llvm-project-19.0.0.src/lldb/examples/summaries/cocoa/NSIndexSet.py:41:21: copy_paste_error: "eBasicTypeUnsignedInt" in "lldb.eBasicTypeUnsignedInt" looks like a copy-paste error. +llvm-project-19.0.0.src/lldb/examples/summaries/cocoa/NSIndexSet.py:41:21: remediation: Should it say "eBasicTypeUnsignedLong" instead? +# 39| ) +# 40| self.sys_params.types_cache.uint32 = self.valobj.GetType().GetBasicType( +# 41|-> lldb.eBasicTypeUnsignedInt +# 42| ) +# 43| else: + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SmallVector.h:643:7: identical_branches: The same code is executed regardless of whether "true" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 641| this->reserve(N); +# 642| for (auto I = this->end(), E = this->begin() + N; I != E; ++I) +# 643|-> if (ForOverwrite) +# 644| new (&*I) T; +# 645| else + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:10139:7: original: "VecVT" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:10109:9: copy_paste_error: "VecVT" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:10109:9: remediation: Should it say "ContainerVT" instead? +#10107| if (SubVecVT.isFixedLengthVector() && !VLen) { +#10108| MVT ContainerVT = VecVT; +#10109|-> if (VecVT.isFixedLengthVector()) { +#10110| ContainerVT = getContainerForFixedLengthVector(VecVT); +#10111| Vec = convertToScalableVector(ContainerVT, Vec, DAG, Subtarget); + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/libear/__init__.py:140:17: identical_branches: Ternary expression on condition "release" has identical then and else expressions: "{}". Should one of the expressions be modified, or the entire ternary expression replaced? +# 138| +# 139| def shared_library_ld_flags(self, release, name): +# 140|-> extra = [] if release else [] +# 141| return extra + ["-shared", "-Wl,-soname," + name] +# 142| diff --git a/tests/csdiff/diff-misc/25-llvm-17-path-filter-fix-z.err b/tests/csdiff/diff-misc/25-llvm-17-path-filter-fix-z.err new file mode 100644 index 00000000..4a8fd23c --- /dev/null +++ b/tests/csdiff/diff-misc/25-llvm-17-path-filter-fix-z.err @@ -0,0 +1,9498 @@ +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/examples/Bye/Bye.cpp:11: constructor_uses_global_object: The constructor of global object "Wave" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Wave" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 9| using namespace llvm; +# 10| +# 11|-> static cl::opt Wave("wave-goodbye", cl::init(false), +# 12| cl::desc("wave good bye")); +# 13| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/examples/IRTransforms/SimplifyCFG.cpp:49: constructor_uses_global_object: The constructor of global object "Version" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Version" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| enum TutorialVersion { V1, V2, V3 }; +# 48| static cl::opt +# 49|-> Version("tut-simplifycfg-version", cl::desc("Select tutorial version"), +# 50| cl::Hidden, cl::ValueOptional, cl::init(V1), +# 51| cl::values(clEnumValN(V1, "v1", "version 1"), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/iterator_range.h:56: move: "c" is moved (indicated by "std::forward(c)"). +llvm-17.0.6.src/include/llvm/ADT/iterator_range.h:57: use_after_move: "c" is used after it has been already moved. +# 55| iterator_range(Container &&c) +# 56| : begin_iterator(adl_begin(std::forward(c))), +# 57|-> end_iterator(adl_end(std::forward(c))) { +# 58| } +# 59| iterator_range(IteratorT begin_iterator, IteratorT end_iterator) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:235: var_decl: Declaring variable "Res". +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:237: uninit_use: Using uninitialized value "Res". Field "Res" is uninitialized. +# 235| ValueLatticeElement Res; +# 236| Res.markOverdefined(); +# 237|-> return Res; +# 238| } +# 239| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1199: constructor_uses_global_object: The constructor of global object "::DumpDebugAbbrev" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugAbbrev" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1197| // TODO: Add Mach-O and COFF names. +# 1198| // Official DWARF sections. +# 1199|-> HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +# 1200| HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +# 1201| HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1200: constructor_uses_global_object: The constructor of global object "::DumpDebugAddr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugAddr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1198| // Official DWARF sections. +# 1199| HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +# 1200|-> HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +# 1201| HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", +# 1202| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1201: constructor_uses_global_object: The constructor of global object "::DumpDebugAranges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugAranges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1199| HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +# 1200| HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +# 1201|-> HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", +# 1202| BoolOption) +# 1203| HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1203: constructor_uses_global_object: The constructor of global object "::DumpDebugInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1201| HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", +# 1202| BoolOption) +# 1203|-> HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +# 1204| HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205| HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1204: constructor_uses_global_object: The constructor of global object "::DumpDebugTypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugTypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1202| BoolOption) +# 1203| HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +# 1204|-> HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205| HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +# 1206| HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1205: constructor_uses_global_object: The constructor of global object "::DumpDebugLine" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLine" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1203| HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +# 1204| HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205|-> HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +# 1206| HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", +# 1207| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1206: constructor_uses_global_object: The constructor of global object "::DumpDebugLineStr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLineStr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1204| HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205| HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +# 1206|-> HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", +# 1207| BoolOption) +# 1208| HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1208: constructor_uses_global_object: The constructor of global object "::DumpDebugLoc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLoc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1206| HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", +# 1207| BoolOption) +# 1208|-> HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) +# 1209| HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", +# 1210| OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1209: constructor_uses_global_object: The constructor of global object "::DumpDebugLoclists" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLoclists" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1207| BoolOption) +# 1208| HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) +# 1209|-> HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", +# 1210| OffsetOption) +# 1211| HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1211: constructor_uses_global_object: The constructor of global object "::DumpDebugFrame" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugFrame" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1209| HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", +# 1210| OffsetOption) +# 1211|-> HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +# 1212| HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213| HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1212: constructor_uses_global_object: The constructor of global object "::DumpDebugMacro" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugMacro" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1210| OffsetOption) +# 1211| HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +# 1212|-> HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213| HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +# 1214| HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1213: constructor_uses_global_object: The constructor of global object "::DumpDebugNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1211| HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +# 1212| HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213|-> HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +# 1214| HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", +# 1215| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1214: constructor_uses_global_object: The constructor of global object "::DumpDebugPubnames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugPubnames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1212| HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213| HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +# 1214|-> HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", +# 1215| BoolOption) +# 1216| HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1216: constructor_uses_global_object: The constructor of global object "::DumpDebugPubtypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugPubtypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1214| HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", +# 1215| BoolOption) +# 1216|-> HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", +# 1217| BoolOption) +# 1218| HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1218: constructor_uses_global_object: The constructor of global object "::DumpDebugGnuPubnames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugGnuPubnames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1216| HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", +# 1217| BoolOption) +# 1218|-> HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", +# 1219| "debug-gnu-pubnames", BoolOption) +# 1220| HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1220: constructor_uses_global_object: The constructor of global object "::DumpDebugGnuPubtypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugGnuPubtypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1218| HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", +# 1219| "debug-gnu-pubnames", BoolOption) +# 1220|-> HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", +# 1221| "debug-gnu-pubtypes", BoolOption) +# 1222| HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1222: constructor_uses_global_object: The constructor of global object "::DumpDebugRanges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugRanges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1220| HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", +# 1221| "debug-gnu-pubtypes", BoolOption) +# 1222|-> HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) +# 1223| HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", +# 1224| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1223: constructor_uses_global_object: The constructor of global object "::DumpDebugRnglists" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugRnglists" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1221| "debug-gnu-pubtypes", BoolOption) +# 1222| HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) +# 1223|-> HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", +# 1224| BoolOption) +# 1225| HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1225: constructor_uses_global_object: The constructor of global object "::DumpDebugStr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugStr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1223| HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", +# 1224| BoolOption) +# 1225|-> HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) +# 1226| HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", +# 1227| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1226: constructor_uses_global_object: The constructor of global object "::DumpDebugStrOffsets" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugStrOffsets" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1224| BoolOption) +# 1225| HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) +# 1226|-> HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", +# 1227| BoolOption) +# 1228| HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1228: constructor_uses_global_object: The constructor of global object "::DumpDebugCUIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugCUIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1226| HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", +# 1227| BoolOption) +# 1228|-> HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", +# 1229| BoolOption) +# 1230| HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1230: constructor_uses_global_object: The constructor of global object "::DumpDebugTUIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugTUIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1228| HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", +# 1229| BoolOption) +# 1230|-> HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index", +# 1231| BoolOption) +# 1232| // Vendor extensions. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1233: constructor_uses_global_object: The constructor of global object "::DumpAppleNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1231| BoolOption) +# 1232| // Vendor extensions. +# 1233|-> HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +# 1234| HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +# 1235| HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1234: constructor_uses_global_object: The constructor of global object "::DumpAppleTypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleTypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1232| // Vendor extensions. +# 1233| HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +# 1234|-> HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +# 1235| HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", +# 1236| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1235: constructor_uses_global_object: The constructor of global object "::DumpAppleNamespaces" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleNamespaces" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1233| HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +# 1234| HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +# 1235|-> HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", +# 1236| BoolOption) +# 1237| HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1237: constructor_uses_global_object: The constructor of global object "::DumpAppleObjC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleObjC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1235| HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", +# 1236| BoolOption) +# 1237|-> HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) +# 1238| HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index", BoolOption) +# 1239| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1238: constructor_uses_global_object: The constructor of global object "::DumpGdbIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpGdbIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1236| BoolOption) +# 1237| HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) +# 1238|-> HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index", BoolOption) +# 1239| +# 1240| HANDLE_DW_IDX(0x01, compile_unit) + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:46: alloc_fn: Storage is returned from allocation function "createFastDAGScheduler". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:46: leaked_storage: Failing to save or free storage allocated by "llvm::createFastDAGScheduler(NULL, Default)" leaks it. +# 44| (void) llvm::createHybridListDAGScheduler(nullptr, +# 45| llvm::CodeGenOpt::Default); +# 46|-> (void) llvm::createFastDAGScheduler(nullptr, llvm::CodeGenOpt::Default); +# 47| (void) llvm::createDefaultScheduler(nullptr, llvm::CodeGenOpt::Default); +# 48| (void) llvm::createVLIWDAGScheduler(nullptr, llvm::CodeGenOpt::Default); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:47: alloc_fn: Storage is returned from allocation function "createDefaultScheduler". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:47: leaked_storage: Failing to save or free storage allocated by "llvm::createDefaultScheduler(NULL, Default)" leaks it. +# 45| llvm::CodeGenOpt::Default); +# 46| (void) llvm::createFastDAGScheduler(nullptr, llvm::CodeGenOpt::Default); +# 47|-> (void) llvm::createDefaultScheduler(nullptr, llvm::CodeGenOpt::Default); +# 48| (void) llvm::createVLIWDAGScheduler(nullptr, llvm::CodeGenOpt::Default); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:51: constructor_uses_global_object: The constructor of global object "::ForceCodegenLinking" itself makes use of global object "DisableSchedCycles" defined in another compilation unit. The order of construction is unspecified, so "::ForceCodegenLinking" might be created before "DisableSchedCycles" is available. +# 49| +# 50| } +# 51|-> } ForceCodegenLinking; // Force link by creating a global definition. +# 52| } +# 53| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineInstr.h:573: var_decl: Declaring variable "UsedRegs". +llvm-17.0.6.src/include/llvm/CodeGen/MachineInstr.h:577: uninit_use: Using uninitialized value "UsedRegs". Field "UsedRegs.Vector.InlineElts" is uninitialized. +# 575| if (MO.isReg() && MO.getReg()) +# 576| UsedRegs.insert(MO.getReg()); +# 577|-> return UsedRegs; +# 578| } +# 579| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllIR.h:51: constructor_uses_global_object: The constructor of global object "::ForceVMCoreLinking" itself makes use of global object "DisableI2pP2iOpt" defined in another compilation unit. The order of construction is unspecified, so "::ForceVMCoreLinking" might be created before "DisableI2pP2iOpt" is available. +# 49| (void) llvm::createVerifierPass(); +# 50| } +# 51|-> } ForceVMCoreLinking; +# 52| } +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllIR.h:51: constructor_uses_global_object: The constructor of global object "::ForceVMCoreLinking" itself makes use of global object "ScalableErrorAsWarning" defined in another compilation unit. The order of construction is unspecified, so "::ForceVMCoreLinking" might be created before "ScalableErrorAsWarning" is available. +# 49| (void) llvm::createVerifierPass(); +# 50| } +# 51|-> } ForceVMCoreLinking; +# 52| } +# 53| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:71: alloc_fn: Storage is returned from allocation function "createAAEvalPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:71: leaked_storage: Failing to save or free storage allocated by "llvm::createAAEvalPass()" leaks it. +# 69| return; +# 70| +# 71|-> (void) llvm::createAAEvalPass(); +# 72| (void) llvm::createBasicAAWrapperPass(); +# 73| (void) llvm::createSCEVAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:81: alloc_fn: Storage is returned from allocation function "createCostModelAnalysisPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:81: leaked_storage: Failing to save or free storage allocated by "llvm::createCostModelAnalysisPass()" leaks it. +# 79| (void) llvm::createCFGSimplificationPass(); +# 80| (void) llvm::createStructurizeCFGPass(); +# 81|-> (void) llvm::createCostModelAnalysisPass(); +# 82| (void) llvm::createDeadArgEliminationPass(); +# 83| (void) llvm::createDeadCodeEliminationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:91: alloc_fn: Storage is returned from allocation function "createGuardWideningPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:91: leaked_storage: Failing to save or free storage allocated by "llvm::createGuardWideningPass()" leaks it. +# 89| (void) llvm::createAlwaysInlinerLegacyPass(); +# 90| (void) llvm::createGlobalsAAWrapperPass(); +# 91|-> (void) llvm::createGuardWideningPass(); +# 92| (void) llvm::createLoopGuardWideningPass(); +# 93| (void) llvm::createInstSimplifyLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:92: alloc_fn: Storage is returned from allocation function "createLoopGuardWideningPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:92: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopGuardWideningPass()" leaks it. +# 90| (void) llvm::createGlobalsAAWrapperPass(); +# 91| (void) llvm::createGuardWideningPass(); +# 92|-> (void) llvm::createLoopGuardWideningPass(); +# 93| (void) llvm::createInstSimplifyLegacyPass(); +# 94| (void) llvm::createInstructionCombiningPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:99: alloc_fn: Storage is returned from allocation function "createLoopSinkPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:99: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopSinkPass()" leaks it. +# 97| (void) llvm::createLCSSAPass(); +# 98| (void) llvm::createLICMPass(); +# 99|-> (void) llvm::createLoopSinkPass(); +# 100| (void) llvm::createLazyValueInfoPass(); +# 101| (void) llvm::createLoopExtractorPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:102: alloc_fn: Storage is returned from allocation function "createLoopPredicationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:102: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopPredicationPass()" leaks it. +# 100| (void) llvm::createLazyValueInfoPass(); +# 101| (void) llvm::createLoopExtractorPass(); +# 102|-> (void) llvm::createLoopPredicationPass(); +# 103| (void) llvm::createLoopSimplifyPass(); +# 104| (void) llvm::createLoopSimplifyCFGPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:104: alloc_fn: Storage is returned from allocation function "createLoopSimplifyCFGPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:104: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopSimplifyCFGPass()" leaks it. +# 102| (void) llvm::createLoopPredicationPass(); +# 103| (void) llvm::createLoopSimplifyPass(); +# 104|-> (void) llvm::createLoopSimplifyCFGPass(); +# 105| (void) llvm::createLoopStrengthReducePass(); +# 106| (void) llvm::createLoopUnrollPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:107: alloc_fn: Storage is returned from allocation function "createLoopRotatePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:107: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopRotatePass(-1, false)" leaks it. +# 105| (void) llvm::createLoopStrengthReducePass(); +# 106| (void) llvm::createLoopUnrollPass(); +# 107|-> (void) llvm::createLoopRotatePass(); +# 108| (void) llvm::createLowerConstantIntrinsicsPass(); +# 109| (void) llvm::createLowerExpectIntrinsicPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:109: alloc_fn: Storage is returned from allocation function "createLowerExpectIntrinsicPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:109: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerExpectIntrinsicPass()" leaks it. +# 107| (void) llvm::createLoopRotatePass(); +# 108| (void) llvm::createLowerConstantIntrinsicsPass(); +# 109|-> (void) llvm::createLowerExpectIntrinsicPass(); +# 110| (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 111| (void) llvm::createLowerInvokePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:115: alloc_fn: Storage is returned from allocation function "createPromoteMemoryToRegisterPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:115: leaked_storage: Failing to save or free storage allocated by "llvm::createPromoteMemoryToRegisterPass(false)" leaks it. +# 113| (void) llvm::createNaryReassociatePass(); +# 114| (void) llvm::createObjCARCContractPass(); +# 115|-> (void) llvm::createPromoteMemoryToRegisterPass(); +# 116| (void) llvm::createDemoteRegisterToMemoryPass(); +# 117| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:116: alloc_fn: Storage is returned from allocation function "createDemoteRegisterToMemoryPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:116: leaked_storage: Failing to save or free storage allocated by "llvm::createDemoteRegisterToMemoryPass()" leaks it. +# 114| (void) llvm::createObjCARCContractPass(); +# 115| (void) llvm::createPromoteMemoryToRegisterPass(); +# 116|-> (void) llvm::createDemoteRegisterToMemoryPass(); +# 117| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 118| (void)llvm::createPostDomPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:122: alloc_fn: Storage is returned from allocation function "createRedundantDbgInstEliminationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:122: leaked_storage: Failing to save or free storage allocated by "llvm::createRedundantDbgInstEliminationPass()" leaks it. +# 120| (void)llvm::createPostDomViewerWrapperPassPass(); +# 121| (void) llvm::createReassociatePass(); +# 122|-> (void) llvm::createRedundantDbgInstEliminationPass(); +# 123| (void) llvm::createRegionInfoPass(); +# 124| (void) llvm::createRegionOnlyPrinterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:133: alloc_fn: Storage is returned from allocation function "createUnifyFunctionExitNodesPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:133: leaked_storage: Failing to save or free storage allocated by "llvm::createUnifyFunctionExitNodesPass()" leaks it. +# 131| (void) llvm::createTailCallEliminationPass(); +# 132| (void)llvm::createTLSVariableHoistPass(); +# 133|-> (void) llvm::createUnifyFunctionExitNodesPass(); +# 134| (void) llvm::createInstCountPass(); +# 135| (void) llvm::createConstantHoistingPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:134: alloc_fn: Storage is returned from allocation function "createInstCountPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:134: leaked_storage: Failing to save or free storage allocated by "llvm::createInstCountPass()" leaks it. +# 132| (void)llvm::createTLSVariableHoistPass(); +# 133| (void) llvm::createUnifyFunctionExitNodesPass(); +# 134|-> (void) llvm::createInstCountPass(); +# 135| (void) llvm::createConstantHoistingPass(); +# 136| (void) llvm::createCodeGenPreparePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:136: alloc_fn: Storage is returned from allocation function "createCodeGenPreparePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:136: leaked_storage: Failing to save or free storage allocated by "llvm::createCodeGenPreparePass()" leaks it. +# 134| (void) llvm::createInstCountPass(); +# 135| (void) llvm::createConstantHoistingPass(); +# 136|-> (void) llvm::createCodeGenPreparePass(); +# 137| (void) llvm::createEarlyCSEPass(); +# 138| (void) llvm::createMergedLoadStoreMotionPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:138: alloc_fn: Storage is returned from allocation function "createMergedLoadStoreMotionPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:138: leaked_storage: Failing to save or free storage allocated by "llvm::createMergedLoadStoreMotionPass(false)" leaks it. +# 136| (void) llvm::createCodeGenPreparePass(); +# 137| (void) llvm::createEarlyCSEPass(); +# 138|-> (void) llvm::createMergedLoadStoreMotionPass(); +# 139| (void) llvm::createGVNPass(); +# 140| (void) llvm::createPostDomTree(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:143: alloc_fn: Storage is returned from allocation function "createExpandMemCmpPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:143: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandMemCmpPass()" leaks it. +# 141| (void) llvm::createMergeICmpsLegacyPass(); +# 142| (void) llvm::createExpandLargeDivRemPass(); +# 143|-> (void) llvm::createExpandMemCmpPass(); +# 144| (void) llvm::createExpandVectorPredicationPass(); +# 145| std::string buf; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:153: alloc_fn: Storage is returned from allocation function "createScalarizerPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:153: leaked_storage: Failing to save or free storage allocated by "llvm::createScalarizerPass()" leaks it. +# 151| (void) llvm::createLoadStoreVectorizerPass(); +# 152| (void) llvm::createPartiallyInlineLibCallsPass(); +# 153|-> (void) llvm::createScalarizerPass(); +# 154| (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 155| (void) llvm::createSpeculativeExecutionPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:164: alloc_fn: Storage is returned from allocation function "operator new". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:164: leaked_storage: Failing to save or free storage allocated by "new llvm::IntervalPartition" leaks it. +# 162| (void)llvm::createSelectOptimizePass(); +# 163| +# 164|-> (void)new llvm::IntervalPartition(); +# 165| (void)new llvm::ScalarEvolutionWrapperPass(); +# 166| llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "::ForceSkipUniformRegions" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "::ForceSkipUniformRegions" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "CFGFuncName[abi:cxx11]" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "CFGFuncName[abi:cxx11]" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "DefaultRotationThreshold" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "DefaultRotationThreshold" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "UserBonusInstThreshold" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "UserBonusInstThreshold" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "llvm::SetLicmMssaOptCap" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "llvm::SetLicmMssaOptCap" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ProfileData/MemProf.h:103: var_decl: Declaring variable "List". +llvm-17.0.6.src/include/llvm/ProfileData/MemProf.h:107: uninit_use: Using uninitialized value "List". Field "List.InlineElts" is uninitialized. +# 105| #include "llvm/ProfileData/MIBEntryDef.inc" +# 106| #undef MIBEntryDef +# 107|-> return List; +# 108| } +# 109| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/Support/PluginLoader.h:35: constructor_uses_global_object: The constructor of global object "llvm::LoadOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LoadOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| // This causes operator= above to be invoked for every -load option. +# 34| static cl::opt> +# 35|-> LoadOpt("load", cl::value_desc("pluginfilename"), +# 36| cl::desc("Load the specified plugin")); +# 37| #endif + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysis.cpp:66: constructor_uses_global_object: The constructor of global object "llvm::DisableBasicAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableBasicAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| /// Allow disabling BasicAA from the AA results. This is particularly useful +# 65| /// when testing to isolate a single AA implementation. +# 66|-> cl::opt DisableBasicAA("disable-basic-aa", cl::Hidden, cl::init(false)); +# 67| } // namespace llvm +# 68| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:23: constructor_uses_global_object: The constructor of global object "PrintAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| using namespace llvm; +# 22| +# 23|-> static cl::opt PrintAll("print-all-alias-modref-info", cl::ReallyHidden); +# 24| +# 25| static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:25: constructor_uses_global_object: The constructor of global object "PrintNoAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintNoAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| static cl::opt PrintAll("print-all-alias-modref-info", cl::ReallyHidden); +# 24| +# 25|-> static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); +# 26| static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27| static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:26: constructor_uses_global_object: The constructor of global object "PrintMayAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMayAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); +# 26|-> static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27| static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); +# 28| static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:27: constructor_uses_global_object: The constructor of global object "PrintPartialAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintPartialAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); +# 26| static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27|-> static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); +# 28| static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); +# 29| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:28: constructor_uses_global_object: The constructor of global object "PrintMustAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMustAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27| static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); +# 28|-> static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); +# 29| +# 30| static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:30: constructor_uses_global_object: The constructor of global object "PrintNoModRef" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintNoModRef" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); +# 29| +# 30|-> static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); +# 31| static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32| static cl::opt PrintMod("print-mod", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:31: constructor_uses_global_object: The constructor of global object "PrintRef" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintRef" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); +# 31|-> static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32| static cl::opt PrintMod("print-mod", cl::ReallyHidden); +# 33| static cl::opt PrintModRef("print-modref", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:32: constructor_uses_global_object: The constructor of global object "PrintMod" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMod" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); +# 31| static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32|-> static cl::opt PrintMod("print-mod", cl::ReallyHidden); +# 33| static cl::opt PrintModRef("print-modref", cl::ReallyHidden); +# 34| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:33: constructor_uses_global_object: The constructor of global object "PrintModRef" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintModRef" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32| static cl::opt PrintMod("print-mod", cl::ReallyHidden); +# 33|-> static cl::opt PrintModRef("print-modref", cl::ReallyHidden); +# 34| +# 35| static cl::opt EvalAAMD("evaluate-aa-metadata", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:35: constructor_uses_global_object: The constructor of global object "EvalAAMD" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EvalAAMD" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| static cl::opt PrintModRef("print-modref", cl::ReallyHidden); +# 34| +# 35|-> static cl::opt EvalAAMD("evaluate-aa-metadata", cl::ReallyHidden); +# 36| +# 37| static void PrintResults(AliasResult AR, bool P, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasSetTracker.cpp:38: constructor_uses_global_object: The constructor of global object "SaturationThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SaturationThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| +# 37| static cl::opt +# 38|-> SaturationThreshold("alias-set-saturation-threshold", cl::Hidden, +# 39| cl::init(250), +# 40| cl::desc("The maximum number of pointers may-alias " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AssumptionCache.cpp:40: constructor_uses_global_object: The constructor of global object "VerifyAssumptionCache" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyAssumptionCache" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| +# 39| static cl::opt +# 40|-> VerifyAssumptionCache("verify-assumption-cache", cl::Hidden, +# 41| cl::desc("Enable verification of assumption cache"), +# 42| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:68: constructor_uses_global_object: The constructor of global object "EnableRecPhiAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRecPhiAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| +# 67| /// Enable analysis of recursive PHI nodes. +# 68|-> static cl::opt EnableRecPhiAnalysis("basic-aa-recphi", cl::Hidden, +# 69| cl::init(true)); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:71: constructor_uses_global_object: The constructor of global object "EnableSeparateStorageAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSeparateStorageAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::init(true)); +# 70| +# 71|-> static cl::opt EnableSeparateStorageAnalysis("basic-aa-separate-storage", +# 72| cl::Hidden, cl::init(false)); +# 73| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:1058: tainted_data_return: Called function "V2Size.getValue()", and a possible return value is known to be less than zero. +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:1058: underflow: The cast of "V2Size.getValue()" to a signed type could result in a negative number. +# 1056| // If an inbounds GEP would have to start from an out of bounds address +# 1057| // for the two to alias, then we can assume noalias. +# 1058|-> if (*DecompGEP1.InBounds && DecompGEP1.VarIndices.empty() && +# 1059| V2Size.hasValue() && DecompGEP1.Offset.sge(V2Size.getValue()) && +# 1060| isBaseOfObject(DecompGEP2.Base)) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:35: constructor_uses_global_object: The constructor of global object "ViewBlockFreqPropagationDAG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewBlockFreqPropagationDAG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| #define DEBUG_TYPE "block-freq" +# 34| +# 35|-> static cl::opt ViewBlockFreqPropagationDAG( +# 36| "view-block-freq-propagation-dags", cl::Hidden, +# 37| cl::desc("Pop up a window to show a dag displaying how block " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:51: constructor_uses_global_object: The constructor of global object "llvm::ViewBlockFreqFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewBlockFreqFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| namespace llvm { +# 50| cl::opt +# 51|-> ViewBlockFreqFuncName("view-bfi-func-name", cl::Hidden, +# 52| cl::desc("The option to specify " +# 53| "the name of the function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:57: constructor_uses_global_object: The constructor of global object "llvm::ViewHotFreqPercent" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewHotFreqPercent" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| cl::opt +# 57|-> ViewHotFreqPercent("view-hot-freq-percent", cl::init(10), cl::Hidden, +# 58| cl::desc("An integer in percent used to specify " +# 59| "the hot blocks/edges to be displayed " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:65: constructor_uses_global_object: The constructor of global object "llvm::PGOViewCounts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PGOViewCounts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| // Command line option to turn on CFG dot or text dump after profile annotation. +# 65|-> cl::opt PGOViewCounts( +# 66| "pgo-view-counts", cl::Hidden, +# 67| cl::desc("A boolean option to show CFG dag or text with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:81: constructor_uses_global_object: The constructor of global object "llvm::PrintBlockFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintBlockFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| clEnumValN(PGOVCT_Text, "text", "show in text."))); +# 80| +# 81|-> static cl::opt PrintBlockFreq( +# 82| "print-bfi", cl::init(false), cl::Hidden, +# 83| cl::desc("Print the block frequency info.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:85: constructor_uses_global_object: The constructor of global object "llvm::PrintBlockFreqFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintBlockFreqFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("Print the block frequency info.")); +# 84| +# 85|-> cl::opt PrintBlockFreqFuncName( +# 86| "print-bfi-func-name", cl::Hidden, +# 87| cl::desc("The option to specify the name of the function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:44: constructor_uses_global_object: The constructor of global object "llvm::CheckBFIUnknownBlockQueries" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::CheckBFIUnknownBlockQueries" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| namespace llvm { +# 44|-> cl::opt CheckBFIUnknownBlockQueries( +# 45| "check-bfi-unknown-block-queries", +# 46| cl::init(false), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:50: constructor_uses_global_object: The constructor of global object "llvm::UseIterativeBFIInference" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseIterativeBFIInference" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| "for debugging missed BFI updates")); +# 49| +# 50|-> cl::opt UseIterativeBFIInference( +# 51| "use-iterative-bfi-inference", cl::Hidden, +# 52| cl::desc("Apply an iterative post-processing to infer correct BFI counts")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:54: constructor_uses_global_object: The constructor of global object "llvm::IterativeBFIMaxIterationsPerBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::IterativeBFIMaxIterationsPerBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::desc("Apply an iterative post-processing to infer correct BFI counts")); +# 53| +# 54|-> cl::opt IterativeBFIMaxIterationsPerBlock( +# 55| "iterative-bfi-max-iterations-per-block", cl::init(1000), cl::Hidden, +# 56| cl::desc("Iterative inference: maximum number of update iterations " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:59: constructor_uses_global_object: The constructor of global object "llvm::IterativeBFIPrecision" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::IterativeBFIPrecision" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| "per block")); +# 58| +# 59|-> cl::opt IterativeBFIPrecision( +# 60| "iterative-bfi-precision", cl::init(1e-12), cl::Hidden, +# 61| cl::desc("Iterative inference: delta convergence precision; smaller values " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BranchProbabilityInfo.cpp:54: constructor_uses_global_object: The constructor of global object "PrintBranchProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBranchProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| #define DEBUG_TYPE "branch-prob" +# 53| +# 54|-> static cl::opt PrintBranchProb( +# 55| "print-bpi", cl::init(false), cl::Hidden, +# 56| cl::desc("Print the branch probability info.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BranchProbabilityInfo.cpp:58: constructor_uses_global_object: The constructor of global object "PrintBranchProbFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBranchProbFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::desc("Print the branch probability info.")); +# 57| +# 58|-> cl::opt PrintBranchProbFuncName( +# 59| "print-bpi-func-name", cl::Hidden, +# 60| cl::desc("The option to specify the name of the function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFG.cpp:24: constructor_uses_global_object: The constructor of global object "DefaultMaxBBsToExplore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultMaxBBsToExplore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| // two basic blocks. This is kept reasonably small to limit compile time when +# 23| // repeatedly used by clients of this analysis (such as captureTracking). +# 24|-> static cl::opt DefaultMaxBBsToExplore( +# 25| "dom-tree-reachability-max-bbs-to-explore", cl::Hidden, +# 26| cl::desc("Max number of BBs to explore for reachability analysis"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:31: constructor_uses_global_object: The constructor of global object "CFGFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CFGFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt +# 31|-> CFGFuncName("cfg-func-name", cl::Hidden, +# 32| cl::desc("The name of a function (or its substring)" +# 33| " whose CFG is viewed/printed.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:35: constructor_uses_global_object: The constructor of global object "CFGDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CFGDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| " whose CFG is viewed/printed.")); +# 34| +# 35|-> static cl::opt CFGDotFilenamePrefix( +# 36| "cfg-dot-filename-prefix", cl::Hidden, +# 37| cl::desc("The prefix used for the CFG dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:39: constructor_uses_global_object: The constructor of global object "HideUnreachablePaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HideUnreachablePaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::desc("The prefix used for the CFG dot file names.")); +# 38| +# 39|-> static cl::opt HideUnreachablePaths("cfg-hide-unreachable-paths", +# 40| cl::init(false)); +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:42: constructor_uses_global_object: The constructor of global object "HideDeoptimizePaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HideDeoptimizePaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::init(false)); +# 41| +# 42|-> static cl::opt HideDeoptimizePaths("cfg-hide-deoptimize-paths", +# 43| cl::init(false)); +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:45: constructor_uses_global_object: The constructor of global object "HideColdPaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HideColdPaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::init(false)); +# 44| +# 45|-> static cl::opt HideColdPaths( +# 46| "cfg-hide-cold-paths", cl::init(0.0), +# 47| cl::desc("Hide blocks with relative frequency below the given value")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:49: constructor_uses_global_object: The constructor of global object "ShowHeatColors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowHeatColors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::desc("Hide blocks with relative frequency below the given value")); +# 48| +# 49|-> static cl::opt ShowHeatColors("cfg-heat-colors", cl::init(true), +# 50| cl::Hidden, +# 51| cl::desc("Show heat colors in CFG")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:53: constructor_uses_global_object: The constructor of global object "UseRawEdgeWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseRawEdgeWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| cl::desc("Show heat colors in CFG")); +# 52| +# 53|-> static cl::opt UseRawEdgeWeight("cfg-raw-weights", cl::init(false), +# 54| cl::Hidden, +# 55| cl::desc("Use raw weights for labels. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:59: constructor_uses_global_object: The constructor of global object "ShowEdgeWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowEdgeWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| +# 58| static cl::opt +# 59|-> ShowEdgeWeight("cfg-weights", cl::init(false), cl::Hidden, +# 60| cl::desc("Show edges labeled with weights")); +# 61| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CGSCCPassManager.cpp:41: constructor_uses_global_object: The constructor of global object "llvm::AbortOnMaxDevirtIterationsReached" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::AbortOnMaxDevirtIterationsReached" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| // template typedefs. +# 40| namespace llvm { +# 41|-> static cl::opt AbortOnMaxDevirtIterationsReached( +# 42| "abort-on-max-devirt-iterations-reached", +# 43| cl::desc("Abort when the max iterations for devirtualization CGSCC repeat " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallGraphSCCPass.cpp:47: constructor_uses_global_object: The constructor of global object "llvm::MaxDevirtIterations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::MaxDevirtIterations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| namespace llvm { +# 47|-> cl::opt MaxDevirtIterations("max-devirt-iterations", cl::ReallyHidden, +# 48| cl::init(4)); +# 49| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:37: constructor_uses_global_object: The constructor of global object "ShowHeatColors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowHeatColors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| // FIXME: +# 36| // Need to show real counts when profile data is available +# 37|-> static cl::opt ShowHeatColors("callgraph-heat-colors", cl::init(false), +# 38| cl::Hidden, +# 39| cl::desc("Show heat colors in call-graph")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:42: constructor_uses_global_object: The constructor of global object "ShowEdgeWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowEdgeWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> ShowEdgeWeight("callgraph-show-weights", cl::init(false), cl::Hidden, +# 43| cl::desc("Show edges labeled with weights")); +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:46: constructor_uses_global_object: The constructor of global object "CallMultiGraph" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CallMultiGraph" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| +# 45| static cl::opt +# 46|-> CallMultiGraph("callgraph-multigraph", cl::init(false), cl::Hidden, +# 47| cl::desc("Show call-multigraph (do not remove parallel edges)")); +# 48| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:49: constructor_uses_global_object: The constructor of global object "CallGraphDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CallGraphDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::desc("Show call-multigraph (do not remove parallel edges)")); +# 48| +# 49|-> static cl::opt CallGraphDotFilenamePrefix( +# 50| "callgraph-dot-filename-prefix", cl::Hidden, +# 51| cl::desc("The prefix used for the CallGraph dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CaptureTracking.cpp:48: constructor_uses_global_object: The constructor of global object "DefaultMaxUsesToExplore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultMaxUsesToExplore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| /// don't have this cap at all. +# 47| static cl::opt +# 48|-> DefaultMaxUsesToExplore("capture-tracking-max-uses-to-explore", cl::Hidden, +# 49| cl::desc("Maximal number of uses to explore."), +# 50| cl::init(100)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CostModel.cpp:31: constructor_uses_global_object: The constructor of global object "CostKind" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CostKind" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt CostKind( +# 32| "cost-kind", cl::desc("Target cost kind"), +# 33| cl::init(TargetTransformInfo::TCK_RecipThroughput), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CostModel.cpp:43: constructor_uses_global_object: The constructor of global object "TypeBasedIntrinsicCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TypeBasedIntrinsicCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| "size-latency", "Code size and latency"))); +# 42| +# 43|-> static cl::opt TypeBasedIntrinsicCost("type-based-intrinsic-cost", +# 44| cl::desc("Calculate intrinsics cost based only on argument types"), +# 45| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDG.cpp:19: constructor_uses_global_object: The constructor of global object "SimplifyDDG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SimplifyDDG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| using namespace llvm; +# 18| +# 19|-> static cl::opt SimplifyDDG( +# 20| "ddg-simplify", cl::init(true), cl::Hidden, +# 21| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDG.cpp:24: constructor_uses_global_object: The constructor of global object "CreatePiBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CreatePiBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| "Simplify DDG by merging nodes that have less interesting edges.")); +# 23| +# 24|-> static cl::opt CreatePiBlocks("ddg-pi-blocks", cl::init(true), cl::Hidden, +# 25| cl::desc("Create pi-block nodes.")); +# 26| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDGPrinter.cpp:21: constructor_uses_global_object: The constructor of global object "DotOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 19| using namespace llvm; +# 20| +# 21|-> static cl::opt DotOnly("dot-ddg-only", cl::Hidden, +# 22| cl::desc("simple ddg dot graph")); +# 23| static cl::opt DDGDotFilenamePrefix( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDGPrinter.cpp:23: constructor_uses_global_object: The constructor of global object "DDGDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DDGDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| static cl::opt DotOnly("dot-ddg-only", cl::Hidden, +# 22| cl::desc("simple ddg dot graph")); +# 23|-> static cl::opt DDGDotFilenamePrefix( +# 24| "dot-ddg-filename-prefix", cl::init("ddg"), cl::Hidden, +# 25| cl::desc("The prefix used for the DDG dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DependenceAnalysis.cpp:109: constructor_uses_global_object: The constructor of global object "Delinearize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Delinearize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 107| +# 108| static cl::opt +# 109|-> Delinearize("da-delinearize", cl::init(true), cl::Hidden, +# 110| cl::desc("Try to delinearize array references.")); +# 111| static cl::opt DisableDelinearizationChecks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DependenceAnalysis.cpp:111: constructor_uses_global_object: The constructor of global object "DisableDelinearizationChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDelinearizationChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| Delinearize("da-delinearize", cl::init(true), cl::Hidden, +# 110| cl::desc("Try to delinearize array references.")); +# 111|-> static cl::opt DisableDelinearizationChecks( +# 112| "da-disable-delinearization-checks", cl::Hidden, +# 113| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DependenceAnalysis.cpp:119: constructor_uses_global_object: The constructor of global object "MIVMaxLevelThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MIVMaxLevelThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| "dimension to underflow or overflow into another dimension.")); +# 118| +# 119|-> static cl::opt MIVMaxLevelThreshold( +# 120| "da-miv-max-level-threshold", cl::init(7), cl::Hidden, +# 121| cl::desc("Maximum depth allowed for the recursive algorithm used to " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/GlobalsModRef.cpp:54: constructor_uses_global_object: The constructor of global object "EnableUnsafeGlobalsModRefAliasResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableUnsafeGlobalsModRefAliasResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // sensitivity and no known issues. The option also makes it easy to evaluate +# 53| // the performance impact of these results. +# 54|-> static cl::opt EnableUnsafeGlobalsModRefAliasResults( +# 55| "enable-unsafe-globalsmodref-alias-results", cl::init(false), cl::Hidden); +# 56| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:29: constructor_uses_global_object: The constructor of global object "llvm::DisableBranches" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableBranches" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| namespace llvm { +# 28| cl::opt +# 29|-> DisableBranches("no-ir-sim-branch-matching", cl::init(false), +# 30| cl::ReallyHidden, +# 31| cl::desc("disable similarity matching, and outlining, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:35: constructor_uses_global_object: The constructor of global object "llvm::DisableIndirectCalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableIndirectCalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| cl::opt +# 35|-> DisableIndirectCalls("no-ir-sim-indirect-calls", cl::init(false), +# 36| cl::ReallyHidden, +# 37| cl::desc("disable outlining indirect calls.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:40: constructor_uses_global_object: The constructor of global object "llvm::MatchCallsByName" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::MatchCallsByName" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| +# 39| cl::opt +# 40|-> MatchCallsByName("ir-sim-calls-by-name", cl::init(false), cl::ReallyHidden, +# 41| cl::desc("only allow matching call instructions if the " +# 42| "name and type signature match.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:45: constructor_uses_global_object: The constructor of global object "llvm::DisableIntrinsics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableIntrinsics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| cl::opt +# 45|-> DisableIntrinsics("no-ir-sim-intrinsics", cl::init(false), cl::ReallyHidden, +# 46| cl::desc("Don't match or outline intrinsics")); +# 47| } // namespace llvm + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ImportedFunctionsInliningStatistics.cpp:27: constructor_uses_global_object: The constructor of global object "llvm::InlinerFunctionImportStats" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::InlinerFunctionImportStats" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| +# 26| namespace llvm { +# 27|-> cl::opt InlinerFunctionImportStats( +# 28| "inliner-function-import-stats", +# 29| cl::init(InlinerFunctionImportStatsOpts::No), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IndirectCallPromotionAnalysis.cpp:28: constructor_uses_global_object: The constructor of global object "ICPRemainingPercentThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ICPRemainingPercentThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| // The percent threshold for the direct-call target (this call site vs the +# 27| // remaining call count) for it to be considered as the promotion target. +# 28|-> static cl::opt ICPRemainingPercentThreshold( +# 29| "icp-remaining-percent-threshold", cl::init(30), cl::Hidden, +# 30| cl::desc("The percentage threshold against remaining unpromoted indirect " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IndirectCallPromotionAnalysis.cpp:36: constructor_uses_global_object: The constructor of global object "ICPTotalPercentThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ICPTotalPercentThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| // total call count) for it to be considered as the promotion target. +# 35| static cl::opt +# 36|-> ICPTotalPercentThreshold("icp-total-percent-threshold", cl::init(5), +# 37| cl::Hidden, +# 38| cl::desc("The percentage threshold against total " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IndirectCallPromotionAnalysis.cpp:44: constructor_uses_global_object: The constructor of global object "MaxNumPromotions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxNumPromotions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| // callsite. +# 43| static cl::opt +# 44|-> MaxNumPromotions("icp-max-prom", cl::init(3), cl::Hidden, +# 45| cl::desc("Max number of promotions for a single indirect " +# 46| "call callsite")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:43: constructor_uses_global_object: The constructor of global object "InlineRemarkAttribute" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineRemarkAttribute" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| /// Flag to add inline messages as callsite attributes 'inline-remark'. +# 42| static cl::opt +# 43|-> InlineRemarkAttribute("inline-remark-attribute", cl::init(false), +# 44| cl::Hidden, +# 45| cl::desc("Enable adding inline-remark attribute to" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:49: constructor_uses_global_object: The constructor of global object "EnableInlineDeferral" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableInlineDeferral" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| " to be not inlined")); +# 48| +# 49|-> static cl::opt EnableInlineDeferral("inline-deferral", cl::init(false), +# 50| cl::Hidden, +# 51| cl::desc("Enable deferred inlining")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:56: constructor_uses_global_object: The constructor of global object "InlineDeferralScale" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineDeferralScale" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| // number tells shouldBeDeferred to only take the secondary cost into account. +# 55| static cl::opt +# 56|-> InlineDeferralScale("inline-deferral-scale", +# 57| cl::desc("Scale to limit the cost of inline deferral"), +# 58| cl::init(2), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:61: constructor_uses_global_object: The constructor of global object "AnnotateInlinePhase" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AnnotateInlinePhase" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| +# 60| static cl::opt +# 61|-> AnnotateInlinePhase("annotate-inline-phase", cl::Hidden, cl::init(false), +# 62| cl::desc("If true, annotate inline advisor remarks " +# 63| "with LTO and pass information.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:57: constructor_uses_global_object: The constructor of global object "DefaultThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| static cl::opt +# 57|-> DefaultThreshold("inlinedefault-threshold", cl::Hidden, cl::init(225), +# 58| cl::desc("Default amount of inlining to perform")); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:65: constructor_uses_global_object: The constructor of global object "IgnoreTTIInlineCompatible" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreTTIInlineCompatible" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| // some use cases. If we avoid adding the attribute, we need an option to avoid +# 64| // checking these attributes. +# 65|-> static cl::opt IgnoreTTIInlineCompatible( +# 66| "ignore-tti-inline-compatible", cl::Hidden, cl::init(false), +# 67| cl::desc("Ignore TTI attributes compatibility check between callee/caller " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:70: constructor_uses_global_object: The constructor of global object "PrintInstructionComments" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintInstructionComments" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| "during inline cost calculation")); +# 69| +# 70|-> static cl::opt PrintInstructionComments( +# 71| "print-instruction-comments", cl::Hidden, cl::init(false), +# 72| cl::desc("Prints comments for instruction based on inline cost analysis")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:74: constructor_uses_global_object: The constructor of global object "InlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| cl::desc("Prints comments for instruction based on inline cost analysis")); +# 73| +# 74|-> static cl::opt InlineThreshold( +# 75| "inline-threshold", cl::Hidden, cl::init(225), +# 76| cl::desc("Control the amount of inlining to perform (default = 225)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:78: constructor_uses_global_object: The constructor of global object "HintThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HintThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| cl::desc("Control the amount of inlining to perform (default = 225)")); +# 77| +# 78|-> static cl::opt HintThreshold( +# 79| "inlinehint-threshold", cl::Hidden, cl::init(325), +# 80| cl::desc("Threshold for inlining functions with inline hint")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:83: constructor_uses_global_object: The constructor of global object "ColdCallSiteThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdCallSiteThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| +# 82| static cl::opt +# 83|-> ColdCallSiteThreshold("inline-cold-callsite-threshold", cl::Hidden, +# 84| cl::init(45), +# 85| cl::desc("Threshold for inlining cold callsites")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:87: constructor_uses_global_object: The constructor of global object "InlineEnableCostBenefitAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineEnableCostBenefitAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| cl::desc("Threshold for inlining cold callsites")); +# 86| +# 87|-> static cl::opt InlineEnableCostBenefitAnalysis( +# 88| "inline-enable-cost-benefit-analysis", cl::Hidden, cl::init(false), +# 89| cl::desc("Enable the cost-benefit analysis for the inliner")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:91: constructor_uses_global_object: The constructor of global object "InlineSavingsMultiplier" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineSavingsMultiplier" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| cl::desc("Enable the cost-benefit analysis for the inliner")); +# 90| +# 91|-> static cl::opt InlineSavingsMultiplier( +# 92| "inline-savings-multiplier", cl::Hidden, cl::init(8), +# 93| cl::desc("Multiplier to multiply cycle savings by during inlining")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:96: constructor_uses_global_object: The constructor of global object "InlineSizeAllowance" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineSizeAllowance" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| +# 95| static cl::opt +# 96|-> InlineSizeAllowance("inline-size-allowance", cl::Hidden, cl::init(100), +# 97| cl::desc("The maximum size of a callee that get's " +# 98| "inlined without sufficient cycle savings")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:103: constructor_uses_global_object: The constructor of global object "ColdThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| // PGO before we actually hook up inliner with analysis passes such as BPI and +# 102| // BFI. +# 103|-> static cl::opt ColdThreshold( +# 104| "inlinecold-threshold", cl::Hidden, cl::init(45), +# 105| cl::desc("Threshold for inlining functions with cold attribute")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:108: constructor_uses_global_object: The constructor of global object "HotCallSiteThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HotCallSiteThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| +# 107| static cl::opt +# 108|-> HotCallSiteThreshold("hot-callsite-threshold", cl::Hidden, cl::init(3000), +# 109| cl::desc("Threshold for hot callsites ")); +# 110| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:111: constructor_uses_global_object: The constructor of global object "LocallyHotCallSiteThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LocallyHotCallSiteThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| cl::desc("Threshold for hot callsites ")); +# 110| +# 111|-> static cl::opt LocallyHotCallSiteThreshold( +# 112| "locally-hot-callsite-threshold", cl::Hidden, cl::init(525), +# 113| cl::desc("Threshold for locally hot callsites ")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:115: constructor_uses_global_object: The constructor of global object "ColdCallSiteRelFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdCallSiteRelFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 113| cl::desc("Threshold for locally hot callsites ")); +# 114| +# 115|-> static cl::opt ColdCallSiteRelFreq( +# 116| "cold-callsite-rel-freq", cl::Hidden, cl::init(2), +# 117| cl::desc("Maximum block frequency, expressed as a percentage of caller's " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:121: constructor_uses_global_object: The constructor of global object "HotCallSiteRelFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HotCallSiteRelFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| "profile information.")); +# 120| +# 121|-> static cl::opt HotCallSiteRelFreq( +# 122| "hot-callsite-rel-freq", cl::Hidden, cl::init(60), +# 123| cl::desc("Minimum block frequency, expressed as a multiple of caller's " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:128: constructor_uses_global_object: The constructor of global object "InstrCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InstrCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| +# 127| static cl::opt +# 128|-> InstrCost("inline-instr-cost", cl::Hidden, cl::init(5), +# 129| cl::desc("Cost of a single instruction when inlining")); +# 130| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:132: constructor_uses_global_object: The constructor of global object "MemAccessCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemAccessCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 130| +# 131| static cl::opt +# 132|-> MemAccessCost("inline-memaccess-cost", cl::Hidden, cl::init(0), +# 133| cl::desc("Cost of load/store instruction when inlining")); +# 134| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:135: constructor_uses_global_object: The constructor of global object "CallPenalty" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CallPenalty" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::desc("Cost of load/store instruction when inlining")); +# 134| +# 135|-> static cl::opt CallPenalty( +# 136| "inline-call-penalty", cl::Hidden, cl::init(25), +# 137| cl::desc("Call penalty that is applied per callsite when inlining")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:140: constructor_uses_global_object: The constructor of global object "StackSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> StackSizeThreshold("inline-max-stacksize", cl::Hidden, +# 141| cl::init(std::numeric_limits::max()), +# 142| cl::desc("Do not inline functions with a stack size " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:145: constructor_uses_global_object: The constructor of global object "RecurStackSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RecurStackSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 143| "that exceeds the specified limit")); +# 144| +# 145|-> static cl::opt RecurStackSizeThreshold( +# 146| "recursive-inline-max-stacksize", cl::Hidden, +# 147| cl::init(InlineConstants::TotalAllocaSizeRecursiveCaller), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:151: constructor_uses_global_object: The constructor of global object "OptComputeFullInlineCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptComputeFullInlineCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 149| "size that exceeds the specified limit")); +# 150| +# 151|-> static cl::opt OptComputeFullInlineCost( +# 152| "inline-cost-full", cl::Hidden, +# 153| cl::desc("Compute the full inline cost of a call site even when the cost " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:156: constructor_uses_global_object: The constructor of global object "InlineCallerSupersetNoBuiltin" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineCallerSupersetNoBuiltin" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 154| "exceeds the threshold.")); +# 155| +# 156|-> static cl::opt InlineCallerSupersetNoBuiltin( +# 157| "inline-caller-superset-nobuiltin", cl::Hidden, cl::init(true), +# 158| cl::desc("Allow inlining when caller has a superset of callee's nobuiltin " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:161: constructor_uses_global_object: The constructor of global object "DisableGEPConstOperand" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableGEPConstOperand" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 159| "attributes.")); +# 160| +# 161|-> static cl::opt DisableGEPConstOperand( +# 162| "disable-gep-const-evaluation", cl::Hidden, cl::init(false), +# 163| cl::desc("Disables evaluation of GetElementPtr with constant operands")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineOrder.cpp:27: constructor_uses_global_object: The constructor of global object "UseInlinePriority" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseInlinePriority" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| enum class InlinePriorityMode : int { Size, Cost, CostBenefit, ML }; +# 26| +# 27|-> static cl::opt UseInlinePriority( +# 28| "inline-priority-mode", cl::init(InlinePriorityMode::Size), cl::Hidden, +# 29| cl::desc("Choose the priority mode to use in module inline"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineOrder.cpp:38: constructor_uses_global_object: The constructor of global object "ModuleInlinerTopPriorityThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ModuleInlinerTopPriorityThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| clEnumValN(InlinePriorityMode::ML, "ml", "Use ML."))); +# 37| +# 38|-> static cl::opt ModuleInlinerTopPriorityThreshold( +# 39| "moudle-inliner-top-priority-threshold", cl::Hidden, cl::init(0), +# 40| cl::desc("The cost threshold for call sites that get inlined without the " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InteractiveModelRunner.cpp:21: constructor_uses_global_object: The constructor of global object "DebugReply" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugReply" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 19| using namespace llvm; +# 20| +# 21|-> static cl::opt DebugReply( +# 22| "interactive-model-runner-echo-reply", cl::init(false), cl::Hidden, +# 23| cl::desc("The InteractiveModelRunner will echo back to stderr " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/Loads.cpp:448: constructor_uses_global_object: The constructor of global object "llvm::DefMaxInstsToScan" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DefMaxInstsToScan" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 446| /// without documented explanation. +# 447| cl::opt +# 448|-> llvm::DefMaxInstsToScan("available-load-scan-limit", cl::init(6), cl::Hidden, +# 449| cl::desc("Use this to specify the default maximum number of instructions " +# 450| "to scan backward from a given instruction, when searching for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:76: constructor_uses_global_object: The constructor of global object "VectorizationFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VectorizationFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| +# 75| static cl::opt +# 76|-> VectorizationFactor("force-vector-width", cl::Hidden, +# 77| cl::desc("Sets the SIMD width. Zero is autoselect."), +# 78| cl::location(VectorizerParams::VectorizationFactor)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:82: constructor_uses_global_object: The constructor of global object "VectorizationInterleave" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VectorizationInterleave" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| +# 81| static cl::opt +# 82|-> VectorizationInterleave("force-vector-interleave", cl::Hidden, +# 83| cl::desc("Sets the vectorization interleave count. " +# 84| "Zero is autoselect."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:89: constructor_uses_global_object: The constructor of global object "RuntimeMemoryCheckThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RuntimeMemoryCheckThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| unsigned VectorizerParams::VectorizationInterleave; +# 88| +# 89|-> static cl::opt RuntimeMemoryCheckThreshold( +# 90| "runtime-memory-check-threshold", cl::Hidden, +# 91| cl::desc("When performing memory disambiguation checks at runtime do not " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:97: constructor_uses_global_object: The constructor of global object "MemoryCheckMergeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemoryCheckMergeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| +# 96| /// The maximum iterations used to merge memory checks +# 97|-> static cl::opt MemoryCheckMergeThreshold( +# 98| "memory-check-merge-threshold", cl::Hidden, +# 99| cl::desc("Maximum number of comparisons done when trying to merge " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:108: constructor_uses_global_object: The constructor of global object "MaxDependences" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxDependences" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| /// We collect dependences up to this threshold. +# 107| static cl::opt +# 108|-> MaxDependences("max-dependences", cl::Hidden, +# 109| cl::desc("Maximum number of dependences collected by " +# 110| "loop-access analysis (default = 100)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:124: constructor_uses_global_object: The constructor of global object "EnableMemAccessVersioning" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemAccessVersioning" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| /// } else +# 123| /// ... +# 124|-> static cl::opt EnableMemAccessVersioning( +# 125| "enable-mem-access-versioning", cl::init(true), cl::Hidden, +# 126| cl::desc("Enable symbolic stride memory access versioning")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:130: constructor_uses_global_object: The constructor of global object "EnableForwardingConflictDetection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableForwardingConflictDetection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| /// Enable store-to-load forwarding conflict detection. This option can +# 129| /// be disabled for correctness testing. +# 130|-> static cl::opt EnableForwardingConflictDetection( +# 131| "store-to-load-forwarding-conflict-detection", cl::Hidden, +# 132| cl::desc("Enable conflict detection in loop-access analysis"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:135: constructor_uses_global_object: The constructor of global object "MaxForkedSCEVDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxForkedSCEVDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::init(true)); +# 134| +# 135|-> static cl::opt MaxForkedSCEVDepth( +# 136| "max-forked-scev-depth", cl::Hidden, +# 137| cl::desc("Maximum recursion depth when finding forked SCEVs (default = 5)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:140: constructor_uses_global_object: The constructor of global object "SpeculateUnitStride" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SpeculateUnitStride" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| cl::init(5)); +# 139| +# 140|-> static cl::opt SpeculateUnitStride( +# 141| "laa-speculate-unit-stride", cl::Hidden, +# 142| cl::desc("Speculate that non-constant strides are unit in LAA"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopCacheAnalysis.cpp:45: constructor_uses_global_object: The constructor of global object "DefaultTripCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultTripCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| #define DEBUG_TYPE "loop-cache-cost" +# 44| +# 45|-> static cl::opt DefaultTripCount( +# 46| "default-trip-count", cl::init(100), cl::Hidden, +# 47| cl::desc("Use this to specify the default trip count of a loop")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopCacheAnalysis.cpp:52: constructor_uses_global_object: The constructor of global object "TemporalReuseThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TemporalReuseThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| // reuse if they access either the same memory location, or a memory location +# 51| // with distance smaller than a configurable threshold. +# 52|-> static cl::opt TemporalReuseThreshold( +# 53| "temporal-reuse-threshold", cl::init(2), cl::Hidden, +# 54| cl::desc("Use this to specify the max. distance between array elements " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopInfo.cpp:53: constructor_uses_global_object: The constructor of global object "VerifyLoopInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyLoopInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| #endif +# 52| static cl::opt +# 53|-> VerifyLoopInfoX("verify-loop-info", cl::location(VerifyLoopInfo), +# 54| cl::Hidden, cl::desc("Verify loop info (time consuming)")); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:35: constructor_uses_global_object: The constructor of global object "InteractiveChannelBaseName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveChannelBaseName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| using namespace llvm; +# 34| +# 35|-> static cl::opt InteractiveChannelBaseName( +# 36| "inliner-interactive-channel-base", cl::Hidden, +# 37| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:46: constructor_uses_global_object: The constructor of global object "InteractiveIncludeDefault" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveIncludeDefault" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| .str(); +# 45| static cl::opt +# 46|-> InteractiveIncludeDefault("inliner-interactive-include-default", cl::Hidden, +# 47| cl::desc(InclDefaultMsg)); +# 48| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:82: constructor_uses_global_object: The constructor of global object "SizeIncreaseThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SizeIncreaseThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| #define DEBUG_TYPE "inline-ml" +# 81| +# 82|-> static cl::opt SizeIncreaseThreshold( +# 83| "ml-advisor-size-increase-threshold", cl::Hidden, +# 84| cl::desc("Maximum factor by which expected native size may increase before " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:88: constructor_uses_global_object: The constructor of global object "KeepFPICache" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "KeepFPICache" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| cl::init(2.0)); +# 87| +# 88|-> static cl::opt KeepFPICache( +# 89| "ml-advisor-keep-fpi-cache", cl::Hidden, +# 90| cl::desc( + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).slt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: return_local_addr_alias: Returning pointer "" which points to local variable "LHS". +# 978| switch (Options.EvalMode) { +# 979| case ObjectSizeOpts::Mode::Min: +# 980|-> return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982| return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).slt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: return_local_addr_alias: Returning pointer "" which points to local variable "RHS". +# 978| switch (Options.EvalMode) { +# 979| case ObjectSizeOpts::Mode::Min: +# 980|-> return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982| return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).sgt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: return_local_addr_alias: Returning pointer "" which points to local variable "LHS". +# 980| return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982|-> return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 983| case ObjectSizeOpts::Mode::ExactSizeFromOffset: +# 984| return (getSizeWithOverflow(LHS).eq(getSizeWithOverflow(RHS))) ? LHS + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).sgt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: return_local_addr_alias: Returning pointer "" which points to local variable "RHS". +# 980| return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982|-> return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 983| case ObjectSizeOpts::Mode::ExactSizeFromOffset: +# 984| return (getSizeWithOverflow(LHS).eq(getSizeWithOverflow(RHS))) ? LHS + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryDependenceAnalysis.cpp:73: constructor_uses_global_object: The constructor of global object "BlockScanLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockScanLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| // Limit for the number of instructions to scan in a block. +# 72| +# 73|-> static cl::opt BlockScanLimit( +# 74| "memdep-block-scan-limit", cl::Hidden, cl::init(100), +# 75| cl::desc("The number of instructions to scan in a block in memory " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryDependenceAnalysis.cpp:79: constructor_uses_global_object: The constructor of global object "BlockNumberLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockNumberLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> BlockNumberLimit("memdep-block-number-limit", cl::Hidden, cl::init(200), +# 80| cl::desc("The number of blocks to scan during memory " +# 81| "dependency analysis (default = 200)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryProfileInfo.cpp:23: constructor_uses_global_object: The constructor of global object "MemProfLifetimeAccessDensityColdThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemProfLifetimeAccessDensityColdThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| // Upper bound on lifetime access density (accesses per byte per lifetime sec) +# 22| // for marking an allocation cold. +# 23|-> cl::opt MemProfLifetimeAccessDensityColdThreshold( +# 24| "memprof-lifetime-access-density-cold-threshold", cl::init(0.05), +# 25| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryProfileInfo.cpp:31: constructor_uses_global_object: The constructor of global object "MemProfAveLifetimeColdThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemProfAveLifetimeColdThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| // Lower bound on lifetime to mark an allocation cold (in addition to accesses +# 30| // per byte per sec above). This is to avoid pessimizing short lived objects. +# 31|-> cl::opt MemProfAveLifetimeColdThreshold( +# 32| "memprof-ave-lifetime-cold-threshold", cl::init(200), cl::Hidden, +# 33| cl::desc("The average lifetime (s) for an allocation to be considered " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryProfileInfo.cpp:38: constructor_uses_global_object: The constructor of global object "MemProfMinAveLifetimeAccessDensityHotThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemProfMinAveLifetimeAccessDensityHotThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| // Lower bound on average lifetime accesses density (total life time access +# 37| // density / alloc count) for marking an allocation hot. +# 38|-> cl::opt MemProfMinAveLifetimeAccessDensityHotThreshold( +# 39| "memprof-min-ave-lifetime-access-density-hot-threshold", cl::init(1000), +# 40| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemorySSA.cpp:63: constructor_uses_global_object: The constructor of global object "DotCFGMSSA[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotCFGMSSA[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| +# 62| static cl::opt +# 63|-> DotCFGMSSA("dot-cfg-mssa", +# 64| cl::value_desc("file name for generated dot file"), +# 65| cl::desc("file name for generated dot file"), cl::init("")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemorySSA.cpp:74: constructor_uses_global_object: The constructor of global object "MaxCheckLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxCheckLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| true) +# 73| +# 74|-> static cl::opt MaxCheckLimit( +# 75| "memssa-check-limit", cl::Hidden, cl::init(100), +# 76| cl::desc("The maximum number of stores/phis MemorySSA" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemorySSA.cpp:87: constructor_uses_global_object: The constructor of global object "VerifyMemorySSAX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyMemorySSAX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| +# 86| static cl::opt +# 87|-> VerifyMemorySSAX("verify-memoryssa", cl::location(VerifyMemorySSA), +# 88| cl::Hidden, cl::desc("Enable verification of MemorySSA.")); +# 89| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ModuleSummaryAnalysis.cpp:71: constructor_uses_global_object: The constructor of global object "FSEC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSEC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| } // namespace llvm +# 70| +# 71|-> static cl::opt FSEC( +# 72| "force-summary-edges-cold", cl::Hidden, cl::location(ForceSummaryEdgesCold), +# 73| cl::desc("Force all edges in the function summary to cold"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ModuleSummaryAnalysis.cpp:79: constructor_uses_global_object: The constructor of global object "ModuleSummaryDotFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ModuleSummaryDotFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| clEnumValN(FunctionSummary::FSHT_All, "all", "All edges."))); +# 78| +# 79|-> static cl::opt ModuleSummaryDotFile( +# 80| "module-summary-dot-file", cl::Hidden, cl::value_desc("filename"), +# 81| cl::desc("File to emit dot graph of new summary into")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ObjCARCAnalysisUtils.cpp:24: constructor_uses_global_object: The constructor of global object "EnableARCOptimizations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableARCOptimizations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| /// A handy option to enable/disable all ARC Optimizations. +# 23| bool llvm::objcarc::EnableARCOpts; +# 24|-> static cl::opt EnableARCOptimizations( +# 25| "enable-objc-arc-opts", cl::desc("enable/disable all ARC Optimizations"), +# 26| cl::location(EnableARCOpts), cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/PHITransAddr.cpp:24: constructor_uses_global_object: The constructor of global object "EnableAddPhiTranslation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAddPhiTranslation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| using namespace llvm; +# 23| +# 24|-> static cl::opt EnableAddPhiTranslation( +# 25| "gvn-add-phi-translation", cl::init(false), cl::Hidden, +# 26| cl::desc("Enable phi-translation of add instructions")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ProfileSummaryInfo.cpp:36: constructor_uses_global_object: The constructor of global object "PartialProfile" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PartialProfile" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| } // namespace llvm +# 35| +# 36|-> static cl::opt PartialProfile( +# 37| "partial-profile", cl::Hidden, cl::init(false), +# 38| cl::desc("Specify the current profile is used as a partial profile.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ProfileSummaryInfo.cpp:40: constructor_uses_global_object: The constructor of global object "ScalePartialSampleProfileWorkingSetSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ScalePartialSampleProfileWorkingSetSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| cl::desc("Specify the current profile is used as a partial profile.")); +# 39| +# 40|-> cl::opt ScalePartialSampleProfileWorkingSetSize( +# 41| "scale-partial-sample-profile-working-set-size", cl::Hidden, cl::init(true), +# 42| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ProfileSummaryInfo.cpp:47: constructor_uses_global_object: The constructor of global object "PartialSampleProfileWorkingSetSizeScaleFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PartialSampleProfileWorkingSetSizeScaleFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| "being compiled.")); +# 46| +# 47|-> static cl::opt PartialSampleProfileWorkingSetSizeScaleFactor( +# 48| "partial-sample-profile-working-set-size-scale-factor", cl::Hidden, +# 49| cl::init(0.008), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/RegionInfo.cpp:42: constructor_uses_global_object: The constructor of global object "VerifyRegionInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyRegionInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> VerifyRegionInfoX( +# 43| "verify-region-info", +# 44| cl::location(RegionInfoBase>::VerifyRegionInfo), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/RegionInfo.cpp:47: constructor_uses_global_object: The constructor of global object "printStyleX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "printStyleX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| cl::desc("Verify region info (time consuming)")); +# 46| +# 47|-> static cl::opt printStyleX("print-region-style", +# 48| cl::location(RegionInfo::printStyle), +# 49| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/RegionPrinter.cpp:28: constructor_uses_global_object: The constructor of global object "onlySimpleRegions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "onlySimpleRegions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| /// onlySimpleRegion - Show only the simple regions in the RegionViewer. +# 27| static cl::opt +# 28|-> onlySimpleRegions("only-simple-regions", +# 29| cl::desc("Show only simple regions in the graphviz viewer"), +# 30| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:153: constructor_uses_global_object: The constructor of global object "MaxBruteForceIterations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxBruteForceIterations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| +# 152| static cl::opt +# 153|-> MaxBruteForceIterations("scalar-evolution-max-iterations", cl::ReallyHidden, +# 154| cl::desc("Maximum number of iterations SCEV will " +# 155| "symbolically execute a constant " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:159: constructor_uses_global_object: The constructor of global object "VerifySCEVOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifySCEVOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 157| cl::init(100)); +# 158| +# 159|-> static cl::opt VerifySCEVOpt( +# 160| "verify-scev", cl::Hidden, cl::location(VerifySCEV), +# 161| cl::desc("Verify ScalarEvolution's backedge taken counts (slow)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:162: constructor_uses_global_object: The constructor of global object "VerifySCEVStrict" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifySCEVStrict" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 160| "verify-scev", cl::Hidden, cl::location(VerifySCEV), +# 161| cl::desc("Verify ScalarEvolution's backedge taken counts (slow)")); +# 162|-> static cl::opt VerifySCEVStrict( +# 163| "verify-scev-strict", cl::Hidden, +# 164| cl::desc("Enable stricter verification with -verify-scev is passed")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:166: constructor_uses_global_object: The constructor of global object "VerifyIR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyIR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 164| cl::desc("Enable stricter verification with -verify-scev is passed")); +# 165| +# 166|-> static cl::opt VerifyIR( +# 167| "scev-verify-ir", cl::Hidden, +# 168| cl::desc("Verify IR correctness when making sensitive SCEV queries (slow)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:171: constructor_uses_global_object: The constructor of global object "MulOpsInlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MulOpsInlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 169| cl::init(false)); +# 170| +# 171|-> static cl::opt MulOpsInlineThreshold( +# 172| "scev-mulops-inline-threshold", cl::Hidden, +# 173| cl::desc("Threshold for inlining multiplication operands into a SCEV"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:176: constructor_uses_global_object: The constructor of global object "AddOpsInlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddOpsInlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 174| cl::init(32)); +# 175| +# 176|-> static cl::opt AddOpsInlineThreshold( +# 177| "scev-addops-inline-threshold", cl::Hidden, +# 178| cl::desc("Threshold for inlining addition operands into a SCEV"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:181: constructor_uses_global_object: The constructor of global object "MaxSCEVCompareDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxSCEVCompareDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 179| cl::init(500)); +# 180| +# 181|-> static cl::opt MaxSCEVCompareDepth( +# 182| "scalar-evolution-max-scev-compare-depth", cl::Hidden, +# 183| cl::desc("Maximum depth of recursive SCEV complexity comparisons"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:186: constructor_uses_global_object: The constructor of global object "MaxSCEVOperationsImplicationDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxSCEVOperationsImplicationDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 184| cl::init(32)); +# 185| +# 186|-> static cl::opt MaxSCEVOperationsImplicationDepth( +# 187| "scalar-evolution-max-scev-operations-implication-depth", cl::Hidden, +# 188| cl::desc("Maximum depth of recursive SCEV operations implication analysis"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:191: constructor_uses_global_object: The constructor of global object "MaxValueCompareDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxValueCompareDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 189| cl::init(2)); +# 190| +# 191|-> static cl::opt MaxValueCompareDepth( +# 192| "scalar-evolution-max-value-compare-depth", cl::Hidden, +# 193| cl::desc("Maximum depth of recursive value complexity comparisons"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:197: constructor_uses_global_object: The constructor of global object "MaxArithDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxArithDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 195| +# 196| static cl::opt +# 197|-> MaxArithDepth("scalar-evolution-max-arith-depth", cl::Hidden, +# 198| cl::desc("Maximum depth of recursive arithmetics"), +# 199| cl::init(32)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:201: constructor_uses_global_object: The constructor of global object "MaxConstantEvolvingDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxConstantEvolvingDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 199| cl::init(32)); +# 200| +# 201|-> static cl::opt MaxConstantEvolvingDepth( +# 202| "scalar-evolution-max-constant-evolving-depth", cl::Hidden, +# 203| cl::desc("Maximum depth of recursive constant evolving"), cl::init(32)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:206: constructor_uses_global_object: The constructor of global object "MaxCastDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxCastDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 204| +# 205| static cl::opt +# 206|-> MaxCastDepth("scalar-evolution-max-cast-depth", cl::Hidden, +# 207| cl::desc("Maximum depth of recursive SExt/ZExt/Trunc"), +# 208| cl::init(8)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:211: constructor_uses_global_object: The constructor of global object "MaxAddRecSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxAddRecSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 209| +# 210| static cl::opt +# 211|-> MaxAddRecSize("scalar-evolution-max-add-rec-size", cl::Hidden, +# 212| cl::desc("Max coefficients in AddRec during evolving"), +# 213| cl::init(8)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:216: constructor_uses_global_object: The constructor of global object "HugeExprThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeExprThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 214| +# 215| static cl::opt +# 216|-> HugeExprThreshold("scalar-evolution-huge-expr-threshold", cl::Hidden, +# 217| cl::desc("Size of the expression which is considered huge"), +# 218| cl::init(4096)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:220: constructor_uses_global_object: The constructor of global object "RangeIterThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RangeIterThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 218| cl::init(4096)); +# 219| +# 220|-> static cl::opt RangeIterThreshold( +# 221| "scev-range-iter-threshold", cl::Hidden, +# 222| cl::desc("Threshold for switching to iteratively computing SCEV ranges"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:226: constructor_uses_global_object: The constructor of global object "ClassifyExpressions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClassifyExpressions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 224| +# 225| static cl::opt +# 226|-> ClassifyExpressions("scalar-evolution-classify-expressions", +# 227| cl::Hidden, cl::init(true), +# 228| cl::desc("When printing analysis, include information on every instruction")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:230: constructor_uses_global_object: The constructor of global object "UseExpensiveRangeSharpening" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseExpensiveRangeSharpening" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 228| cl::desc("When printing analysis, include information on every instruction")); +# 229| +# 230|-> static cl::opt UseExpensiveRangeSharpening( +# 231| "scalar-evolution-use-expensive-range-sharpening", cl::Hidden, +# 232| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:236: constructor_uses_global_object: The constructor of global object "MaxPhiSCCAnalysisSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxPhiSCCAnalysisSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 234| "be costly in terms of compile time")); +# 235| +# 236|-> static cl::opt MaxPhiSCCAnalysisSize( +# 237| "scalar-evolution-max-scc-analysis-depth", cl::Hidden, +# 238| cl::desc("Maximum amount of nodes to process while searching SCEVUnknown " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:243: constructor_uses_global_object: The constructor of global object "EnableFiniteLoopControl" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFiniteLoopControl" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 241| +# 242| static cl::opt +# 243|-> EnableFiniteLoopControl("scalar-evolution-finite-loop", cl::Hidden, +# 244| cl::desc("Handle <= and >= in finite loops"), +# 245| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:247: constructor_uses_global_object: The constructor of global object "UseContextForNoWrapFlagInference" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseContextForNoWrapFlagInference" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 245| cl::init(true)); +# 246| +# 247|-> static cl::opt UseContextForNoWrapFlagInference( +# 248| "scalar-evolution-use-context-for-no-wrap-flag-strenghening", cl::Hidden, +# 249| cl::desc("Infer nuw/nsw flags using context where suitable"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScopedNoAliasAA.cpp:51: constructor_uses_global_object: The constructor of global object "EnableScopedNoAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableScopedNoAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| // can also be achieved by stripping the associated metadata tags from IR, but +# 50| // this option is sometimes more convenient. +# 51|-> static cl::opt EnableScopedNoAlias("enable-scoped-noalias", +# 52| cl::init(true), cl::Hidden); +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/StackSafetyAnalysis.cpp:62: constructor_uses_global_object: The constructor of global object "StackSafetyMaxIterations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSafetyMaxIterations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| +# 62|-> static cl::opt StackSafetyMaxIterations("stack-safety-max-iterations", +# 63| cl::init(20), cl::Hidden); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/StackSafetyAnalysis.cpp:65: constructor_uses_global_object: The constructor of global object "StackSafetyPrint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSafetyPrint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::init(20), cl::Hidden); +# 64| +# 65|-> static cl::opt StackSafetyPrint("stack-safety-print", cl::init(false), +# 66| cl::Hidden); +# 67| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/StackSafetyAnalysis.cpp:68: constructor_uses_global_object: The constructor of global object "StackSafetyRun" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSafetyRun" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| cl::Hidden); +# 67| +# 68|-> static cl::opt StackSafetyRun("stack-safety-run", cl::init(false), +# 69| cl::Hidden); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetLibraryInfo.cpp:20: constructor_uses_global_object: The constructor of global object "ClVectorLibrary" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClVectorLibrary" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 18| using namespace llvm; +# 19| +# 20|-> static cl::opt ClVectorLibrary( +# 21| "vector-library", cl::Hidden, cl::desc("Vector functions library"), +# 22| cl::init(TargetLibraryInfoImpl::NoLibrary), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetTransformInfo.cpp:31: constructor_uses_global_object: The constructor of global object "EnableReduxCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableReduxCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| #define DEBUG_TYPE "tti" +# 30| +# 31|-> static cl::opt EnableReduxCost("costmodel-reduxcost", cl::init(false), +# 32| cl::Hidden, +# 33| cl::desc("Recognize reduction patterns.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetTransformInfo.cpp:35: constructor_uses_global_object: The constructor of global object "CacheLineSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CacheLineSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| cl::desc("Recognize reduction patterns.")); +# 34| +# 35|-> static cl::opt CacheLineSize( +# 36| "cache-line-size", cl::init(0), cl::Hidden, +# 37| cl::desc("Use this to override the target cache line size when " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetTransformInfo.cpp:40: constructor_uses_global_object: The constructor of global object "PredictableBranchThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PredictableBranchThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| "specified by the user.")); +# 39| +# 40|-> static cl::opt PredictableBranchThreshold( +# 41| "predictable-branch-threshold", cl::init(99), cl::Hidden, +# 42| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TrainingLogger.cpp:32: constructor_uses_global_object: The constructor of global object "UseSimpleLogger" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseSimpleLogger" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| // FIXME(mtrofin): remove the flag altogether +# 31| static cl::opt +# 32|-> UseSimpleLogger("tfutils-use-simplelogger", cl::init(true), cl::Hidden, +# 33| cl::desc("Output simple (non-protobuf) log.")); +# 34| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TypeBasedAliasAnalysis.cpp:130: constructor_uses_global_object: The constructor of global object "EnableTBAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTBAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| // achieved by stripping the !tbaa tags from IR, but this option is sometimes +# 129| // more convenient. +# 130|-> static cl::opt EnableTBAA("enable-tbaa", cl::init(true), cl::Hidden); +# 131| +# 132| namespace { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ValueTracking.cpp:85: constructor_uses_global_object: The constructor of global object "DomConditionsMaxUses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DomConditionsMaxUses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| // Controls the number of uses of the value searched for possible +# 84| // dominating comparisons. +# 85|-> static cl::opt DomConditionsMaxUses("dom-conditions-max-uses", +# 86| cl::Hidden, cl::init(20)); +# 87| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:35: constructor_uses_global_object: The constructor of global object "MaxInterleaveGroupFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxInterleaveGroupFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| /// Maximum factor for an interleaved memory access. +# 35|-> static cl::opt MaxInterleaveGroupFactor( +# 36| "max-interleave-group-factor", cl::Hidden, +# 37| cl::desc("Maximum factor for an interleaved access group (default = 8)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:93: constructor_uses_global_object: The constructor of global object "PrintSummaryGUIDs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintSummaryGUIDs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| using namespace llvm; +# 92| +# 93|-> static cl::opt PrintSummaryGUIDs( +# 94| "print-summary-global-ids", cl::init(false), cl::Hidden, +# 95| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:98: constructor_uses_global_object: The constructor of global object "ExpandConstantExprs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandConstantExprs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| "Print the global id for each value when reading the module summary")); +# 97| +# 98|-> static cl::opt ExpandConstantExprs( +# 99| "expand-constant-exprs", cl::Hidden, +# 100| cl::desc( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3042: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), llvm::APInt(16U, (uint16_t)Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3042: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3040| return error("Invalid float const record"); +# 3041| if (CurTy->isHalfTy()) +# 3042|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEhalf(), +# 3043| APInt(16, (uint16_t)Record[0]))); +# 3044| else if (CurTy->isBFloatTy()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3045: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::BFloat(), llvm::APInt(16U, (uint32_t)Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3045: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3043| APInt(16, (uint16_t)Record[0]))); +# 3044| else if (CurTy->isBFloatTy()) +# 3045|-> V = ConstantFP::get(Context, APFloat(APFloat::BFloat(), +# 3046| APInt(16, (uint32_t)Record[0]))); +# 3047| else if (CurTy->isFloatTy()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3048: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, (uint32_t)Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3048: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3046| APInt(16, (uint32_t)Record[0]))); +# 3047| else if (CurTy->isFloatTy()) +# 3048|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEsingle(), +# 3049| APInt(32, (uint32_t)Record[0]))); +# 3050| else if (CurTy->isDoubleTy()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3051: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3051: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3049| APInt(32, (uint32_t)Record[0]))); +# 3050| else if (CurTy->isDoubleTy()) +# 3051|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEdouble(), +# 3052| APInt(64, Record[0]))); +# 3053| else if (CurTy->isX86_FP80Ty()) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3058: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), llvm::APInt(80U, llvm::ArrayRef(Rearrange)))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3058: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3056| Rearrange[0] = (Record[1] & 0xffffLL) | (Record[0] << 16); +# 3057| Rearrange[1] = Record[0] >> 48; +# 3058|-> V = ConstantFP::get(Context, APFloat(APFloat::x87DoubleExtended(), +# 3059| APInt(80, Rearrange))); +# 3060| } else if (CurTy->isFP128Ty()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3061: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3061: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3059| APInt(80, Rearrange))); +# 3060| } else if (CurTy->isFP128Ty()) +# 3061|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEquad(), +# 3062| APInt(128, Record))); +# 3063| else if (CurTy->isPPC_FP128Ty()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3064: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3064: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3062| APInt(128, Record))); +# 3063| else if (CurTy->isPPC_FP128Ty()) +# 3064|-> V = ConstantFP::get(Context, APFloat(APFloat::PPCDoubleDouble(), +# 3065| APInt(128, Record))); +# 3066| else + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/MetadataLoader.cpp:78: constructor_uses_global_object: The constructor of global object "ImportFullTypeDefinitions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ImportFullTypeDefinitions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| /// Flag whether we need to import full type definitions for ThinLTO. +# 77| /// Currently needed for Darwin and LLDB. +# 78|-> static cl::opt ImportFullTypeDefinitions( +# 79| "import-full-type-definitions", cl::init(false), cl::Hidden, +# 80| cl::desc("Import full type definitions for ThinLTO.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/MetadataLoader.cpp:82: constructor_uses_global_object: The constructor of global object "DisableLazyLoading" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLazyLoading" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| cl::desc("Import full type definitions for ThinLTO.")); +# 81| +# 82|-> static cl::opt DisableLazyLoading( +# 83| "disable-ondemand-mds-loading", cl::init(false), cl::Hidden, +# 84| cl::desc("Force disable the lazy-loading on-demand of metadata when " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Writer/BitcodeWriter.cpp:87: constructor_uses_global_object: The constructor of global object "IndexThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IndexThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| +# 86| static cl::opt +# 87|-> IndexThreshold("bitcode-mdindex-threshold", cl::Hidden, cl::init(25), +# 88| cl::desc("Number of metadatas above which we emit an index " +# 89| "to enable lazy-loading")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Writer/BitcodeWriter.cpp:90: constructor_uses_global_object: The constructor of global object "FlushThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FlushThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| cl::desc("Number of metadatas above which we emit an index " +# 89| "to enable lazy-loading")); +# 90|-> static cl::opt FlushThreshold( +# 91| "bitcode-flush-threshold", cl::Hidden, cl::init(512), +# 92| cl::desc("The threshold (unit M) for flushing LLVM bitcode.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Writer/BitcodeWriter.cpp:94: constructor_uses_global_object: The constructor of global object "WriteRelBFToSummary" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WriteRelBFToSummary" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| cl::desc("The threshold (unit M) for flushing LLVM bitcode.")); +# 93| +# 94|-> static cl::opt WriteRelBFToSummary( +# 95| "write-relbf-to-summary", cl::Hidden, cl::init(false), +# 96| cl::desc("Write relative block frequency to function summary ")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AggressiveAntiDepBreaker.cpp:45: constructor_uses_global_object: The constructor of global object "DebugDiv" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugDiv" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| // If DebugDiv > 0 then only break antidep with (ID % DebugDiv) == DebugMod +# 44| static cl::opt +# 45|-> DebugDiv("agg-antidep-debugdiv", +# 46| cl::desc("Debug control for aggressive anti-dep breaker"), +# 47| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AggressiveAntiDepBreaker.cpp:50: constructor_uses_global_object: The constructor of global object "DebugMod" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugMod" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> DebugMod("agg-antidep-debugmod", +# 51| cl::desc("Debug control for aggressive anti-dep breaker"), +# 52| cl::init(0), cl::Hidden); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/AccelTable.cpp:408: var_decl: Declaring variable "UA". +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/AccelTable.cpp:415: uninit_use: Using uninitialized value "UA". Field "UA.InlineElts" is uninitialized. +# 413| } +# 414| UA.push_back({dwarf::DW_IDX_die_offset, dwarf::DW_FORM_ref4}); +# 415|-> return UA; +# 416| } +# 417| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:134: constructor_uses_global_object: The constructor of global object "BasicBlockProfileDump[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BasicBlockProfileDump[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| #define DEBUG_TYPE "asm-printer" +# 133| +# 134|-> static cl::opt BasicBlockProfileDump( +# 135| "mbb-profile-dump", cl::Hidden, +# 136| cl::desc("Basic block profile dump for external cost modelling. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp:30: constructor_uses_global_object: The constructor of global object "TrimVarLocs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TrimVarLocs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| /// If true, we drop variable location ranges which exist entirely outside the +# 29| /// variable's lexical scope instruction ranges. +# 30|-> static cl::opt TrimVarLocs("trim-var-locs", cl::Hidden, cl::init(true)); +# 31| +# 32| std::optional + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:69: constructor_uses_global_object: The constructor of global object "UseDwarfRangesBaseAddressSpecifier" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseDwarfRangesBaseAddressSpecifier" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| STATISTIC(NumCSParams, "Number of dbg call site params created"); +# 68| +# 69|-> static cl::opt UseDwarfRangesBaseAddressSpecifier( +# 70| "use-dwarf-ranges-base-address-specifier", cl::Hidden, +# 71| cl::desc("Use base address specifiers in debug_ranges"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:73: constructor_uses_global_object: The constructor of global object "GenerateARangeSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateARangeSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::desc("Use base address specifiers in debug_ranges"), cl::init(false)); +# 72| +# 73|-> static cl::opt GenerateARangeSection("generate-arange-section", +# 74| cl::Hidden, +# 75| cl::desc("Generate dwarf aranges"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:79: constructor_uses_global_object: The constructor of global object "GenerateDwarfTypeUnits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateDwarfTypeUnits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> GenerateDwarfTypeUnits("generate-type-units", cl::Hidden, +# 80| cl::desc("Generate DWARF4 type units."), +# 81| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:83: constructor_uses_global_object: The constructor of global object "SplitDwarfCrossCuReferences" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitDwarfCrossCuReferences" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| cl::init(false)); +# 82| +# 83|-> static cl::opt SplitDwarfCrossCuReferences( +# 84| "split-dwarf-cross-cu-references", cl::Hidden, +# 85| cl::desc("Enable cross-cu references in DWO files"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:89: constructor_uses_global_object: The constructor of global object "UnknownLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnknownLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| enum DefaultOnOff { Default, Enable, Disable }; +# 88| +# 89|-> static cl::opt UnknownLocations( +# 90| "use-unknown-locations", cl::Hidden, +# 91| cl::desc("Make an absence of debug location information explicit."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:96: constructor_uses_global_object: The constructor of global object "AccelTables" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AccelTables" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| cl::init(Default)); +# 95| +# 96|-> static cl::opt AccelTables( +# 97| "accel-tables", cl::Hidden, cl::desc("Output dwarf accelerator tables."), +# 98| cl::values(clEnumValN(AccelTableKind::Default, "Default", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:106: constructor_uses_global_object: The constructor of global object "DwarfInlinedStrings" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfInlinedStrings" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| +# 105| static cl::opt +# 106|-> DwarfInlinedStrings("dwarf-inlined-strings", cl::Hidden, +# 107| cl::desc("Use inlined strings rather than string section."), +# 108| cl::values(clEnumVal(Default, "Default for platform"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:114: constructor_uses_global_object: The constructor of global object "NoDwarfRangesSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoDwarfRangesSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| +# 113| static cl::opt +# 114|-> NoDwarfRangesSection("no-dwarf-ranges-section", cl::Hidden, +# 115| cl::desc("Disable emission .debug_ranges section."), +# 116| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:118: constructor_uses_global_object: The constructor of global object "DwarfSectionsAsReferences" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfSectionsAsReferences" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| cl::init(false)); +# 117| +# 118|-> static cl::opt DwarfSectionsAsReferences( +# 119| "dwarf-sections-as-references", cl::Hidden, +# 120| cl::desc("Use sections+offset as references rather than labels."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:126: constructor_uses_global_object: The constructor of global object "UseGNUDebugMacro" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseGNUDebugMacro" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| +# 125| static cl::opt +# 126|-> UseGNUDebugMacro("use-gnu-debug-macro", cl::Hidden, +# 127| cl::desc("Emit the GNU .debug_macro format with DWARF <5"), +# 128| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:130: constructor_uses_global_object: The constructor of global object "DwarfOpConvert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfOpConvert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| cl::init(false)); +# 129| +# 130|-> static cl::opt DwarfOpConvert( +# 131| "dwarf-op-convert", cl::Hidden, +# 132| cl::desc("Enable use of the DWARFv5 DW_OP_convert operator"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:144: constructor_uses_global_object: The constructor of global object "DwarfLinkageNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfLinkageNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 142| +# 143| static cl::opt +# 144|-> DwarfLinkageNames("dwarf-linkage-names", cl::Hidden, +# 145| cl::desc("Which DWARF linkage-name attributes to emit."), +# 146| cl::values(clEnumValN(DefaultLinkageNames, "Default", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:153: constructor_uses_global_object: The constructor of global object "MinimizeAddrInV5Option" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MinimizeAddrInV5Option" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| cl::init(DefaultLinkageNames)); +# 152| +# 153|-> static cl::opt MinimizeAddrInV5Option( +# 154| "minimize-addr-in-v5", cl::Hidden, +# 155| cl::desc("Always use DW_AT_ranges in DWARFv5 whenever it could allow more " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1569: var_decl: Declaring variable "LocEntry". +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1570: uninit_use_in_call: Using uninitialized value "LocEntry". Field "LocEntry.Constant" is uninitialized when calling "DbgValueLoc". +# 1568| MachineLocation MLoc(VI.getEntryValueRegister(), /*IsIndirect*/ true); +# 1569| auto LocEntry = DbgValueLocEntry(MLoc); +# 1570|-> RegVar->initializeDbgValue(DbgValueLoc(VI.Expr, LocEntry)); +# 1571| } +# 1572| LLVM_DEBUG(dbgs() << "Created DbgVariable for " << VI.Var->getName() + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:41: constructor_uses_global_object: The constructor of global object "MaxNumBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxNumBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> MaxNumBlocks("debug-ata-max-blocks", cl::init(10000), +# 42| cl::desc("Maximum num basic blocks before debug info dropped"), +# 43| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:46: constructor_uses_global_object: The constructor of global object "EnableMemLocFragFill" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemLocFragFill" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| /// Option for debugging the pass, determines if the memory location fragment +# 45| /// filling happens after generating the variable locations. +# 46|-> static cl::opt EnableMemLocFragFill("mem-loc-frag-fill", cl::init(true), +# 47| cl::Hidden); +# 48| /// Print the results of the analysis. Respects -filter-print-funcs. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:49: constructor_uses_global_object: The constructor of global object "PrintResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::Hidden); +# 48| /// Print the results of the analysis. Respects -filter-print-funcs. +# 49|-> static cl::opt PrintResults("print-debug-ata", cl::init(false), +# 50| cl::Hidden); +# 51| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:56: constructor_uses_global_object: The constructor of global object "CoalesceAdjacentFragmentsOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CoalesceAdjacentFragmentsOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| /// construction for each explicitly stated variable fragment. +# 55| static cl::opt +# 56|-> CoalesceAdjacentFragmentsOpt("debug-ata-coalesce-frags", cl::Hidden); +# 57| +# 58| // Implicit conversions are disabled for enum class types, so unfortunately we + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BasicBlockSections.cpp:89: constructor_uses_global_object: The constructor of global object "llvm::BBSectionsColdTextPrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::BBSectionsColdTextPrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| // section granularity. Defaults to ".text.split." which is recognized by lld +# 88| // via the `-z keep-text-section-prefix` flag. +# 89|-> cl::opt llvm::BBSectionsColdTextPrefix( +# 90| "bbsections-cold-text-prefix", +# 91| cl::desc("The text prefix to use for cold basic block clusters"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BasicBlockSections.cpp:94: constructor_uses_global_object: The constructor of global object "BBSectionsDetectSourceDrift" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BBSectionsDetectSourceDrift" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| cl::init(".text.split."), cl::Hidden); +# 93| +# 94|-> static cl::opt BBSectionsDetectSourceDrift( +# 95| "bbsections-detect-source-drift", +# 96| cl::desc("This checks if there is a fdo instr. profile hash " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BasicTargetTransformInfo.cpp:28: constructor_uses_global_object: The constructor of global object "llvm::PartialUnrollingThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PartialUnrollingThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| // provide a definition. +# 27| cl::opt +# 28|-> llvm::PartialUnrollingThreshold("partial-unrolling-threshold", cl::init(0), +# 29| cl::desc("Threshold for partial unrolling"), +# 30| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BranchFolding.cpp:73: constructor_uses_global_object: The constructor of global object "FlagEnableTailMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FlagEnableTailMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| STATISTIC(NumTailCalls, "Number of tail calls optimized"); +# 72| +# 73|-> static cl::opt FlagEnableTailMerge("enable-tail-merge", +# 74| cl::init(cl::BOU_UNSET), cl::Hidden); +# 75| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BranchFolding.cpp:78: constructor_uses_global_object: The constructor of global object "TailMergeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailMergeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| // Throttle for huge numbers of predecessors (compile speed problems) +# 77| static cl::opt +# 78|-> TailMergeThreshold("tail-merge-threshold", +# 79| cl::desc("Max number of predecessors to consider tail merging"), +# 80| cl::init(150), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BranchFolding.cpp:85: constructor_uses_global_object: The constructor of global object "TailMergeSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailMergeSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| // TODO: This should be replaced with a target query. +# 84| static cl::opt +# 85|-> TailMergeSize("tail-merge-size", +# 86| cl::desc("Min number of instructions to consider tail merging"), +# 87| cl::init(3), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CFIInstrInserter.cpp:31: constructor_uses_global_object: The constructor of global object "VerifyCFI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyCFI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt VerifyCFI("verify-cfiinstrs", +# 32| cl::desc("Verify Call Frame Information instructions"), +# 33| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:135: constructor_uses_global_object: The constructor of global object "DisableBranchOpts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBranchOpts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| STATISTIC(NumStoreExtractExposed, "Number of store(extractelement) exposed"); +# 134| +# 135|-> static cl::opt DisableBranchOpts( +# 136| "disable-cgp-branch-opts", cl::Hidden, cl::init(false), +# 137| cl::desc("Disable branch optimizations in CodeGenPrepare")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:140: constructor_uses_global_object: The constructor of global object "DisableGCOpts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableGCOpts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> DisableGCOpts("disable-cgp-gc-opts", cl::Hidden, cl::init(false), +# 141| cl::desc("Disable GC optimizations in CodeGenPrepare")); +# 142| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:144: constructor_uses_global_object: The constructor of global object "DisableSelectToBranch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSelectToBranch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 142| +# 143| static cl::opt +# 144|-> DisableSelectToBranch("disable-cgp-select2branch", cl::Hidden, +# 145| cl::init(false), +# 146| cl::desc("Disable select to branch conversion.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:149: constructor_uses_global_object: The constructor of global object "AddrSinkUsingGEPs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkUsingGEPs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| +# 148| static cl::opt +# 149|-> AddrSinkUsingGEPs("addr-sink-using-gep", cl::Hidden, cl::init(true), +# 150| cl::desc("Address sinking in CGP using GEPs.")); +# 151| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:153: constructor_uses_global_object: The constructor of global object "EnableAndCmpSinking" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAndCmpSinking" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| +# 152| static cl::opt +# 153|-> EnableAndCmpSinking("enable-andcmp-sinking", cl::Hidden, cl::init(true), +# 154| cl::desc("Enable sinkinig and/cmp into branches.")); +# 155| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:156: constructor_uses_global_object: The constructor of global object "DisableStoreExtract" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableStoreExtract" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 154| cl::desc("Enable sinkinig and/cmp into branches.")); +# 155| +# 156|-> static cl::opt DisableStoreExtract( +# 157| "disable-cgp-store-extract", cl::Hidden, cl::init(false), +# 158| cl::desc("Disable store(extract) optimizations in CodeGenPrepare")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:160: constructor_uses_global_object: The constructor of global object "StressStoreExtract" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressStoreExtract" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 158| cl::desc("Disable store(extract) optimizations in CodeGenPrepare")); +# 159| +# 160|-> static cl::opt StressStoreExtract( +# 161| "stress-cgp-store-extract", cl::Hidden, cl::init(false), +# 162| cl::desc("Stress test store(extract) optimizations in CodeGenPrepare")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:164: constructor_uses_global_object: The constructor of global object "DisableExtLdPromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableExtLdPromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 162| cl::desc("Stress test store(extract) optimizations in CodeGenPrepare")); +# 163| +# 164|-> static cl::opt DisableExtLdPromotion( +# 165| "disable-cgp-ext-ld-promotion", cl::Hidden, cl::init(false), +# 166| cl::desc("Disable ext(promotable(ld)) -> promoted(ext(ld)) optimization in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:169: constructor_uses_global_object: The constructor of global object "StressExtLdPromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressExtLdPromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 167| "CodeGenPrepare")); +# 168| +# 169|-> static cl::opt StressExtLdPromotion( +# 170| "stress-cgp-ext-ld-promotion", cl::Hidden, cl::init(false), +# 171| cl::desc("Stress test ext(promotable(ld)) -> promoted(ext(ld)) " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:174: constructor_uses_global_object: The constructor of global object "DisablePreheaderProtect" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePreheaderProtect" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 172| "optimization in CodeGenPrepare")); +# 173| +# 174|-> static cl::opt DisablePreheaderProtect( +# 175| "disable-preheader-prot", cl::Hidden, cl::init(false), +# 176| cl::desc("Disable protection against removing loop preheaders")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:178: constructor_uses_global_object: The constructor of global object "ProfileGuidedSectionPrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileGuidedSectionPrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 176| cl::desc("Disable protection against removing loop preheaders")); +# 177| +# 178|-> static cl::opt ProfileGuidedSectionPrefix( +# 179| "profile-guided-section-prefix", cl::Hidden, cl::init(true), +# 180| cl::desc("Use profile info to add section prefix for hot/cold functions")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:182: constructor_uses_global_object: The constructor of global object "ProfileUnknownInSpecialSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileUnknownInSpecialSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 180| cl::desc("Use profile info to add section prefix for hot/cold functions")); +# 181| +# 182|-> static cl::opt ProfileUnknownInSpecialSection( +# 183| "profile-unknown-in-special-section", cl::Hidden, +# 184| cl::desc("In profiling mode like sampleFDO, if a function doesn't have " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:192: constructor_uses_global_object: The constructor of global object "BBSectionsGuidedSectionPrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BBSectionsGuidedSectionPrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 190| "RAM for example. ")); +# 191| +# 192|-> static cl::opt BBSectionsGuidedSectionPrefix( +# 193| "bbsections-guided-section-prefix", cl::Hidden, cl::init(true), +# 194| cl::desc("Use the basic-block-sections profile to determine the text " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:201: constructor_uses_global_object: The constructor of global object "FreqRatioToSkipMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FreqRatioToSkipMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 199| "profiles.")); +# 200| +# 201|-> static cl::opt FreqRatioToSkipMerge( +# 202| "cgp-freq-ratio-to-skip-merge", cl::Hidden, cl::init(2), +# 203| cl::desc("Skip merging empty blocks if (frequency of empty block) / " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:206: constructor_uses_global_object: The constructor of global object "ForceSplitStore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceSplitStore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 204| "(frequency of destination block) is greater than this ratio")); +# 205| +# 206|-> static cl::opt ForceSplitStore( +# 207| "force-split-store", cl::Hidden, cl::init(false), +# 208| cl::desc("Force store splitting no matter what the target query says.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:210: constructor_uses_global_object: The constructor of global object "EnableTypePromotionMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTypePromotionMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 208| cl::desc("Force store splitting no matter what the target query says.")); +# 209| +# 210|-> static cl::opt EnableTypePromotionMerge( +# 211| "cgp-type-promotion-merge", cl::Hidden, +# 212| cl::desc("Enable merging of redundant sexts when one is dominating" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:216: constructor_uses_global_object: The constructor of global object "DisableComplexAddrModes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableComplexAddrModes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 214| cl::init(true)); +# 215| +# 216|-> static cl::opt DisableComplexAddrModes( +# 217| "disable-complex-addr-modes", cl::Hidden, cl::init(false), +# 218| cl::desc("Disables combining addressing modes with different parts " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:222: constructor_uses_global_object: The constructor of global object "AddrSinkNewPhis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkNewPhis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 220| +# 221| static cl::opt +# 222|-> AddrSinkNewPhis("addr-sink-new-phis", cl::Hidden, cl::init(false), +# 223| cl::desc("Allow creation of Phis in Address sinking.")); +# 224| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:225: constructor_uses_global_object: The constructor of global object "AddrSinkNewSelects" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkNewSelects" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 223| cl::desc("Allow creation of Phis in Address sinking.")); +# 224| +# 225|-> static cl::opt AddrSinkNewSelects( +# 226| "addr-sink-new-select", cl::Hidden, cl::init(true), +# 227| cl::desc("Allow creation of selects in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:229: constructor_uses_global_object: The constructor of global object "AddrSinkCombineBaseReg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineBaseReg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 227| cl::desc("Allow creation of selects in Address sinking.")); +# 228| +# 229|-> static cl::opt AddrSinkCombineBaseReg( +# 230| "addr-sink-combine-base-reg", cl::Hidden, cl::init(true), +# 231| cl::desc("Allow combining of BaseReg field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:233: constructor_uses_global_object: The constructor of global object "AddrSinkCombineBaseGV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineBaseGV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 231| cl::desc("Allow combining of BaseReg field in Address sinking.")); +# 232| +# 233|-> static cl::opt AddrSinkCombineBaseGV( +# 234| "addr-sink-combine-base-gv", cl::Hidden, cl::init(true), +# 235| cl::desc("Allow combining of BaseGV field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:237: constructor_uses_global_object: The constructor of global object "AddrSinkCombineBaseOffs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineBaseOffs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 235| cl::desc("Allow combining of BaseGV field in Address sinking.")); +# 236| +# 237|-> static cl::opt AddrSinkCombineBaseOffs( +# 238| "addr-sink-combine-base-offs", cl::Hidden, cl::init(true), +# 239| cl::desc("Allow combining of BaseOffs field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:241: constructor_uses_global_object: The constructor of global object "AddrSinkCombineScaledReg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineScaledReg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 239| cl::desc("Allow combining of BaseOffs field in Address sinking.")); +# 240| +# 241|-> static cl::opt AddrSinkCombineScaledReg( +# 242| "addr-sink-combine-scaled-reg", cl::Hidden, cl::init(true), +# 243| cl::desc("Allow combining of ScaledReg field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:246: constructor_uses_global_object: The constructor of global object "EnableGEPOffsetSplit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGEPOffsetSplit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 244| +# 245| static cl::opt +# 246|-> EnableGEPOffsetSplit("cgp-split-large-offset-gep", cl::Hidden, +# 247| cl::init(true), +# 248| cl::desc("Enable splitting large offset of GEP.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:250: constructor_uses_global_object: The constructor of global object "EnableICMP_EQToICMP_ST" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableICMP_EQToICMP_ST" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 248| cl::desc("Enable splitting large offset of GEP.")); +# 249| +# 250|-> static cl::opt EnableICMP_EQToICMP_ST( +# 251| "cgp-icmp-eq2icmp-st", cl::Hidden, cl::init(false), +# 252| cl::desc("Enable ICMP_EQ to ICMP_S(L|G)T conversion.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:255: constructor_uses_global_object: The constructor of global object "VerifyBFIUpdates" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyBFIUpdates" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 253| +# 254| static cl::opt +# 255|-> VerifyBFIUpdates("cgp-verify-bfi-updates", cl::Hidden, cl::init(false), +# 256| cl::desc("Enable BFI update verification for " +# 257| "CodeGenPrepare.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:260: constructor_uses_global_object: The constructor of global object "OptimizePhiTypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptimizePhiTypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 258| +# 259| static cl::opt +# 260|-> OptimizePhiTypes("cgp-optimize-phi-types", cl::Hidden, cl::init(true), +# 261| cl::desc("Enable converting phi types in CodeGenPrepare")); +# 262| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:264: constructor_uses_global_object: The constructor of global object "HugeFuncThresholdInCGPP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeFuncThresholdInCGPP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 262| +# 263| static cl::opt +# 264|-> HugeFuncThresholdInCGPP("cgpp-huge-func", cl::init(10000), cl::Hidden, +# 265| cl::desc("Least BB number of huge function.")); +# 266| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:268: constructor_uses_global_object: The constructor of global object "MaxAddressUsersToScan" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxAddressUsersToScan" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 266| +# 267| static cl::opt +# 268|-> MaxAddressUsersToScan("cgp-max-address-users-to-scan", cl::init(100), +# 269| cl::Hidden, +# 270| cl::desc("Max number of address users to look at")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ComplexDeinterleavingPass.cpp:83: constructor_uses_global_object: The constructor of global object "ComplexDeinterleavingEnabled" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ComplexDeinterleavingEnabled" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| STATISTIC(NumComplexTransformations, "Amount of complex patterns transformed"); +# 82| +# 83|-> static cl::opt ComplexDeinterleavingEnabled( +# 84| "enable-complex-deinterleaving", +# 85| cl::desc("Enable generation of complex instructions"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/DFAPacketizer.cpp:48: constructor_uses_global_object: The constructor of global object "InstrLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InstrLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| #define DEBUG_TYPE "packets" +# 47| +# 48|-> static cl::opt InstrLimit("dfa-instr-limit", cl::Hidden, +# 49| cl::init(0), cl::desc("If present, stops packetizing after N instructions")); +# 50| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/EarlyIfConversion.cpp:48: constructor_uses_global_object: The constructor of global object "BlockInstrLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockInstrLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| // This bypasses all other heuristics, so it should be set fairly high. +# 47| static cl::opt +# 48|-> BlockInstrLimit("early-ifcvt-limit", cl::init(30), cl::Hidden, +# 49| cl::desc("Maximum number of instructions per speculated block.")); +# 50| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/EarlyIfConversion.cpp:52: constructor_uses_global_object: The constructor of global object "Stress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Stress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| +# 51| // Stress testing mode - disable heuristics. +# 52|-> static cl::opt Stress("stress-early-ifcvt", cl::Hidden, +# 53| cl::desc("Turn all knobs to 11")); +# 54| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/EdgeBundles.cpp:26: constructor_uses_global_object: The constructor of global object "ViewEdgeBundles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewEdgeBundles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> ViewEdgeBundles("view-edge-bundles", cl::Hidden, +# 27| cl::desc("Pop up a window to show edge bundle graphs")); +# 28| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandLargeDivRem.cpp:36: constructor_uses_global_object: The constructor of global object "ExpandDivRemBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandDivRemBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> ExpandDivRemBits("expand-div-rem-bits", cl::Hidden, +# 37| cl::init(llvm::IntegerType::MAX_INT_BITS), +# 38| cl::desc("div and rem instructions on integers with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandLargeFpConvert.cpp:35: constructor_uses_global_object: The constructor of global object "ExpandFpConvertBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandFpConvertBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> ExpandFpConvertBits("expand-fp-convert-bits", cl::Hidden, +# 36| cl::init(llvm::IntegerType::MAX_INT_BITS), +# 37| cl::desc("fp convert instructions on integers with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:47: constructor_uses_global_object: The constructor of global object "MemCmpEqZeroNumLoadsPerBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemCmpEqZeroNumLoadsPerBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| STATISTIC(NumMemCmpInlined, "Number of inlined memcmp calls"); +# 46| +# 47|-> static cl::opt MemCmpEqZeroNumLoadsPerBlock( +# 48| "memcmp-num-loads-per-block", cl::Hidden, cl::init(1), +# 49| cl::desc("The number of loads per basic block for inline expansion of " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:52: constructor_uses_global_object: The constructor of global object "MaxLoadsPerMemcmp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxLoadsPerMemcmp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| "memcmp that is only being compared against zero.")); +# 51| +# 52|-> static cl::opt MaxLoadsPerMemcmp( +# 53| "max-loads-per-memcmp", cl::Hidden, +# 54| cl::desc("Set maximum number of loads used in expanded memcmp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:56: constructor_uses_global_object: The constructor of global object "MaxLoadsPerMemcmpOptSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxLoadsPerMemcmpOptSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| cl::desc("Set maximum number of loads used in expanded memcmp")); +# 55| +# 56|-> static cl::opt MaxLoadsPerMemcmpOptSize( +# 57| "max-loads-per-memcmp-opt-size", cl::Hidden, +# 58| cl::desc("Set maximum number of loads used in expanded memcmp for -Os/Oz")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandVectorPredication.cpp:48: constructor_uses_global_object: The constructor of global object "EVLTransformOverride[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EVLTransformOverride[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| // Override options. +# 48|-> static cl::opt EVLTransformOverride( +# 49| "expandvp-override-evl-transform", cl::init(""), cl::Hidden, +# 50| cl::desc("Options: " VPINTERNAL_VPLEGAL_CASES + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandVectorPredication.cpp:56: constructor_uses_global_object: The constructor of global object "MaskTransformOverride[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaskTransformOverride[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| "testing).")); +# 55| +# 56|-> static cl::opt MaskTransformOverride( +# 57| "expandvp-override-mask-transform", cl::init(""), cl::Hidden, +# 58| cl::desc("Options: " VPINTERNAL_VPLEGAL_CASES + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:40: constructor_uses_global_object: The constructor of global object "FixupSCSExtendSlotSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixupSCSExtendSlotSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| STATISTIC(NumSpillSlotsExtended, "Number of spill slots extended"); +# 39| +# 40|-> static cl::opt FixupSCSExtendSlotSize( +# 41| "fixup-scs-extend-slot-size", cl::Hidden, cl::init(false), +# 42| cl::desc("Allow spill in spill slot of greater size than register size"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:45: constructor_uses_global_object: The constructor of global object "PassGCPtrInCSR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PassGCPtrInCSR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::Hidden); +# 44| +# 45|-> static cl::opt PassGCPtrInCSR( +# 46| "fixup-allow-gcptr-in-csr", cl::Hidden, cl::init(false), +# 47| cl::desc("Allow passing GC Pointer arguments in callee saved registers")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:49: constructor_uses_global_object: The constructor of global object "EnableCopyProp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCopyProp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::desc("Allow passing GC Pointer arguments in callee saved registers")); +# 48| +# 49|-> static cl::opt EnableCopyProp( +# 50| "fixup-scs-enable-copy-propagation", cl::Hidden, cl::init(true), +# 51| cl::desc("Enable simple copy propagation during register reloading")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:55: constructor_uses_global_object: The constructor of global object "MaxStatepointsWithRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxStatepointsWithRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| // This is purely debugging option. +# 54| // It may be handy for investigating statepoint spilling issues. +# 55|-> static cl::opt MaxStatepointsWithRegs( +# 56| "fixup-max-csr-statepoints", cl::Hidden, +# 57| cl::desc("Max number of statepoints allowed to pass GC Ptrs in registers")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Combiner.cpp:31: constructor_uses_global_object: The constructor of global object "llvm::GICombinerOptionCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "llvm::GICombinerOptionCategory" might be created before "GlobalParser" is available. +# 29| +# 30| namespace llvm { +# 31|-> cl::OptionCategory GICombinerOptionCategory( +# 32| "GlobalISel Combiner", +# 33| "Control the rules which are enabled. These options all take a comma " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp:47: constructor_uses_global_object: The constructor of global object "ForceLegalIndexing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceLegalIndexing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| // addressing. +# 46| static cl::opt +# 47|-> ForceLegalIndexing("force-legal-indexing", cl::Hidden, cl::init(false), +# 48| cl::desc("Force all indexed operations to be " +# 49| "legal for the GlobalISel combiner")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/IRTranslator.cpp:98: constructor_uses_global_object: The constructor of global object "EnableCSEInIRTranslator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCSEInIRTranslator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| +# 97| static cl::opt +# 98|-> EnableCSEInIRTranslator("enable-cse-in-irtranslator", +# 99| cl::desc("Should enable CSE in irtranslator"), +# 100| cl::Optional, cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Legalizer.cpp:39: constructor_uses_global_object: The constructor of global object "EnableCSEInLegalizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCSEInLegalizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> EnableCSEInLegalizer("enable-cse-in-legalizer", +# 40| cl::desc("Should enable CSE in Legalizer"), +# 41| cl::Optional, cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Legalizer.cpp:44: constructor_uses_global_object: The constructor of global object "AllowGInsertAsArtifact" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowGInsertAsArtifact" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| // This is a temporary hack, should be removed soon. +# 44|-> static cl::opt AllowGInsertAsArtifact( +# 45| "allow-ginsert-as-artifact", +# 46| cl::desc("Allow G_INSERT to be considered an artifact. Hack around AMDGPU " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/LegalizerInfo.cpp:32: constructor_uses_global_object: The constructor of global object "llvm::DisableGISelLegalityCheck" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableGISelLegalityCheck" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| #define DEBUG_TYPE "legalizer-info" +# 31| +# 32|-> cl::opt llvm::DisableGISelLegalityCheck( +# 33| "disable-gisel-legality-check", +# 34| cl::desc("Don't verify that MIR is fully legal between GlobalISel passes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/RegBankSelect.cpp:53: constructor_uses_global_object: The constructor of global object "RegBankSelectMode" itself makes use of global object "llvm::cl::AllSubCommands" defined in another compilation unit. The order of construction is unspecified, so "RegBankSelectMode" might be created before "llvm::cl::AllSubCommands" is available. +# 51| using namespace llvm; +# 52| +# 53|-> static cl::opt RegBankSelectMode( +# 54| cl::desc("Mode of the RegBankSelect pass"), cl::Hidden, cl::Optional, +# 55| cl::values(clEnumValN(RegBankSelect::Mode::Fast, "regbankselect-fast", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:108: constructor_uses_global_object: The constructor of global object "EnableGlobalMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| // FIXME: This is only useful as a last-resort way to disable the pass. +# 107| static cl::opt +# 108|-> EnableGlobalMerge("enable-global-merge", cl::Hidden, +# 109| cl::desc("Enable the global merge pass"), +# 110| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:113: constructor_uses_global_object: The constructor of global object "GlobalMergeMaxOffset" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalMergeMaxOffset" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| +# 112| static cl::opt +# 113|-> GlobalMergeMaxOffset("global-merge-max-offset", cl::Hidden, +# 114| cl::desc("Set maximum offset for global merge pass"), +# 115| cl::init(0)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:117: constructor_uses_global_object: The constructor of global object "GlobalMergeGroupByUse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalMergeGroupByUse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 115| cl::init(0)); +# 116| +# 117|-> static cl::opt GlobalMergeGroupByUse( +# 118| "global-merge-group-by-use", cl::Hidden, +# 119| cl::desc("Improve global merge pass to look at uses"), cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:121: constructor_uses_global_object: The constructor of global object "GlobalMergeIgnoreSingleUse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalMergeIgnoreSingleUse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| cl::desc("Improve global merge pass to look at uses"), cl::init(true)); +# 120| +# 121|-> static cl::opt GlobalMergeIgnoreSingleUse( +# 122| "global-merge-ignore-single-use", cl::Hidden, +# 123| cl::desc("Improve global merge pass to ignore globals only used alone"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:127: constructor_uses_global_object: The constructor of global object "EnableGlobalMergeOnConst" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMergeOnConst" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 125| +# 126| static cl::opt +# 127|-> EnableGlobalMergeOnConst("global-merge-on-const", cl::Hidden, +# 128| cl::desc("Enable global merge pass on constants"), +# 129| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:134: constructor_uses_global_object: The constructor of global object "EnableGlobalMergeOnExternal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMergeOnExternal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| // it if only we are sure this optimization could always benefit all targets. +# 133| static cl::opt +# 134|-> EnableGlobalMergeOnExternal("global-merge-on-external", cl::Hidden, +# 135| cl::desc("Enable global merge pass on external linkage")); +# 136| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:53: constructor_uses_global_object: The constructor of global object "ForceHardwareLoops" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceHardwareLoops" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| static cl::opt +# 53|-> ForceHardwareLoops("force-hardware-loops", cl::Hidden, cl::init(false), +# 54| cl::desc("Force hardware loops intrinsics to be inserted")); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:57: constructor_uses_global_object: The constructor of global object "ForceHardwareLoopPHI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceHardwareLoopPHI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| static cl::opt +# 57|-> ForceHardwareLoopPHI( +# 58| "force-hardware-loop-phi", cl::Hidden, cl::init(false), +# 59| cl::desc("Force hardware loop counter to be updated through a phi")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:62: constructor_uses_global_object: The constructor of global object "ForceNestedLoop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceNestedLoop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> ForceNestedLoop("force-nested-hardware-loop", cl::Hidden, cl::init(false), +# 63| cl::desc("Force allowance of nested hardware loops")); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:66: constructor_uses_global_object: The constructor of global object "LoopDecrement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoopDecrement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| static cl::opt +# 66|-> LoopDecrement("hardware-loop-decrement", cl::Hidden, cl::init(1), +# 67| cl::desc("Set the loop decrement value")); +# 68| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:70: constructor_uses_global_object: The constructor of global object "CounterBitWidth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CounterBitWidth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| +# 69| static cl::opt +# 70|-> CounterBitWidth("hardware-loop-counter-bitwidth", cl::Hidden, cl::init(32), +# 71| cl::desc("Set the loop counter bitwidth")); +# 72| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:74: constructor_uses_global_object: The constructor of global object "ForceGuardLoopEntry" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceGuardLoopEntry" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| +# 73| static cl::opt +# 74|-> ForceGuardLoopEntry( +# 75| "force-hardware-loop-guard", cl::Hidden, cl::init(false), +# 76| cl::desc("Force generation of loop guard intrinsic")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:61: constructor_uses_global_object: The constructor of global object "IfCvtFnStart" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtFnStart" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| +# 60| // Hidden options for help debugging. +# 61|-> static cl::opt IfCvtFnStart("ifcvt-fn-start", cl::init(-1), cl::Hidden); +# 62| static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63| static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:62: constructor_uses_global_object: The constructor of global object "IfCvtFnStop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtFnStop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| // Hidden options for help debugging. +# 61| static cl::opt IfCvtFnStart("ifcvt-fn-start", cl::init(-1), cl::Hidden); +# 62|-> static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63| static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); +# 64| static cl::opt DisableSimple("disable-ifcvt-simple", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:63: constructor_uses_global_object: The constructor of global object "IfCvtLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| static cl::opt IfCvtFnStart("ifcvt-fn-start", cl::init(-1), cl::Hidden); +# 62| static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63|-> static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); +# 64| static cl::opt DisableSimple("disable-ifcvt-simple", +# 65| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:64: constructor_uses_global_object: The constructor of global object "DisableSimple" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSimple" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63| static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); +# 64|-> static cl::opt DisableSimple("disable-ifcvt-simple", +# 65| cl::init(false), cl::Hidden); +# 66| static cl::opt DisableSimpleF("disable-ifcvt-simple-false", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:66: constructor_uses_global_object: The constructor of global object "DisableSimpleF" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSimpleF" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| static cl::opt DisableSimple("disable-ifcvt-simple", +# 65| cl::init(false), cl::Hidden); +# 66|-> static cl::opt DisableSimpleF("disable-ifcvt-simple-false", +# 67| cl::init(false), cl::Hidden); +# 68| static cl::opt DisableTriangle("disable-ifcvt-triangle", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:68: constructor_uses_global_object: The constructor of global object "DisableTriangle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTriangle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| static cl::opt DisableSimpleF("disable-ifcvt-simple-false", +# 67| cl::init(false), cl::Hidden); +# 68|-> static cl::opt DisableTriangle("disable-ifcvt-triangle", +# 69| cl::init(false), cl::Hidden); +# 70| static cl::opt DisableTriangleR("disable-ifcvt-triangle-rev", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:70: constructor_uses_global_object: The constructor of global object "DisableTriangleR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTriangleR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| static cl::opt DisableTriangle("disable-ifcvt-triangle", +# 69| cl::init(false), cl::Hidden); +# 70|-> static cl::opt DisableTriangleR("disable-ifcvt-triangle-rev", +# 71| cl::init(false), cl::Hidden); +# 72| static cl::opt DisableTriangleF("disable-ifcvt-triangle-false", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:72: constructor_uses_global_object: The constructor of global object "DisableTriangleF" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTriangleF" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| static cl::opt DisableTriangleR("disable-ifcvt-triangle-rev", +# 71| cl::init(false), cl::Hidden); +# 72|-> static cl::opt DisableTriangleF("disable-ifcvt-triangle-false", +# 73| cl::init(false), cl::Hidden); +# 74| static cl::opt DisableDiamond("disable-ifcvt-diamond", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:74: constructor_uses_global_object: The constructor of global object "DisableDiamond" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDiamond" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| static cl::opt DisableTriangleF("disable-ifcvt-triangle-false", +# 73| cl::init(false), cl::Hidden); +# 74|-> static cl::opt DisableDiamond("disable-ifcvt-diamond", +# 75| cl::init(false), cl::Hidden); +# 76| static cl::opt DisableForkedDiamond("disable-ifcvt-forked-diamond", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:76: constructor_uses_global_object: The constructor of global object "DisableForkedDiamond" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableForkedDiamond" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| static cl::opt DisableDiamond("disable-ifcvt-diamond", +# 75| cl::init(false), cl::Hidden); +# 76|-> static cl::opt DisableForkedDiamond("disable-ifcvt-forked-diamond", +# 77| cl::init(false), cl::Hidden); +# 78| static cl::opt IfCvtBranchFold("ifcvt-branch-fold", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:78: constructor_uses_global_object: The constructor of global object "IfCvtBranchFold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtBranchFold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| static cl::opt DisableForkedDiamond("disable-ifcvt-forked-diamond", +# 77| cl::init(false), cl::Hidden); +# 78|-> static cl::opt IfCvtBranchFold("ifcvt-branch-fold", +# 79| cl::init(true), cl::Hidden); +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ImplicitNullChecks.cpp:62: constructor_uses_global_object: The constructor of global object "PageSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PageSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| using namespace llvm; +# 61| +# 62|-> static cl::opt PageSize("imp-null-check-page-size", +# 63| cl::desc("The page size of the target in bytes"), +# 64| cl::init(4096), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ImplicitNullChecks.cpp:66: constructor_uses_global_object: The constructor of global object "MaxInstsToConsider" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxInstsToConsider" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| cl::init(4096), cl::Hidden); +# 65| +# 66|-> static cl::opt MaxInstsToConsider( +# 67| "imp-null-max-insts-to-consider", +# 68| cl::desc("The max number of instructions to consider hoisting loads over " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InlineSpiller.cpp:75: constructor_uses_global_object: The constructor of global object "DisableHoisting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableHoisting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| STATISTIC(NumRemats, "Number of rematerialized defs for spilling"); +# 74| +# 75|-> static cl::opt DisableHoisting("disable-spill-hoist", cl::Hidden, +# 76| cl::desc("Disable inline spill hoisting")); +# 77| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InlineSpiller.cpp:78: constructor_uses_global_object: The constructor of global object "RestrictStatepointRemat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RestrictStatepointRemat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| cl::desc("Disable inline spill hoisting")); +# 77| static cl::opt +# 78|-> RestrictStatepointRemat("restrict-statepoint-remat", +# 79| cl::init(false), cl::Hidden, +# 80| cl::desc("Restrict remat for statepoint operands")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InterleavedAccessPass.cpp:78: constructor_uses_global_object: The constructor of global object "LowerInterleavedAccesses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LowerInterleavedAccesses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| #define DEBUG_TYPE "interleaved-access" +# 77| +# 78|-> static cl::opt LowerInterleavedAccesses( +# 79| "lower-interleaved-accesses", +# 80| cl::desc("Enable lowering interleaved accesses to intrinsics"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InterleavedLoadCombinePass.cpp:57: constructor_uses_global_object: The constructor of global object "::DisableInterleavedLoadCombine" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisableInterleavedLoadCombine" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| /// Option to disable the pass +# 57|-> static cl::opt DisableInterleavedLoadCombine( +# 58| "disable-" DEBUG_TYPE, cl::init(false), cl::Hidden, +# 59| cl::desc("Disable combining of interleaved loads")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LLVMTargetMachine.cpp:37: constructor_uses_global_object: The constructor of global object "EnableTrapUnreachable" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTrapUnreachable" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static cl::opt +# 37|-> EnableTrapUnreachable("trap-unreachable", cl::Hidden, +# 38| cl::desc("Enable generating trap for unreachable")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp:141: constructor_uses_global_object: The constructor of global object "EmulateOldLDV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmulateOldLDV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 139| // Act more like the VarLoc implementation, by propagating some locations too +# 140| // far and ignoring some transfers. +# 141|-> static cl::opt EmulateOldLDV("emulate-old-livedebugvalues", cl::Hidden, +# 142| cl::desc("Act like old LiveDebugValues did"), +# 143| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp:155: constructor_uses_global_object: The constructor of global object "StackWorkingSetLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackWorkingSetLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| // consuming all the developer's memory. +# 154| static cl::opt +# 155|-> StackWorkingSetLimit("livedebugvalues-max-stack-slots", cl::Hidden, +# 156| cl::desc("livedebugvalues-stack-ws-limit"), +# 157| cl::init(250)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:41: constructor_uses_global_object: The constructor of global object "ForceInstrRefLDV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceInstrRefLDV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> ForceInstrRefLDV("force-instr-ref-livedebugvalues", cl::Hidden, +# 42| cl::desc("Use instruction-ref based LiveDebugValues with " +# 43| "normal DBG_VALUE inputs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:46: constructor_uses_global_object: The constructor of global object "ValueTrackingVariableLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ValueTrackingVariableLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| cl::init(false)); +# 45| +# 46|-> static cl::opt ValueTrackingVariableLocations( +# 47| "experimental-debug-variable-locations", +# 48| cl::desc("Use experimental new value-tracking variable locations")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:52: constructor_uses_global_object: The constructor of global object "InputBBLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InputBBLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| // Options to prevent pathological compile-time behavior. If InputBBLimit and +# 51| // InputDbgValueLimit are both exceeded, range extension is disabled. +# 52|-> static cl::opt InputBBLimit( +# 53| "livedebugvalues-input-bb-limit", +# 54| cl::desc("Maximum input basic blocks before DBG_VALUE limit applies"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:56: constructor_uses_global_object: The constructor of global object "InputDbgValueLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InputDbgValueLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| cl::desc("Maximum input basic blocks before DBG_VALUE limit applies"), +# 55| cl::init(10000), cl::Hidden); +# 56|-> static cl::opt InputDbgValueLimit( +# 57| "livedebugvalues-input-dbg-value-limit", +# 58| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugVariables.cpp:70: constructor_uses_global_object: The constructor of global object "EnableLDV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLDV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| +# 69| static cl::opt +# 70|-> EnableLDV("live-debug-variables", cl::init(true), +# 71| cl::desc("Enable the live debug variables pass"), cl::Hidden); +# 72| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveIntervals.cpp:79: constructor_uses_global_object: The constructor of global object "llvm::UseSegmentSetForPhysRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseSegmentSetForPhysRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| namespace llvm { +# 78| +# 79|-> cl::opt UseSegmentSetForPhysRegs( +# 80| "use-segment-set-for-physregs", cl::Hidden, cl::init(true), +# 81| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRCanonicalizerPass.cpp:41: constructor_uses_global_object: The constructor of global object "CanonicalizeFunctionNumber" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CanonicalizeFunctionNumber" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> CanonicalizeFunctionNumber("canon-nth-function", cl::Hidden, cl::init(~0u), +# 42| cl::value_desc("N"), +# 43| cl::desc("Function number to canonicalize.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRFSDiscriminator.cpp:38: constructor_uses_global_object: The constructor of global object "ImprovedFSDiscriminator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ImprovedFSDiscriminator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| // TODO(xur): Remove this option and related code once we make true as the +# 37| // default. +# 38|-> cl::opt ImprovedFSDiscriminator( +# 39| "improved-fs-discriminator", cl::Hidden, cl::init(false), +# 40| cl::desc("New FS discriminators encoding (incompatible with the original " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRPrinter.cpp:65: constructor_uses_global_object: The constructor of global object "SimplifyMIR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SimplifyMIR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| using namespace llvm; +# 64| +# 65|-> static cl::opt SimplifyMIR( +# 66| "simplify-mir", cl::Hidden, +# 67| cl::desc("Leave out unnecessary information when printing MIR")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRPrinter.cpp:69: constructor_uses_global_object: The constructor of global object "PrintLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::desc("Leave out unnecessary information when printing MIR")); +# 68| +# 69|-> static cl::opt PrintLocations("mir-debug-loc", cl::Hidden, cl::init(true), +# 70| cl::desc("Print MIR debug-locations")); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:44: constructor_uses_global_object: The constructor of global object "ShowFSBranchProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowFSBranchProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| #define DEBUG_TYPE "fs-profile-loader" +# 43| +# 44|-> static cl::opt ShowFSBranchProb( +# 45| "show-fs-branchprob", cl::Hidden, cl::init(false), +# 46| cl::desc("Print setting flow sensitive branch probabilities")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:47: constructor_uses_global_object: The constructor of global object "FSProfileDebugProbDiffThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSProfileDebugProbDiffThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| "show-fs-branchprob", cl::Hidden, cl::init(false), +# 46| cl::desc("Print setting flow sensitive branch probabilities")); +# 47|-> static cl::opt FSProfileDebugProbDiffThreshold( +# 48| "fs-profile-debug-prob-diff-threshold", cl::init(10), +# 49| cl::desc("Only show debug message if the branch probility is greater than " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:52: constructor_uses_global_object: The constructor of global object "FSProfileDebugBWThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSProfileDebugBWThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| "this value (in percentage).")); +# 51| +# 52|-> static cl::opt FSProfileDebugBWThreshold( +# 53| "fs-profile-debug-bw-threshold", cl::init(10000), +# 54| cl::desc("Only show debug message if the source branch weight is greater " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:57: constructor_uses_global_object: The constructor of global object "ViewBFIBefore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewBFIBefore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| " than this value.")); +# 56| +# 57|-> static cl::opt ViewBFIBefore("fs-viewbfi-before", cl::Hidden, +# 58| cl::init(false), +# 59| cl::desc("View BFI before MIR loader")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:60: constructor_uses_global_object: The constructor of global object "ViewBFIAfter" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewBFIAfter" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(false), +# 59| cl::desc("View BFI before MIR loader")); +# 60|-> static cl::opt ViewBFIAfter("fs-viewbfi-after", cl::Hidden, +# 61| cl::init(false), +# 62| cl::desc("View BFI after MIR loader")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRVRegNamerUtils.cpp:19: constructor_uses_global_object: The constructor of global object "UseStableNamerHash" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseStableNamerHash" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| +# 18| static cl::opt +# 19|-> UseStableNamerHash("mir-vreg-namer-use-stable-hash", cl::init(false), +# 20| cl::Hidden, +# 21| cl::desc("Use Stable Hashing for MIR VReg Renaming")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MLRegallocEvictAdvisor.cpp:57: constructor_uses_global_object: The constructor of global object "InteractiveChannelBaseName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveChannelBaseName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| #endif +# 56| +# 57|-> static cl::opt InteractiveChannelBaseName( +# 58| "regalloc-evict-interactive-channel-base", cl::Hidden, +# 59| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MLRegallocPriorityAdvisor.cpp:44: constructor_uses_global_object: The constructor of global object "InteractiveChannelBaseName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveChannelBaseName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| using namespace llvm; +# 43| +# 44|-> static cl::opt InteractiveChannelBaseName( +# 45| "regalloc-priority-interactive-channel-base", cl::Hidden, +# 46| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBasicBlock.cpp:45: constructor_uses_global_object: The constructor of global object "PrintSlotIndexes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintSlotIndexes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| #define DEBUG_TYPE "codegen" +# 44| +# 45|-> static cl::opt PrintSlotIndexes( +# 46| "print-slotindexes", +# 47| cl::desc("When printing machine IR, annotate instructions and blocks with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockFrequencyInfo.cpp:33: constructor_uses_global_object: The constructor of global object "llvm::ViewMachineBlockFreqPropagationDAG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewMachineBlockFreqPropagationDAG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| +# 32| namespace llvm { +# 33|-> static cl::opt ViewMachineBlockFreqPropagationDAG( +# 34| "view-machine-block-freq-propagation-dags", cl::Hidden, +# 35| cl::desc("Pop up a window to show a dag displaying how machine block " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockFrequencyInfo.cpp:48: constructor_uses_global_object: The constructor of global object "llvm::ViewBlockLayoutWithBFI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewBlockLayoutWithBFI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| // Similar option above, but used to control BFI display only after MBP pass +# 48|-> cl::opt ViewBlockLayoutWithBFI( +# 49| "view-block-layout-with-bfi", cl::Hidden, +# 50| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockFrequencyInfo.cpp:72: constructor_uses_global_object: The constructor of global object "llvm::PrintMachineBlockFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintMachineBlockFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| extern cl::opt ViewHotFreqPercent; +# 71| +# 72|-> static cl::opt PrintMachineBlockFreq( +# 73| "print-machine-bfi", cl::init(false), cl::Hidden, +# 74| cl::desc("Print the machine block frequency info.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:87: constructor_uses_global_object: The constructor of global object "AlignAllBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignAllBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| "Potential frequency of taking unconditional branches"); +# 86| +# 87|-> static cl::opt AlignAllBlock( +# 88| "align-all-blocks", +# 89| cl::desc("Force the alignment of all blocks in the function in log2 format " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:93: constructor_uses_global_object: The constructor of global object "AlignAllNonFallThruBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignAllNonFallThruBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| cl::init(0), cl::Hidden); +# 92| +# 93|-> static cl::opt AlignAllNonFallThruBlocks( +# 94| "align-all-nofallthru-blocks", +# 95| cl::desc("Force the alignment of all blocks that have no fall-through " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:100: constructor_uses_global_object: The constructor of global object "MaxBytesForAlignmentOverride" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxBytesForAlignmentOverride" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| cl::init(0), cl::Hidden); +# 99| +# 100|-> static cl::opt MaxBytesForAlignmentOverride( +# 101| "max-bytes-for-alignment", +# 102| cl::desc("Forces the maximum bytes allowed to be emitted when padding for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:107: constructor_uses_global_object: The constructor of global object "ExitBlockBias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExitBlockBias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| +# 106| // FIXME: Find a good default for this flag and remove the flag. +# 107|-> static cl::opt ExitBlockBias( +# 108| "block-placement-exit-block-bias", +# 109| cl::desc("Block frequency percentage a loop exit block needs " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:116: constructor_uses_global_object: The constructor of global object "LoopToColdBlockRatio" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoopToColdBlockRatio" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| // - Outlining: placement of a basic block outside the chain or hot path. +# 115| +# 116|-> static cl::opt LoopToColdBlockRatio( +# 117| "loop-to-cold-block-ratio", +# 118| cl::desc("Outline loop blocks from loop chain if (frequency of loop) / " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:122: constructor_uses_global_object: The constructor of global object "ForceLoopColdBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceLoopColdBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 120| cl::init(5), cl::Hidden); +# 121| +# 122|-> static cl::opt ForceLoopColdBlock( +# 123| "force-loop-cold-block", +# 124| cl::desc("Force outlining cold blocks from loops."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:128: constructor_uses_global_object: The constructor of global object "PreciseRotationCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreciseRotationCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| +# 127| static cl::opt +# 128|-> PreciseRotationCost("precise-rotation-cost", +# 129| cl::desc("Model the cost of loop rotation more " +# 130| "precisely by using profile data."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:134: constructor_uses_global_object: The constructor of global object "ForcePreciseRotationCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForcePreciseRotationCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| +# 133| static cl::opt +# 134|-> ForcePreciseRotationCost("force-precise-rotation-cost", +# 135| cl::desc("Force the use of precise cost " +# 136| "loop rotation strategy."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:139: constructor_uses_global_object: The constructor of global object "MisfetchCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MisfetchCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 137| cl::init(false), cl::Hidden); +# 138| +# 139|-> static cl::opt MisfetchCost( +# 140| "misfetch-cost", +# 141| cl::desc("Cost that models the probabilistic risk of an instruction " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:146: constructor_uses_global_object: The constructor of global object "JumpInstCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpInstCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 144| cl::init(1), cl::Hidden); +# 145| +# 146|-> static cl::opt JumpInstCost("jump-inst-cost", +# 147| cl::desc("Cost of jump instructions."), +# 148| cl::init(1), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:150: constructor_uses_global_object: The constructor of global object "TailDupPlacement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 148| cl::init(1), cl::Hidden); +# 149| static cl::opt +# 150|-> TailDupPlacement("tail-dup-placement", +# 151| cl::desc("Perform tail duplication during placement. " +# 152| "Creates more fallthrough opportunites in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:157: constructor_uses_global_object: The constructor of global object "BranchFoldPlacement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BranchFoldPlacement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 155| +# 156| static cl::opt +# 157|-> BranchFoldPlacement("branch-fold-placement", +# 158| cl::desc("Perform branch folding during placement. " +# 159| "Reduces code size."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:163: constructor_uses_global_object: The constructor of global object "TailDupPlacementThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacementThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| +# 162| // Heuristic for tail duplication. +# 163|-> static cl::opt TailDupPlacementThreshold( +# 164| "tail-dup-placement-threshold", +# 165| cl::desc("Instruction cutoff for tail duplication during layout. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:171: constructor_uses_global_object: The constructor of global object "TailDupPlacementAggressiveThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacementAggressiveThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 169| +# 170| // Heuristic for aggressive tail duplication. +# 171|-> static cl::opt TailDupPlacementAggressiveThreshold( +# 172| "tail-dup-placement-aggressive-threshold", +# 173| cl::desc("Instruction cutoff for aggressive tail duplication during " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:179: constructor_uses_global_object: The constructor of global object "TailDupPlacementPenalty" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacementPenalty" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 177| +# 178| // Heuristic for tail duplication. +# 179|-> static cl::opt TailDupPlacementPenalty( +# 180| "tail-dup-placement-penalty", +# 181| cl::desc("Cost penalty for blocks that can avoid breaking CFG by copying. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:189: constructor_uses_global_object: The constructor of global object "TailDupProfilePercentThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupProfilePercentThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 187| +# 188| // Heuristic for tail duplication if profile count is used in cost model. +# 189|-> static cl::opt TailDupProfilePercentThreshold( +# 190| "tail-dup-profile-percent-threshold", +# 191| cl::desc("If profile count information is used in tail duplication cost " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:197: constructor_uses_global_object: The constructor of global object "TriangleChainCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TriangleChainCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 195| +# 196| // Heuristic for triangle chains. +# 197|-> static cl::opt TriangleChainCount( +# 198| "triangle-chain-count", +# 199| cl::desc("Number of triangle-shaped-CFG's that need to be in a row for the " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:209: constructor_uses_global_object: The constructor of global object "RenumberBlocksBeforeView" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RenumberBlocksBeforeView" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 207| // With this option on, the basic blocks are renumbered in function layout +# 208| // order. For debugging only. +# 209|-> static cl::opt RenumberBlocksBeforeView( +# 210| "renumber-blocks-before-view", +# 211| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBranchProbabilityInfo.cpp:28: constructor_uses_global_object: The constructor of global object "llvm::StaticLikelyProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::StaticLikelyProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| namespace llvm { +# 27| cl::opt +# 28|-> StaticLikelyProb("static-likely-prob", +# 29| cl::desc("branch probability threshold in percentage" +# 30| "to be considered very likely"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBranchProbabilityInfo.cpp:33: constructor_uses_global_object: The constructor of global object "llvm::ProfileLikelyProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileLikelyProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| cl::init(80), cl::Hidden); +# 32| +# 33|-> cl::opt ProfileLikelyProb( +# 34| "profile-likely-prob", +# 35| cl::desc("branch probability threshold in percentage to be considered" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCFGPrinter.cpp:28: constructor_uses_global_object: The constructor of global object "MCFGFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCFGFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| +# 27| static cl::opt +# 28|-> MCFGFuncName("mcfg-func-name", cl::Hidden, +# 29| cl::desc("The name of a function (or its substring)" +# 30| " whose CFG is viewed/printed.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCFGPrinter.cpp:32: constructor_uses_global_object: The constructor of global object "MCFGDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCFGDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| " whose CFG is viewed/printed.")); +# 31| +# 32|-> static cl::opt MCFGDotFilenamePrefix( +# 33| "mcfg-dot-filename-prefix", cl::Hidden, +# 34| cl::desc("The prefix used for the Machine CFG dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCFGPrinter.cpp:37: constructor_uses_global_object: The constructor of global object "CFGOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CFGOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static cl::opt +# 37|-> CFGOnly("dot-mcfg-only", cl::init(false), cl::Hidden, +# 38| cl::desc("Print only the CFG without blocks body")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCSE.cpp:65: constructor_uses_global_object: The constructor of global object "CSUsesThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CSUsesThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| // Threshold to avoid excessive cost to compute isProfitableToCSE. +# 64| static cl::opt +# 65|-> CSUsesThreshold("csuses-threshold", cl::Hidden, cl::init(1024), +# 66| cl::desc("Threshold for the size of CSUses")); +# 67| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCombiner.cpp:42: constructor_uses_global_object: The constructor of global object "inc_threshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "inc_threshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> inc_threshold("machine-combiner-inc-threshold", cl::Hidden, +# 43| cl::desc("Incremental depth computation will be used for basic " +# 44| "blocks with more instructions."), cl::init(500)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCombiner.cpp:46: constructor_uses_global_object: The constructor of global object "dump_intrs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "dump_intrs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| "blocks with more instructions."), cl::init(500)); +# 45| +# 46|-> static cl::opt dump_intrs("machine-combiner-dump-subst-intrs", cl::Hidden, +# 47| cl::desc("Dump all substituted intrs"), +# 48| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCombiner.cpp:57: constructor_uses_global_object: The constructor of global object "VerifyPatternOrder" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyPatternOrder" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::init(true)); +# 56| #else +# 57|-> static cl::opt VerifyPatternOrder( +# 58| "machine-combiner-verify-pattern-order", cl::Hidden, +# 59| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCopyPropagation.cpp:88: constructor_uses_global_object: The constructor of global object "MCPUseCopyInstr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCPUseCopyInstr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| "Controls which register COPYs are forwarded"); +# 87| +# 88|-> static cl::opt MCPUseCopyInstr("mcp-use-is-copy-instr", cl::init(false), +# 89| cl::Hidden); +# 90| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCopyPropagation.cpp:91: constructor_uses_global_object: The constructor of global object "EnableSpillageCopyElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSpillageCopyElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| cl::Hidden); +# 90| static cl::opt +# 91|-> EnableSpillageCopyElimination("enable-spill-copy-elim", cl::Hidden); +# 92| +# 93| namespace { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineDominators.cpp:33: constructor_uses_global_object: The constructor of global object "VerifyMachineDomInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyMachineDomInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| } // namespace llvm +# 32| +# 33|-> static cl::opt VerifyMachineDomInfoX( +# 34| "verify-machine-dom-info", cl::location(VerifyMachineDomInfo), cl::Hidden, +# 35| cl::desc("Verify machine dominator info (time consuming)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunction.cpp:84: constructor_uses_global_object: The constructor of global object "AlignAllFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignAllFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| #define DEBUG_TYPE "codegen" +# 83| +# 84|-> static cl::opt AlignAllFunctions( +# 85| "align-all-functions", +# 86| cl::desc("Force the alignment of all functions in log2 format (e.g. 4 " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunctionSplitter.cpp:53: constructor_uses_global_object: The constructor of global object "PercentileCutoff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PercentileCutoff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| // Intel CPUs. +# 52| static cl::opt +# 53|-> PercentileCutoff("mfs-psi-cutoff", +# 54| cl::desc("Percentile profile summary cutoff used to " +# 55| "determine cold blocks. Unused if set to zero."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunctionSplitter.cpp:58: constructor_uses_global_object: The constructor of global object "ColdCountThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdCountThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::init(999950), cl::Hidden); +# 57| +# 58|-> static cl::opt ColdCountThreshold( +# 59| "mfs-count-threshold", +# 60| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunctionSplitter.cpp:64: constructor_uses_global_object: The constructor of global object "SplitAllEHCode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitAllEHCode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| cl::init(1), cl::Hidden); +# 63| +# 64|-> static cl::opt SplitAllEHCode( +# 65| "mfs-split-ehcode", +# 66| cl::desc("Splits all EH code and it's descendants by default."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:62: constructor_uses_global_object: The constructor of global object "AvoidSpeculation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AvoidSpeculation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> AvoidSpeculation("avoid-speculation", +# 63| cl::desc("MachineLICM should avoid speculation"), +# 64| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:67: constructor_uses_global_object: The constructor of global object "HoistCheapInsts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HoistCheapInsts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl::opt +# 67|-> HoistCheapInsts("hoist-cheap-insts", +# 68| cl::desc("MachineLICM should hoist even cheap instructions"), +# 69| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:72: constructor_uses_global_object: The constructor of global object "HoistConstStores" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HoistConstStores" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| +# 71| static cl::opt +# 72|-> HoistConstStores("hoist-const-stores", +# 73| cl::desc("Hoist invariant stores"), +# 74| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:78: constructor_uses_global_object: The constructor of global object "BlockFrequencyRatioThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockFrequencyRatioThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| // is based on empirical data on a single target and is subject to tuning. +# 77| static cl::opt +# 78|-> BlockFrequencyRatioThreshold("block-freq-ratio-threshold", +# 79| cl::desc("Do not hoist instructions if target" +# 80| "block is N times hotter than the source."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:86: constructor_uses_global_object: The constructor of global object "DisableHoistingToHotterBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableHoistingToHotterBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> DisableHoistingToHotterBlocks("disable-hoisting-to-hotter-blocks", +# 87| cl::desc("Disable hoisting instructions to" +# 88| " hotter blocks"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineModuleInfo.cpp:35: constructor_uses_global_object: The constructor of global object "DisableDebugInfoPrinting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDebugInfoPrinting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> DisableDebugInfoPrinting("disable-debug-info-print", cl::Hidden, +# 36| cl::desc("Disable debug info printing")); +# 37| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOperand.cpp:36: constructor_uses_global_object: The constructor of global object "PrintRegMaskNumRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintRegMaskNumRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> PrintRegMaskNumRegs("print-regmask-num-regs", +# 37| cl::desc("Number of registers to limit to when " +# 38| "printing regmask operands in IR dumps. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOutliner.cpp:106: constructor_uses_global_object: The constructor of global object "EnableLinkOnceODROutlining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLinkOnceODROutlining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| // this is off by default. It should, however, be the default behaviour in +# 105| // LTO. +# 106|-> static cl::opt EnableLinkOnceODROutlining( +# 107| "enable-linkonceodr-outlining", cl::Hidden, +# 108| cl::desc("Enable the machine outliner on linkonceodr functions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOutliner.cpp:114: constructor_uses_global_object: The constructor of global object "OutlinerReruns" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutlinerReruns" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| /// as the outliner will run at least one time. The default value is set to 0, +# 113| /// meaning the outliner will run one time and rerun zero times after that. +# 114|-> static cl::opt OutlinerReruns( +# 115| "machine-outliner-reruns", cl::init(0), cl::Hidden, +# 116| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOutliner.cpp:119: constructor_uses_global_object: The constructor of global object "OutlinerBenefitThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutlinerBenefitThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| "Number of times to rerun the outliner after the initial outline")); +# 118| +# 119|-> static cl::opt OutlinerBenefitThreshold( +# 120| "outliner-benefit-threshold", cl::init(1), cl::Hidden, +# 121| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:114: constructor_uses_global_object: The constructor of global object "EnableSWP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSWP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| +# 113| /// A command line option to turn software pipelining on or off. +# 114|-> static cl::opt EnableSWP("enable-pipeliner", cl::Hidden, cl::init(true), +# 115| cl::desc("Enable Software Pipelining")); +# 116| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:118: constructor_uses_global_object: The constructor of global object "EnableSWPOptSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSWPOptSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| +# 117| /// A command line option to enable SWP at -Os. +# 118|-> static cl::opt EnableSWPOptSize("enable-pipeliner-opt-size", +# 119| cl::desc("Enable SWP at Os."), cl::Hidden, +# 120| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:123: constructor_uses_global_object: The constructor of global object "SwpMaxMii" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpMaxMii" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 121| +# 122| /// A command line argument to limit minimum initial interval for pipelining. +# 123|-> static cl::opt SwpMaxMii("pipeliner-max-mii", +# 124| cl::desc("Size limit for the MII."), +# 125| cl::Hidden, cl::init(27)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:129: constructor_uses_global_object: The constructor of global object "SwpForceII" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpForceII" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 127| /// A command line argument to force pipeliner to use specified initial +# 128| /// interval. +# 129|-> static cl::opt SwpForceII("pipeliner-force-ii", +# 130| cl::desc("Force pipeliner to use specified II."), +# 131| cl::Hidden, cl::init(-1)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:135: constructor_uses_global_object: The constructor of global object "SwpMaxStages" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpMaxStages" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| /// A command line argument to limit the number of stages in the pipeline. +# 134| static cl::opt +# 135|-> SwpMaxStages("pipeliner-max-stages", +# 136| cl::desc("Maximum stages allowed in the generated scheduled."), +# 137| cl::Hidden, cl::init(3)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:142: constructor_uses_global_object: The constructor of global object "SwpPruneDeps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpPruneDeps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 140| /// an unrelated Phi. +# 141| static cl::opt +# 142|-> SwpPruneDeps("pipeliner-prune-deps", +# 143| cl::desc("Prune dependences between unrelated Phi nodes."), +# 144| cl::Hidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:149: constructor_uses_global_object: The constructor of global object "SwpPruneLoopCarried" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpPruneLoopCarried" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| /// dependences. +# 148| static cl::opt +# 149|-> SwpPruneLoopCarried("pipeliner-prune-loop-carried", +# 150| cl::desc("Prune loop carried order dependences."), +# 151| cl::Hidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:157: constructor_uses_global_object: The constructor of global object "SwpIgnoreRecMII" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpIgnoreRecMII" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 155| #endif +# 156| +# 157|-> static cl::opt SwpIgnoreRecMII("pipeliner-ignore-recmii", +# 158| cl::ReallyHidden, +# 159| cl::desc("Ignore RecMII")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:161: constructor_uses_global_object: The constructor of global object "SwpShowResMask" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpShowResMask" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 159| cl::desc("Ignore RecMII")); +# 160| +# 161|-> static cl::opt SwpShowResMask("pipeliner-show-mask", cl::Hidden, +# 162| cl::init(false)); +# 163| static cl::opt SwpDebugResource("pipeliner-dbg-res", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:163: constructor_uses_global_object: The constructor of global object "SwpDebugResource" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpDebugResource" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| static cl::opt SwpShowResMask("pipeliner-show-mask", cl::Hidden, +# 162| cl::init(false)); +# 163|-> static cl::opt SwpDebugResource("pipeliner-dbg-res", cl::Hidden, +# 164| cl::init(false)); +# 165| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:166: constructor_uses_global_object: The constructor of global object "EmitTestAnnotations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmitTestAnnotations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 164| cl::init(false)); +# 165| +# 166|-> static cl::opt EmitTestAnnotations( +# 167| "pipeliner-annotate-for-testing", cl::Hidden, cl::init(false), +# 168| cl::desc("Instead of emitting the pipelined code, annotate instructions " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:172: constructor_uses_global_object: The constructor of global object "ExperimentalCodeGen" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExperimentalCodeGen" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 170| "-modulo-schedule-test pass")); +# 171| +# 172|-> static cl::opt ExperimentalCodeGen( +# 173| "pipeliner-experimental-cg", cl::Hidden, cl::init(false), +# 174| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:180: constructor_uses_global_object: The constructor of global object "llvm::SwpEnableCopyToPhi" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::SwpEnableCopyToPhi" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 178| +# 179| // A command line option to enable the CopyToPhi DAG mutation. +# 180|-> cl::opt SwpEnableCopyToPhi("pipeliner-enable-copytophi", cl::ReallyHidden, +# 181| cl::init(true), +# 182| cl::desc("Enable CopyToPhi DAG Mutation")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:186: constructor_uses_global_object: The constructor of global object "llvm::SwpForceIssueWidth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::SwpForceIssueWidth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 184| /// A command line argument to force pipeliner to use specified issue +# 185| /// width. +# 186|-> cl::opt SwpForceIssueWidth( +# 187| "pipeliner-force-issue-width", +# 188| cl::desc("Force pipeliner to use specified issue width."), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineRegisterInfo.cpp:37: constructor_uses_global_object: The constructor of global object "EnableSubRegLiveness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSubRegLiveness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| using namespace llvm; +# 36| +# 37|-> static cl::opt EnableSubRegLiveness("enable-subreg-liveness", cl::Hidden, +# 38| cl::init(true), cl::desc("Enable subregister liveness tracking.")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:80: constructor_uses_global_object: The constructor of global object "llvm::ForceTopDown" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ForceTopDown" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| namespace llvm { +# 79| +# 80|-> cl::opt ForceTopDown("misched-topdown", cl::Hidden, +# 81| cl::desc("Force top-down list scheduling")); +# 82| cl::opt ForceBottomUp("misched-bottomup", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:82: constructor_uses_global_object: The constructor of global object "llvm::ForceBottomUp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ForceBottomUp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| cl::opt ForceTopDown("misched-topdown", cl::Hidden, +# 81| cl::desc("Force top-down list scheduling")); +# 82|-> cl::opt ForceBottomUp("misched-bottomup", cl::Hidden, +# 83| cl::desc("Force bottom-up list scheduling")); +# 84| cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:85: constructor_uses_global_object: The constructor of global object "llvm::DumpCriticalPathLength" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DumpCriticalPathLength" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("Force bottom-up list scheduling")); +# 84| cl::opt +# 85|-> DumpCriticalPathLength("misched-dcpl", cl::Hidden, +# 86| cl::desc("Print critical path length to stdout")); +# 87| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:88: constructor_uses_global_object: The constructor of global object "llvm::VerifyScheduling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::VerifyScheduling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| cl::desc("Print critical path length to stdout")); +# 87| +# 88|-> cl::opt VerifyScheduling( +# 89| "verify-misched", cl::Hidden, +# 90| cl::desc("Verify machine instrs before and after machine scheduling")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:132: constructor_uses_global_object: The constructor of global object "ReadyListLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReadyListLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 130| /// Avoid quadratic complexity in unusually large basic blocks by limiting the +# 131| /// size of the ready lists. +# 132|-> static cl::opt ReadyListLimit("misched-limit", cl::Hidden, +# 133| cl::desc("Limit ready list to N instructions"), cl::init(256)); +# 134| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:135: constructor_uses_global_object: The constructor of global object "EnableRegPressure" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRegPressure" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::desc("Limit ready list to N instructions"), cl::init(256)); +# 134| +# 135|-> static cl::opt EnableRegPressure("misched-regpressure", cl::Hidden, +# 136| cl::desc("Enable register pressure scheduling."), cl::init(true)); +# 137| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:138: constructor_uses_global_object: The constructor of global object "EnableCyclicPath" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCyclicPath" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| cl::desc("Enable register pressure scheduling."), cl::init(true)); +# 137| +# 138|-> static cl::opt EnableCyclicPath("misched-cyclicpath", cl::Hidden, +# 139| cl::desc("Enable cyclic critical path analysis."), cl::init(true)); +# 140| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:141: constructor_uses_global_object: The constructor of global object "EnableMemOpCluster" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemOpCluster" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 139| cl::desc("Enable cyclic critical path analysis."), cl::init(true)); +# 140| +# 141|-> static cl::opt EnableMemOpCluster("misched-cluster", cl::Hidden, +# 142| cl::desc("Enable memop clustering."), +# 143| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:145: constructor_uses_global_object: The constructor of global object "ForceFastCluster" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceFastCluster" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 143| cl::init(true)); +# 144| static cl::opt +# 145|-> ForceFastCluster("force-fast-cluster", cl::Hidden, +# 146| cl::desc("Switch to fast cluster algorithm with the lost " +# 147| "of some fusion opportunities"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:150: constructor_uses_global_object: The constructor of global object "FastClusterThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FastClusterThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 148| cl::init(false)); +# 149| static cl::opt +# 150|-> FastClusterThreshold("fast-cluster-threshold", cl::Hidden, +# 151| cl::desc("The threshold for fast cluster"), +# 152| cl::init(1000)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:173: constructor_uses_global_object: The constructor of global object "MIResourceCutOff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MIResourceCutOff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 171| +# 172| static cl::opt +# 173|-> MIResourceCutOff("misched-resource-cutoff", cl::Hidden, +# 174| cl::desc("Number of intervals to track"), cl::init(10)); +# 175| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:310: constructor_uses_global_object: The constructor of global object "MachineSchedOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MachineSchedOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 308| static cl::opt> +# 310|-> MachineSchedOpt("misched", +# 311| cl::init(&useDefaultMachineSched), cl::Hidden, +# 312| cl::desc("Machine instruction scheduler to use")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:318: constructor_uses_global_object: The constructor of global object "EnableMachineSched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMachineSched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 316| useDefaultMachineSched); +# 317| +# 318|-> static cl::opt EnableMachineSched( +# 319| "enable-misched", +# 320| cl::desc("Enable the machine instruction scheduling pass."), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:323: constructor_uses_global_object: The constructor of global object "EnablePostRAMachineSched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostRAMachineSched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 321| cl::Hidden); +# 322| +# 323|-> static cl::opt EnablePostRAMachineSched( +# 324| "enable-post-misched", +# 325| cl::desc("Enable the post-ra machine instruction scheduling pass."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:68: constructor_uses_global_object: The constructor of global object "SplitEdges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitEdges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| +# 67| static cl::opt +# 68|-> SplitEdges("machine-sink-split", +# 69| cl::desc("Split critical edges during machine sinking"), +# 70| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:73: constructor_uses_global_object: The constructor of global object "UseBlockFreqInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseBlockFreqInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| static cl::opt +# 73|-> UseBlockFreqInfo("machine-sink-bfi", +# 74| cl::desc("Use block frequency info to find successors to sink"), +# 75| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:77: constructor_uses_global_object: The constructor of global object "SplitEdgeProbabilityThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitEdgeProbabilityThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::init(true), cl::Hidden); +# 76| +# 77|-> static cl::opt SplitEdgeProbabilityThreshold( +# 78| "machine-sink-split-probability-threshold", +# 79| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:86: constructor_uses_global_object: The constructor of global object "SinkLoadInstsPerBlockThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkLoadInstsPerBlockThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| cl::init(40), cl::Hidden); +# 85| +# 86|-> static cl::opt SinkLoadInstsPerBlockThreshold( +# 87| "machine-sink-load-instrs-threshold", +# 88| cl::desc("Do not try to find alias store for a load if there is a in-path " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:92: constructor_uses_global_object: The constructor of global object "SinkLoadBlocksThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkLoadBlocksThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| cl::init(2000), cl::Hidden); +# 91| +# 92|-> static cl::opt SinkLoadBlocksThreshold( +# 93| "machine-sink-load-blocks-threshold", +# 94| cl::desc("Do not try to find alias store for a load if the block number in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:99: constructor_uses_global_object: The constructor of global object "SinkInstsIntoCycle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkInstsIntoCycle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| +# 98| static cl::opt +# 99|-> SinkInstsIntoCycle("sink-insts-to-avoid-spills", +# 100| cl::desc("Sink instructions into cycles to avoid " +# 101| "register spills"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:104: constructor_uses_global_object: The constructor of global object "SinkIntoCycleLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkIntoCycleLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| cl::init(false), cl::Hidden); +# 103| +# 104|-> static cl::opt SinkIntoCycleLimit( +# 105| "machine-sink-cycle-limit", +# 106| cl::desc("The maximum number of instructions considered for cycle sinking."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineStripDebug.cpp:27: constructor_uses_global_object: The constructor of global object "::OnlyDebugifiedDefault" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OnlyDebugifiedDefault" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| namespace { +# 26| cl::opt +# 27|-> OnlyDebugifiedDefault("mir-strip-debugify-only", +# 28| cl::desc("Should mir-strip-debug only strip debug " +# 29| "info from debugified modules by default"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MacroFusion.cpp:31: constructor_uses_global_object: The constructor of global object "EnableMacroFusion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMacroFusion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt EnableMacroFusion("misched-fusion", cl::Hidden, +# 32| cl::desc("Enable scheduling for macro fusion."), cl::init(true)); +# 33| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PHIElimination.cpp:50: constructor_uses_global_object: The constructor of global object "DisableEdgeSplitting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableEdgeSplitting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> DisableEdgeSplitting("disable-phi-elim-edge-splitting", cl::init(false), +# 51| cl::Hidden, cl::desc("Disable critical edge splitting " +# 52| "during PHI elimination")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PHIElimination.cpp:55: constructor_uses_global_object: The constructor of global object "SplitAllCriticalEdges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitAllCriticalEdges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| +# 54| static cl::opt +# 55|-> SplitAllCriticalEdges("phi-elim-split-all-critical-edges", cl::init(false), +# 56| cl::Hidden, cl::desc("Split all critical edges during " +# 57| "PHI elimination")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PHIElimination.cpp:59: constructor_uses_global_object: The constructor of global object "NoPhiElimLiveOutEarlyExit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoPhiElimLiveOutEarlyExit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| "PHI elimination")); +# 58| +# 59|-> static cl::opt NoPhiElimLiveOutEarlyExit( +# 60| "no-phi-elim-live-out-early-exit", cl::init(false), cl::Hidden, +# 61| cl::desc("Do not use an early exit if isLiveOutPastPHIs returns true.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:106: constructor_uses_global_object: The constructor of global object "Aggressive" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Aggressive" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| // Optimize Extensions +# 105| static cl::opt +# 106|-> Aggressive("aggressive-ext-opt", cl::Hidden, +# 107| cl::desc("Aggressive extension optimization")); +# 108| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:110: constructor_uses_global_object: The constructor of global object "DisablePeephole" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePeephole" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| +# 109| static cl::opt +# 110|-> DisablePeephole("disable-peephole", cl::Hidden, cl::init(false), +# 111| cl::desc("Disable the peephole optimizer")); +# 112| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:117: constructor_uses_global_object: The constructor of global object "DisableAdvCopyOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAdvCopyOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 115| /// bails on everything that is not a copy or a bitcast. +# 116| static cl::opt +# 117|-> DisableAdvCopyOpt("disable-adv-copy-opt", cl::Hidden, cl::init(false), +# 118| cl::desc("Disable advanced copy optimization")); +# 119| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:120: constructor_uses_global_object: The constructor of global object "DisableNAPhysCopyOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableNAPhysCopyOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| cl::desc("Disable advanced copy optimization")); +# 119| +# 120|-> static cl::opt DisableNAPhysCopyOpt( +# 121| "disable-non-allocatable-phys-copy-opt", cl::Hidden, cl::init(false), +# 122| cl::desc("Disable non-allocatable physical register copy optimization")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:126: constructor_uses_global_object: The constructor of global object "RewritePHILimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RewritePHILimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| // Limit the number of PHI instructions to process +# 125| // in PeepholeOptimizer::getNextSource. +# 126|-> static cl::opt RewritePHILimit( +# 127| "rewrite-phi-limit", cl::Hidden, cl::init(10), +# 128| cl::desc("Limit the length of PHI chains to lookup")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:132: constructor_uses_global_object: The constructor of global object "MaxRecurrenceChain" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxRecurrenceChain" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 130| // Limit the length of recurrence chain when evaluating the benefit of +# 131| // commuting operands. +# 132|-> static cl::opt MaxRecurrenceChain( +# 133| "recurrence-chain-limit", cl::Hidden, cl::init(3), +# 134| cl::desc("Maximum length of recurrence chain when evaluating the benefit " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:54: constructor_uses_global_object: The constructor of global object "EnablePostRAScheduler" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostRAScheduler" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // override the target. +# 53| static cl::opt +# 54|-> EnablePostRAScheduler("post-RA-scheduler", +# 55| cl::desc("Enable scheduling after register allocation"), +# 56| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:58: constructor_uses_global_object: The constructor of global object "EnableAntiDepBreaking[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAntiDepBreaking[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::init(false), cl::Hidden); +# 57| static cl::opt +# 58|-> EnableAntiDepBreaking("break-anti-dependencies", +# 59| cl::desc("Break post-RA scheduling anti-dependencies: " +# 60| "\"critical\", \"all\", or \"none\""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:65: constructor_uses_global_object: The constructor of global object "DebugDiv" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugDiv" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| // If DebugDiv > 0 then only schedule MBB with (ID % DebugDiv) == DebugMod +# 64| static cl::opt +# 65|-> DebugDiv("postra-sched-debugdiv", +# 66| cl::desc("Debug control MBBs that are scheduled"), +# 67| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:69: constructor_uses_global_object: The constructor of global object "DebugMod" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugMod" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::init(0), cl::Hidden); +# 68| static cl::opt +# 69|-> DebugMod("postra-sched-debugmod", +# 70| cl::desc("Debug control MBBs that are scheduled"), +# 71| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PreISelIntrinsicLowering.cpp:38: constructor_uses_global_object: The constructor of global object "MemIntrinsicExpandSizeThresholdOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemIntrinsicExpandSizeThresholdOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| /// size larger than this will be expanded by the pass. Calls of unknown or +# 37| /// lower size will be left for expansion in codegen. +# 38|-> static cl::opt MemIntrinsicExpandSizeThresholdOpt( +# 39| "mem-intrinsic-expand-size", +# 40| cl::desc("Set minimum mem intrinsic size to expand in IR"), cl::init(-1), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RDFLiveness.cpp:55: constructor_uses_global_object: The constructor of global object "MaxRecNest" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxRecNest" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| using namespace llvm; +# 54| +# 55|-> static cl::opt MaxRecNest("rdf-liveness-max-rec", cl::init(25), +# 56| cl::Hidden, +# 57| cl::desc("Maximum recursion level")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocBase.cpp:43: constructor_uses_global_object: The constructor of global object "VerifyRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| // MachineVerifier. +# 42| static cl::opt +# 43|-> VerifyRegAlloc("verify-regalloc", cl::location(RegAllocBase::VerifyEnabled), +# 44| cl::Hidden, cl::desc("Verify during register allocation")); +# 45| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocEvictionAdvisor.cpp:28: constructor_uses_global_object: The constructor of global object "Mode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| using namespace llvm; +# 27| +# 28|-> static cl::opt Mode( +# 29| "regalloc-enable-advisor", cl::Hidden, +# 30| cl::init(RegAllocEvictionAdvisorAnalysis::AdvisorMode::Default), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocEvictionAdvisor.cpp:40: constructor_uses_global_object: The constructor of global object "EnableLocalReassignment" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLocalReassignment" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| "development", "for training"))); +# 39| +# 40|-> static cl::opt EnableLocalReassignment( +# 41| "enable-local-reassign", cl::Hidden, +# 42| cl::desc("Local reassignment can yield better allocation decisions, but " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocEvictionAdvisor.cpp:47: constructor_uses_global_object: The constructor of global object "llvm::EvictInterferenceCutoff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EvictInterferenceCutoff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| namespace llvm { +# 47|-> cl::opt EvictInterferenceCutoff( +# 48| "regalloc-eviction-max-interference-cutoff", cl::Hidden, +# 49| cl::desc("Number of interferences after which we declare " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocFast.cpp:57: constructor_uses_global_object: The constructor of global object "IgnoreMissingDefs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMissingDefs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| // FIXME: Remove this switch when all testcases are fixed! +# 57|-> static cl::opt IgnoreMissingDefs("rafast-ignore-missing-defs", +# 58| cl::Hidden); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:86: constructor_uses_global_object: The constructor of global object "SplitSpillMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitSpillMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| STATISTIC(NumEvicted, "Number of interferences evicted"); +# 85| +# 86|-> static cl::opt SplitSpillMode( +# 87| "split-spill-mode", cl::Hidden, +# 88| cl::desc("Spill mode for splitting live ranges"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:95: constructor_uses_global_object: The constructor of global object "LastChanceRecoloringMaxDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LastChanceRecoloringMaxDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> LastChanceRecoloringMaxDepth("lcr-max-depth", cl::Hidden, +# 96| cl::desc("Last chance recoloring max depth"), +# 97| cl::init(5)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:99: constructor_uses_global_object: The constructor of global object "LastChanceRecoloringMaxInterference" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LastChanceRecoloringMaxInterference" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| cl::init(5)); +# 98| +# 99|-> static cl::opt LastChanceRecoloringMaxInterference( +# 100| "lcr-max-interf", cl::Hidden, +# 101| cl::desc("Last chance recoloring maximum number of considered" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:105: constructor_uses_global_object: The constructor of global object "ExhaustiveSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExhaustiveSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 103| cl::init(8)); +# 104| +# 105|-> static cl::opt ExhaustiveSearch( +# 106| "exhaustive-register-search", cl::NotHidden, +# 107| cl::desc("Exhaustive Search for registers bypassing the depth " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:111: constructor_uses_global_object: The constructor of global object "EnableDeferredSpilling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDeferredSpilling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| cl::Hidden); +# 110| +# 111|-> static cl::opt EnableDeferredSpilling( +# 112| "enable-deferred-spilling", cl::Hidden, +# 113| cl::desc("Instead of spilling a variable right away, defer the actual " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:121: constructor_uses_global_object: The constructor of global object "CSRFirstTimeCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CSRFirstTimeCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| // FIXME: Find a good default for this flag and remove the flag. +# 120| static cl::opt +# 121|-> CSRFirstTimeCost("regalloc-csr-first-time-cost", +# 122| cl::desc("Cost for first time use of callee-saved register."), +# 123| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:125: constructor_uses_global_object: The constructor of global object "GrowRegionComplexityBudget" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GrowRegionComplexityBudget" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| cl::init(0), cl::Hidden); +# 124| +# 125|-> static cl::opt GrowRegionComplexityBudget( +# 126| "grow-region-complexity-budget", +# 127| cl::desc("growRegion() does not scale with the number of BB edges, so " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:131: constructor_uses_global_object: The constructor of global object "GreedyRegClassPriorityTrumpsGlobalness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GreedyRegClassPriorityTrumpsGlobalness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 129| cl::init(10000), cl::Hidden); +# 130| +# 131|-> static cl::opt GreedyRegClassPriorityTrumpsGlobalness( +# 132| "greedy-regclass-priority-trumps-globalness", +# 133| cl::desc("Change the greedy register allocator's live range priority " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:138: constructor_uses_global_object: The constructor of global object "GreedyReverseLocalAssignment" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GreedyReverseLocalAssignment" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| cl::Hidden); +# 137| +# 138|-> static cl::opt GreedyReverseLocalAssignment( +# 139| "greedy-reverse-local-assignment", +# 140| cl::desc("Reverse allocation order of local live ranges, such that " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocPBQP.cpp:99: constructor_uses_global_object: The constructor of global object "PBQPCoalescing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PBQPCoalescing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| +# 98| static cl::opt +# 99|-> PBQPCoalescing("pbqp-coalescing", +# 100| cl::desc("Attempt coalescing during PBQP register allocation."), +# 101| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocPriorityAdvisor.cpp:23: constructor_uses_global_object: The constructor of global object "Mode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| using namespace llvm; +# 22| +# 23|-> static cl::opt Mode( +# 24| "regalloc-enable-priority-advisor", cl::Hidden, +# 25| cl::init(RegAllocPriorityAdvisorAnalysis::AdvisorMode::Default), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:29: constructor_uses_global_object: The constructor of global object "CopyWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CopyWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| +# 28| using namespace llvm; +# 29|-> cl::opt CopyWeight("regalloc-copy-weight", cl::init(0.2), cl::Hidden); +# 30| cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31| cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:30: constructor_uses_global_object: The constructor of global object "LoadWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoadWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace llvm; +# 29| cl::opt CopyWeight("regalloc-copy-weight", cl::init(0.2), cl::Hidden); +# 30|-> cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31| cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); +# 32| cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:31: constructor_uses_global_object: The constructor of global object "StoreWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StoreWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| cl::opt CopyWeight("regalloc-copy-weight", cl::init(0.2), cl::Hidden); +# 30| cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31|-> cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); +# 32| cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), +# 33| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:32: constructor_uses_global_object: The constructor of global object "CheapRematWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CheapRematWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31| cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); +# 32|-> cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), +# 33| cl::Hidden); +# 34| cl::opt ExpensiveRematWeight("regalloc-expensive-remat-weight", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:34: constructor_uses_global_object: The constructor of global object "ExpensiveRematWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpensiveRematWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), +# 33| cl::Hidden); +# 34|-> cl::opt ExpensiveRematWeight("regalloc-expensive-remat-weight", +# 35| cl::init(1.0), cl::Hidden); +# 36| #define DEBUG_TYPE "regalloc-score" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterClassInfo.cpp:37: constructor_uses_global_object: The constructor of global object "StressRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static cl::opt +# 37|-> StressRA("stress-regalloc", cl::Hidden, cl::init(0), cl::value_desc("N"), +# 38| cl::desc("Limit all regclasses to N registers")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:75: constructor_uses_global_object: The constructor of global object "EnableJoining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableJoining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| STATISTIC(NumShrinkToUses, "Number of shrinkToUses called"); +# 74| +# 75|-> static cl::opt EnableJoining("join-liveintervals", +# 76| cl::desc("Coalesce copies (default=true)"), +# 77| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:79: constructor_uses_global_object: The constructor of global object "UseTerminalRule" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseTerminalRule" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| cl::init(true), cl::Hidden); +# 78| +# 79|-> static cl::opt UseTerminalRule("terminal-rule", +# 80| cl::desc("Apply the terminal rule"), +# 81| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:85: constructor_uses_global_object: The constructor of global object "EnableJoinSplits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableJoinSplits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| /// Temporary flag to test critical edge unsplitting. +# 84| static cl::opt +# 85|-> EnableJoinSplits("join-splitedges", +# 86| cl::desc("Coalesce copies on split edges (default=subtarget)"), cl::Hidden); +# 87| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:90: constructor_uses_global_object: The constructor of global object "EnableGlobalCopies" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalCopies" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| /// Temporary flag to test global copy optimization. +# 89| static cl::opt +# 90|-> EnableGlobalCopies("join-globalcopies", +# 91| cl::desc("Coalesce copies that span blocks (default=subtarget)"), +# 92| cl::init(cl::BOU_UNSET), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:95: constructor_uses_global_object: The constructor of global object "VerifyCoalescing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyCoalescing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> VerifyCoalescing("verify-coalescing", +# 96| cl::desc("Verify machine instrs before and after register coalescing"), +# 97| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:99: constructor_uses_global_object: The constructor of global object "LateRematUpdateThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LateRematUpdateThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| cl::Hidden); +# 98| +# 99|-> static cl::opt LateRematUpdateThreshold( +# 100| "late-remat-update-threshold", cl::Hidden, +# 101| cl::desc("During rematerialization for a copy, if the def instruction has " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:108: constructor_uses_global_object: The constructor of global object "LargeIntervalSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LargeIntervalSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| cl::init(100)); +# 107| +# 108|-> static cl::opt LargeIntervalSizeThreshold( +# 109| "large-interval-size-threshold", cl::Hidden, +# 110| cl::desc("If the valnos size of an interval is larger than the threshold, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:114: constructor_uses_global_object: The constructor of global object "LargeIntervalFreqThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LargeIntervalFreqThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| cl::init(100)); +# 113| +# 114|-> static cl::opt LargeIntervalFreqThreshold( +# 115| "large-interval-freq-threshold", cl::Hidden, +# 116| cl::desc("For a large interval, if it is coalesed with other live " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterUsageInfo.cpp:31: constructor_uses_global_object: The constructor of global object "DumpRegUsage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DumpRegUsage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt DumpRegUsage( +# 32| "print-regusage", cl::init(false), cl::Hidden, +# 33| cl::desc("print register usage details collected for analysis.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SafeStack.cpp:97: constructor_uses_global_object: The constructor of global object "SafeStackUsePointerAddress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SafeStackUsePointerAddress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| /// access safe stack pointer. +# 96| static cl::opt +# 97|-> SafeStackUsePointerAddress("safestack-use-pointer-address", +# 98| cl::init(false), cl::Hidden); +# 99| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SafeStack.cpp:100: constructor_uses_global_object: The constructor of global object "ClColoring" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClColoring" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| cl::init(false), cl::Hidden); +# 99| +# 100|-> static cl::opt ClColoring("safe-stack-coloring", +# 101| cl::desc("enable safe stack coloring"), +# 102| cl::Hidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SafeStackLayout.cpp:23: constructor_uses_global_object: The constructor of global object "ClLayout" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClLayout" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| #define DEBUG_TYPE "safestacklayout" +# 22| +# 23|-> static cl::opt ClLayout("safe-stack-layout", +# 24| cl::desc("enable safe stack layout"), cl::Hidden, +# 25| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:65: constructor_uses_global_object: The constructor of global object "EnableAASchedMI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAASchedMI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| static cl::opt +# 65|-> EnableAASchedMI("enable-aa-sched-mi", cl::Hidden, +# 66| cl::desc("Enable use of AA during MI DAG construction")); +# 67| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:68: constructor_uses_global_object: The constructor of global object "UseTBAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseTBAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| cl::desc("Enable use of AA during MI DAG construction")); +# 67| +# 68|-> static cl::opt UseTBAA("use-tbaa-in-sched-mi", cl::Hidden, +# 69| cl::init(true), cl::desc("Enable use of TBAA during MI DAG construction")); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:77: constructor_uses_global_object: The constructor of global object "HugeRegion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeRegion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| // When Stores and Loads maps (or NonAliasStores and NonAliasLoads) +# 76| // together hold this many SUs, a reduction of maps will be done. +# 77|-> static cl::opt HugeRegion("dag-maps-huge-region", cl::Hidden, +# 78| cl::init(1000), cl::desc("The limit to use while constructing the DAG " +# 79| "prior to scheduling, at which point a trade-off " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:82: constructor_uses_global_object: The constructor of global object "ReductionSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReductionSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| "is made to avoid excessive compile time.")); +# 81| +# 82|-> static cl::opt ReductionSize( +# 83| "dag-maps-reduction-size", cl::Hidden, +# 84| cl::desc("A huge scheduling region will have maps reduced by this many " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:62: constructor_uses_global_object: The constructor of global object "ColdOperandThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdOperandThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| STATISTIC(NumSelectsConverted, "Number of selects converted"); +# 61| +# 62|-> static cl::opt ColdOperandThreshold( +# 63| "cold-operand-threshold", +# 64| cl::desc("Maximum frequency of path for an operand to be considered cold."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:67: constructor_uses_global_object: The constructor of global object "ColdOperandMaxCostMultiplier" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdOperandMaxCostMultiplier" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::init(20), cl::Hidden); +# 66| +# 67|-> static cl::opt ColdOperandMaxCostMultiplier( +# 68| "cold-operand-max-cost-multiplier", +# 69| cl::desc("Maximum cost multiplier of TCC_expensive for the dependence " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:74: constructor_uses_global_object: The constructor of global object "GainGradientThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GainGradientThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| +# 73| static cl::opt +# 74|-> GainGradientThreshold("select-opti-loop-gradient-gain-threshold", +# 75| cl::desc("Gradient gain threshold (%)."), +# 76| cl::init(25), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:79: constructor_uses_global_object: The constructor of global object "GainCycleThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GainCycleThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> GainCycleThreshold("select-opti-loop-cycle-gain-threshold", +# 80| cl::desc("Minimum gain per loop (in cycles) threshold."), +# 81| cl::init(4), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:83: constructor_uses_global_object: The constructor of global object "GainRelativeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GainRelativeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| cl::init(4), cl::Hidden); +# 82| +# 83|-> static cl::opt GainRelativeThreshold( +# 84| "select-opti-loop-relative-gain-threshold", +# 85| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:89: constructor_uses_global_object: The constructor of global object "MispredictDefaultRate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MispredictDefaultRate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| cl::init(8), cl::Hidden); +# 88| +# 89|-> static cl::opt MispredictDefaultRate( +# 90| "mispredict-default-rate", cl::Hidden, cl::init(25), +# 91| cl::desc("Default mispredict rate (initialized to 25%).")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:94: constructor_uses_global_object: The constructor of global object "DisableLoopLevelHeuristics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLoopLevelHeuristics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| +# 93| static cl::opt +# 94|-> DisableLoopLevelHeuristics("disable-loop-level-heuristics", cl::Hidden, +# 95| cl::init(false), +# 96| cl::desc("Disable loop-level heuristics.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:91: constructor_uses_global_object: The constructor of global object "CombinerGlobalAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CombinerGlobalAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| +# 90| static cl::opt +# 91|-> CombinerGlobalAA("combiner-global-alias-analysis", cl::Hidden, +# 92| cl::desc("Enable DAG combiner's use of IR alias analysis")); +# 93| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:95: constructor_uses_global_object: The constructor of global object "UseTBAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseTBAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> UseTBAA("combiner-use-tbaa", cl::Hidden, cl::init(true), +# 96| cl::desc("Enable DAG combiner's use of TBAA")); +# 97| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:108: constructor_uses_global_object: The constructor of global object "StressLoadSlicing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressLoadSlicing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| /// is enabled, load slicing bypasses most of its profitability guards. +# 107| static cl::opt +# 108|-> StressLoadSlicing("combiner-stress-load-slicing", cl::Hidden, +# 109| cl::desc("Bypass the profitability model of load slicing"), +# 110| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:113: constructor_uses_global_object: The constructor of global object "MaySplitLoadIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaySplitLoadIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| +# 112| static cl::opt +# 113|-> MaySplitLoadIndex("combiner-split-load-index", cl::Hidden, cl::init(true), +# 114| cl::desc("DAG combiner may split indexing from loads")); +# 115| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:117: constructor_uses_global_object: The constructor of global object "EnableStoreMerging" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableStoreMerging" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 115| +# 116| static cl::opt +# 117|-> EnableStoreMerging("combiner-store-merging", cl::Hidden, cl::init(true), +# 118| cl::desc("DAG combiner enable merging multiple stores " +# 119| "into a wider store")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:121: constructor_uses_global_object: The constructor of global object "TokenFactorInlineLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TokenFactorInlineLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| "into a wider store")); +# 120| +# 121|-> static cl::opt TokenFactorInlineLimit( +# 122| "combiner-tokenfactor-inline-limit", cl::Hidden, cl::init(2048), +# 123| cl::desc("Limit the number of operands to inline for Token Factors")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:125: constructor_uses_global_object: The constructor of global object "StoreMergeDependenceLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StoreMergeDependenceLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| cl::desc("Limit the number of operands to inline for Token Factors")); +# 124| +# 125|-> static cl::opt StoreMergeDependenceLimit( +# 126| "combiner-store-merge-dependence-limit", cl::Hidden, cl::init(10), +# 127| cl::desc("Limit the number of times for the same StoreNode and RootNode " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:130: constructor_uses_global_object: The constructor of global object "EnableReduceLoadOpStoreWidth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableReduceLoadOpStoreWidth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| "to bail out in store merging dependence check")); +# 129| +# 130|-> static cl::opt EnableReduceLoadOpStoreWidth( +# 131| "combiner-reduce-load-op-store-width", cl::Hidden, cl::init(true), +# 132| cl::desc("DAG combiner enable reducing the width of load/op/store " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:135: constructor_uses_global_object: The constructor of global object "EnableShrinkLoadReplaceStoreWithStore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableShrinkLoadReplaceStoreWithStore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| "sequence")); +# 134| +# 135|-> static cl::opt EnableShrinkLoadReplaceStoreWithStore( +# 136| "combiner-shrink-load-replace-store-with-store", cl::Hidden, cl::init(true), +# 137| cl::desc("DAG combiner enable load//store with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:140: constructor_uses_global_object: The constructor of global object "EnableVectorFCopySignExtendRound" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableVectorFCopySignExtendRound" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| "a narrower store")); +# 139| +# 140|-> static cl::opt EnableVectorFCopySignExtendRound( +# 141| "combiner-vector-fcopysign-extend-round", cl::Hidden, cl::init(false), +# 142| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:26: constructor_uses_global_object: The constructor of global object "EnableExpensiveChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableExpensiveChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> EnableExpensiveChecks("enable-legalize-types-checking", cl::Hidden); +# 27| +# 28| /// Do extensive, expensive, basic correctness checking. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp:36: constructor_uses_global_object: The constructor of global object "DisableDFASched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDFASched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> DisableDFASched("disable-dfa-sched", cl::Hidden, +# 37| cl::desc("Disable use of DFA during scheduling")); +# 38| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp:39: constructor_uses_global_object: The constructor of global object "RegPressureThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RegPressureThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::desc("Disable use of DFA during scheduling")); +# 38| +# 39|-> static cl::opt RegPressureThreshold( +# 40| "dfa-sched-reg-pressure-threshold", cl::Hidden, cl::init(5), +# 41| cl::desc("Track reg pressure and switch priority to in-depth")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:92: constructor_uses_global_object: The constructor of global object "DisableSchedCycles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedCycles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| createILPListDAGScheduler); +# 91| +# 92|-> static cl::opt DisableSchedCycles( +# 93| "disable-sched-cycles", cl::Hidden, cl::init(false), +# 94| cl::desc("Disable cycle-level precision during preRA scheduling")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:98: constructor_uses_global_object: The constructor of global object "DisableSchedRegPressure" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedRegPressure" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| // Temporary sched=list-ilp flags until the heuristics are robust. +# 97| // Some options are also available under sched=list-hybrid. +# 98|-> static cl::opt DisableSchedRegPressure( +# 99| "disable-sched-reg-pressure", cl::Hidden, cl::init(false), +# 100| cl::desc("Disable regpressure priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:101: constructor_uses_global_object: The constructor of global object "DisableSchedLiveUses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedLiveUses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 99| "disable-sched-reg-pressure", cl::Hidden, cl::init(false), +# 100| cl::desc("Disable regpressure priority in sched=list-ilp")); +# 101|-> static cl::opt DisableSchedLiveUses( +# 102| "disable-sched-live-uses", cl::Hidden, cl::init(true), +# 103| cl::desc("Disable live use priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:104: constructor_uses_global_object: The constructor of global object "DisableSchedVRegCycle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedVRegCycle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| "disable-sched-live-uses", cl::Hidden, cl::init(true), +# 103| cl::desc("Disable live use priority in sched=list-ilp")); +# 104|-> static cl::opt DisableSchedVRegCycle( +# 105| "disable-sched-vrcycle", cl::Hidden, cl::init(false), +# 106| cl::desc("Disable virtual register cycle interference checks")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:107: constructor_uses_global_object: The constructor of global object "DisableSchedPhysRegJoin" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedPhysRegJoin" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| "disable-sched-vrcycle", cl::Hidden, cl::init(false), +# 106| cl::desc("Disable virtual register cycle interference checks")); +# 107|-> static cl::opt DisableSchedPhysRegJoin( +# 108| "disable-sched-physreg-join", cl::Hidden, cl::init(false), +# 109| cl::desc("Disable physreg def-use affinity")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:110: constructor_uses_global_object: The constructor of global object "DisableSchedStalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedStalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| "disable-sched-physreg-join", cl::Hidden, cl::init(false), +# 109| cl::desc("Disable physreg def-use affinity")); +# 110|-> static cl::opt DisableSchedStalls( +# 111| "disable-sched-stalls", cl::Hidden, cl::init(true), +# 112| cl::desc("Disable no-stall priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:113: constructor_uses_global_object: The constructor of global object "DisableSchedCriticalPath" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedCriticalPath" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| "disable-sched-stalls", cl::Hidden, cl::init(true), +# 112| cl::desc("Disable no-stall priority in sched=list-ilp")); +# 113|-> static cl::opt DisableSchedCriticalPath( +# 114| "disable-sched-critical-path", cl::Hidden, cl::init(false), +# 115| cl::desc("Disable critical path priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:116: constructor_uses_global_object: The constructor of global object "DisableSchedHeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedHeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| "disable-sched-critical-path", cl::Hidden, cl::init(false), +# 115| cl::desc("Disable critical path priority in sched=list-ilp")); +# 116|-> static cl::opt DisableSchedHeight( +# 117| "disable-sched-height", cl::Hidden, cl::init(false), +# 118| cl::desc("Disable scheduled-height priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:119: constructor_uses_global_object: The constructor of global object "Disable2AddrHack" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Disable2AddrHack" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| "disable-sched-height", cl::Hidden, cl::init(false), +# 118| cl::desc("Disable scheduled-height priority in sched=list-ilp")); +# 119|-> static cl::opt Disable2AddrHack( +# 120| "disable-2addr-hack", cl::Hidden, cl::init(true), +# 121| cl::desc("Disable scheduler's two-address hack")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:123: constructor_uses_global_object: The constructor of global object "MaxReorderWindow" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxReorderWindow" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 121| cl::desc("Disable scheduler's two-address hack")); +# 122| +# 123|-> static cl::opt MaxReorderWindow( +# 124| "max-sched-reorder", cl::Hidden, cl::init(6), +# 125| cl::desc("Number of instructions to allow ahead of the critical path " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:128: constructor_uses_global_object: The constructor of global object "AvgIPC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AvgIPC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| "in sched=list-ilp")); +# 127| +# 128|-> static cl::opt AvgIPC( +# 129| "sched-avg-ipc", cl::Hidden, cl::init(1), +# 130| cl::desc("Average inst/cycle whan no target itinerary exists.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp:44: constructor_uses_global_object: The constructor of global object "HighLatencyCycles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HighLatencyCycles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| // without a target itinerary. The choice of number here has more to do with +# 43| // balancing scheduler heuristics than with the actual machine latency. +# 44|-> static cl::opt HighLatencyCycles( +# 45| "sched-high-latency-cycles", cl::Hidden, cl::init(10), +# 46| cl::desc("Roughly estimate the number of cycles that 'long latency'" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:101: constructor_uses_global_object: The constructor of global object "EnableMemCpyDAGOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemCpyDAGOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 99| #define DEBUG_TYPE "selectiondag" +# 100| +# 101|-> static cl::opt EnableMemCpyDAGOpt("enable-memcpy-dag-opt", +# 102| cl::Hidden, cl::init(true), +# 103| cl::desc("Gang up loads and stores generated by inlining of memcpy")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:105: constructor_uses_global_object: The constructor of global object "MaxLdStGlue" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxLdStGlue" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 103| cl::desc("Gang up loads and stores generated by inlining of memcpy")); +# 104| +# 105|-> static cl::opt MaxLdStGlue("ldstmemcpy-glue-max", +# 106| cl::desc("Number limit for gluing ld/st of memcpy."), +# 107| cl::Hidden, cl::init(0)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5456: var_decl: Declaring variable "apf". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5458: uninit_use_in_call: Using uninitialized value "apf.U" when calling "convertFromAPInt". +# 5456| APFloat apf(EVTToAPFloatSemantics(VT), +# 5457| APInt::getZero(VT.getSizeInBits())); +# 5458|-> (void)apf.convertFromAPInt(Val, +# 5459| Opcode==ISD::SINT_TO_FP, +# 5460| APFloat::rmNearestTiesToEven); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:119: constructor_uses_global_object: The constructor of global object "InsertAssertAlign" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InsertAssertAlign" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| +# 118| static cl::opt +# 119|-> InsertAssertAlign("insert-assert-align", cl::init(true), +# 120| cl::desc("Insert the experimental `assertalign` node."), +# 121| cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:124: constructor_uses_global_object: The constructor of global object "LimitFPPrecision" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LimitFPPrecision" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| +# 123| static cl::opt +# 124|-> LimitFPPrecision("limit-float-precision", +# 125| cl::desc("Generate low-precision inline sequences " +# 126| "for some float libcalls"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:130: constructor_uses_global_object: The constructor of global object "SwitchPeelThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwitchPeelThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| cl::init(0)); +# 129| +# 130|-> static cl::opt SwitchPeelThreshold( +# 131| "switch-peel-threshold", cl::Hidden, cl::init(66), +# 132| cl::desc("Set the case probability threshold for peeling the case from a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp:54: constructor_uses_global_object: The constructor of global object "VerboseDAGDumping" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerboseDAGDumping" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::opt +# 54|-> VerboseDAGDumping("dag-dump-verbose", cl::Hidden, +# 55| cl::desc("Display more information when dumping selection " +# 56| "DAG nodes.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:126: constructor_uses_global_object: The constructor of global object "EnableFastISelAbort" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFastISelAbort" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| "Number of entry blocks where fast isel failed to lower arguments"); +# 125| +# 126|-> static cl::opt EnableFastISelAbort( +# 127| "fast-isel-abort", cl::Hidden, +# 128| cl::desc("Enable abort calls when \"fast\" instruction selection " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:134: constructor_uses_global_object: The constructor of global object "EnableFastISelFallbackReport" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFastISelFallbackReport" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| "to SelectionDAG.")); +# 133| +# 134|-> static cl::opt EnableFastISelFallbackReport( +# 135| "fast-isel-report-on-fallback", cl::Hidden, +# 136| cl::desc("Emit a diagnostic when \"fast\" instruction selection " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:140: constructor_uses_global_object: The constructor of global object "UseMBPI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseMBPI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> UseMBPI("use-mbpi", +# 141| cl::desc("use Machine Branch Probability Info"), +# 142| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:198: constructor_uses_global_object: The constructor of global object "ISHeuristic" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ISHeuristic" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 196| static cl::opt> +# 198|-> ISHeuristic("pre-RA-sched", +# 199| cl::init(&createDefaultScheduler), cl::Hidden, +# 200| cl::desc("Instruction schedulers available (before register" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:65: constructor_uses_global_object: The constructor of global object "UseRegistersForDeoptValues" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseRegistersForDeoptValues" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| "Maximum number of stack slots required for a singe statepoint"); +# 64| +# 65|-> cl::opt UseRegistersForDeoptValues( +# 66| "use-registers-for-deopt-values", cl::Hidden, cl::init(false), +# 67| cl::desc("Allow using registers for non pointer deopt args")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:69: constructor_uses_global_object: The constructor of global object "UseRegistersForGCPointersInLandingPad" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseRegistersForGCPointersInLandingPad" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::desc("Allow using registers for non pointer deopt args")); +# 68| +# 69|-> cl::opt UseRegistersForGCPointersInLandingPad( +# 70| "use-registers-for-gc-values-in-landing-pad", cl::Hidden, cl::init(false), +# 71| cl::desc("Allow using registers for gc pointer in landing pad")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:73: constructor_uses_global_object: The constructor of global object "MaxRegistersForGCPointers" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxRegistersForGCPointers" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::desc("Allow using registers for gc pointer in landing pad")); +# 72| +# 73|-> cl::opt MaxRegistersForGCPointers( +# 74| "max-registers-for-gc-values", cl::Hidden, cl::init(0), +# 75| cl::desc("Max number of VRegs allowed to pass GC pointer meta args in")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ShrinkWrap.cpp:99: constructor_uses_global_object: The constructor of global object "EnableShrinkWrapOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableShrinkWrapOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| +# 98| static cl::opt +# 99|-> EnableShrinkWrapOpt("enable-shrink-wrap", cl::Hidden, +# 100| cl::desc("enable the shrink-wrapping pass")); +# 101| static cl::opt EnablePostShrinkWrapOpt( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ShrinkWrap.cpp:101: constructor_uses_global_object: The constructor of global object "EnablePostShrinkWrapOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostShrinkWrapOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 99| EnableShrinkWrapOpt("enable-shrink-wrap", cl::Hidden, +# 100| cl::desc("enable the shrink-wrapping pass")); +# 101|-> static cl::opt EnablePostShrinkWrapOpt( +# 102| "enable-shrink-wrap-region-split", cl::init(true), cl::Hidden, +# 103| cl::desc("enable splitting of the restore block if possible")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackColoring.cpp:67: constructor_uses_global_object: The constructor of global object "DisableColoring" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableColoring" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl::opt +# 67|-> DisableColoring("no-stack-coloring", +# 68| cl::init(false), cl::Hidden, +# 69| cl::desc("Disable stack coloring")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackColoring.cpp:77: constructor_uses_global_object: The constructor of global object "ProtectFromEscapedAllocas" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProtectFromEscapedAllocas" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| /// is treated as overriding LifetimeStartOnFirstUse below. +# 76| static cl::opt +# 77|-> ProtectFromEscapedAllocas("protect-from-escaped-allocas", +# 78| cl::init(false), cl::Hidden, +# 79| cl::desc("Do not optimize lifetime zones that " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackColoring.cpp:87: constructor_uses_global_object: The constructor of global object "LifetimeStartOnFirstUse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LifetimeStartOnFirstUse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| /// more info. +# 86| static cl::opt +# 87|-> LifetimeStartOnFirstUse("stackcoloring-lifetime-start-on-first-use", +# 88| cl::init(true), cl::Hidden, +# 89| cl::desc("Treat stack lifetimes as starting on first use, not on START marker.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackMapLivenessAnalysis.cpp:31: constructor_uses_global_object: The constructor of global object "EnablePatchPointLiveness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePatchPointLiveness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| #define DEBUG_TYPE "stackmaps" +# 30| +# 31|-> static cl::opt EnablePatchPointLiveness( +# 32| "enable-patchpoint-liveness", cl::Hidden, cl::init(true), +# 33| cl::desc("Enable PatchPoint Liveness Analysis Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackMaps.cpp:42: constructor_uses_global_object: The constructor of global object "StackMapVersion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackMapVersion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| #define DEBUG_TYPE "stackmaps" +# 41| +# 42|-> static cl::opt StackMapVersion( +# 43| "stackmap-version", cl::init(3), cl::Hidden, +# 44| cl::desc("Specify the stackmap encoding version (default = 3)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackProtector.cpp:62: constructor_uses_global_object: The constructor of global object "EnableSelectionDAGSP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSelectionDAGSP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| " taken."); +# 61| +# 62|-> static cl::opt EnableSelectionDAGSP("enable-selectiondag-sp", +# 63| cl::init(true), cl::Hidden); +# 64| static cl::opt DisableCheckNoReturn("disable-check-noreturn-call", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackProtector.cpp:64: constructor_uses_global_object: The constructor of global object "DisableCheckNoReturn" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCheckNoReturn" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| static cl::opt EnableSelectionDAGSP("enable-selectiondag-sp", +# 63| cl::init(true), cl::Hidden); +# 64|-> static cl::opt DisableCheckNoReturn("disable-check-noreturn-call", +# 65| cl::init(false), cl::Hidden); +# 66| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackSlotColoring.cpp:50: constructor_uses_global_object: The constructor of global object "DisableSharing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSharing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> DisableSharing("no-stack-slot-sharing", +# 51| cl::init(false), cl::Hidden, +# 52| cl::desc("Suppress slot sharing during stack coloring")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackSlotColoring.cpp:54: constructor_uses_global_object: The constructor of global object "DCELimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DCELimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::desc("Suppress slot sharing during stack coloring")); +# 53| +# 54|-> static cl::opt DCELimit("ssc-dce-limit", cl::init(-1), cl::Hidden); +# 55| +# 56| STATISTIC(NumEliminated, "Number of stack slots eliminated due to coloring"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:60: constructor_uses_global_object: The constructor of global object "TailDuplicateSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDuplicateSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| +# 59| // Heuristic for tail duplication. +# 60|-> static cl::opt TailDuplicateSize( +# 61| "tail-dup-size", +# 62| cl::desc("Maximum instructions to consider tail duplicating"), cl::init(2), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:65: constructor_uses_global_object: The constructor of global object "TailDupIndirectBranchSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupIndirectBranchSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::Hidden); +# 64| +# 65|-> static cl::opt TailDupIndirectBranchSize( +# 66| "tail-dup-indirect-size", +# 67| cl::desc("Maximum instructions to consider tail duplicating blocks that " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:72: constructor_uses_global_object: The constructor of global object "TailDupVerify" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupVerify" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| +# 71| static cl::opt +# 72|-> TailDupVerify("tail-dup-verify", +# 73| cl::desc("Verify sanity of PHI instructions during taildup"), +# 74| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:76: constructor_uses_global_object: The constructor of global object "TailDupLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| cl::init(false), cl::Hidden); +# 75| +# 76|-> static cl::opt TailDupLimit("tail-dup-limit", cl::init(~0U), +# 77| cl::Hidden); +# 78| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetInstrInfo.cpp:40: constructor_uses_global_object: The constructor of global object "DisableHazardRecognizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableHazardRecognizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| using namespace llvm; +# 39| +# 40|-> static cl::opt DisableHazardRecognizer( +# 41| "disable-sched-hazard", cl::Hidden, cl::init(false), +# 42| cl::desc("Disable hazard detection during preRA scheduling")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:68: constructor_uses_global_object: The constructor of global object "JumpIsExpensiveOverride" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpIsExpensiveOverride" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| using namespace llvm; +# 67| +# 68|-> static cl::opt JumpIsExpensiveOverride( +# 69| "jump-is-expensive", cl::init(false), +# 70| cl::desc("Do not create extra branches to split comparison logic."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:73: constructor_uses_global_object: The constructor of global object "MinimumJumpTableEntries" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MinimumJumpTableEntries" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::Hidden); +# 72| +# 73|-> static cl::opt MinimumJumpTableEntries +# 74| ("min-jump-table-entries", cl::init(4), cl::Hidden, +# 75| cl::desc("Set minimum number of entries to use a jump table.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:77: constructor_uses_global_object: The constructor of global object "MaximumJumpTableSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaximumJumpTableSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::desc("Set minimum number of entries to use a jump table.")); +# 76| +# 77|-> static cl::opt MaximumJumpTableSize +# 78| ("max-jump-table-size", cl::init(UINT_MAX), cl::Hidden, +# 79| cl::desc("Set maximum size of jump tables.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:83: constructor_uses_global_object: The constructor of global object "JumpTableDensity" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpTableDensity" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| /// Minimum jump table density for normal functions. +# 82| static cl::opt +# 83|-> JumpTableDensity("jump-table-density", cl::init(10), cl::Hidden, +# 84| cl::desc("Minimum density for building a jump table in " +# 85| "a normal function")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:88: constructor_uses_global_object: The constructor of global object "OptsizeJumpTableDensity" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptsizeJumpTableDensity" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| +# 87| /// Minimum jump table density for -Os or -Oz functions. +# 88|-> static cl::opt OptsizeJumpTableDensity( +# 89| "optsize-jump-table-density", cl::init(40), cl::Hidden, +# 90| cl::desc("Minimum density for building a jump table in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:97: constructor_uses_global_object: The constructor of global object "DisableStrictNodeMutation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableStrictNodeMutation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| // during development. When the backend supports strict float operation, this +# 96| // option will be meaningless. +# 97|-> static cl::opt DisableStrictNodeMutation("disable-strictnode-mutation", +# 98| cl::desc("Don't mutate strict-float node to a legalize node"), +# 99| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp:74: constructor_uses_global_object: The constructor of global object "JumpTableInFunctionSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpTableInFunctionSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| using namespace dwarf; +# 73| +# 74|-> static cl::opt JumpTableInFunctionSection( +# 75| "jumptable-in-function-section", cl::Hidden, cl::init(false), +# 76| cl::desc("Putting Jump Table in function section")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:58: constructor_uses_global_object: The constructor of global object "EnableIPRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableIPRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| +# 57| static cl::opt +# 58|-> EnableIPRA("enable-ipra", cl::init(false), cl::Hidden, +# 59| cl::desc("Enable interprocedural register allocation " +# 60| "to reduce load/store at procedure calls.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:61: constructor_uses_global_object: The constructor of global object "DisablePostRASched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePostRASched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| cl::desc("Enable interprocedural register allocation " +# 60| "to reduce load/store at procedure calls.")); +# 61|-> static cl::opt DisablePostRASched("disable-post-ra", cl::Hidden, +# 62| cl::desc("Disable Post Regalloc Scheduler")); +# 63| static cl::opt DisableBranchFold("disable-branch-fold", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:63: constructor_uses_global_object: The constructor of global object "DisableBranchFold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBranchFold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| static cl::opt DisablePostRASched("disable-post-ra", cl::Hidden, +# 62| cl::desc("Disable Post Regalloc Scheduler")); +# 63|-> static cl::opt DisableBranchFold("disable-branch-fold", cl::Hidden, +# 64| cl::desc("Disable branch folding")); +# 65| static cl::opt DisableTailDuplicate("disable-tail-duplicate", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:65: constructor_uses_global_object: The constructor of global object "DisableTailDuplicate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTailDuplicate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| static cl::opt DisableBranchFold("disable-branch-fold", cl::Hidden, +# 64| cl::desc("Disable branch folding")); +# 65|-> static cl::opt DisableTailDuplicate("disable-tail-duplicate", cl::Hidden, +# 66| cl::desc("Disable tail duplication")); +# 67| static cl::opt DisableEarlyTailDup("disable-early-taildup", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:67: constructor_uses_global_object: The constructor of global object "DisableEarlyTailDup" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableEarlyTailDup" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| static cl::opt DisableTailDuplicate("disable-tail-duplicate", cl::Hidden, +# 66| cl::desc("Disable tail duplication")); +# 67|-> static cl::opt DisableEarlyTailDup("disable-early-taildup", cl::Hidden, +# 68| cl::desc("Disable pre-register allocation tail duplication")); +# 69| static cl::opt DisableBlockPlacement("disable-block-placement", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:69: constructor_uses_global_object: The constructor of global object "DisableBlockPlacement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBlockPlacement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| static cl::opt DisableEarlyTailDup("disable-early-taildup", cl::Hidden, +# 68| cl::desc("Disable pre-register allocation tail duplication")); +# 69|-> static cl::opt DisableBlockPlacement("disable-block-placement", +# 70| cl::Hidden, cl::desc("Disable probability-driven block placement")); +# 71| static cl::opt EnableBlockPlacementStats("enable-block-placement-stats", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:71: constructor_uses_global_object: The constructor of global object "EnableBlockPlacementStats" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableBlockPlacementStats" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| static cl::opt DisableBlockPlacement("disable-block-placement", +# 70| cl::Hidden, cl::desc("Disable probability-driven block placement")); +# 71|-> static cl::opt EnableBlockPlacementStats("enable-block-placement-stats", +# 72| cl::Hidden, cl::desc("Collect probability-driven block placement stats")); +# 73| static cl::opt DisableSSC("disable-ssc", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:73: constructor_uses_global_object: The constructor of global object "DisableSSC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSSC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| static cl::opt EnableBlockPlacementStats("enable-block-placement-stats", +# 72| cl::Hidden, cl::desc("Collect probability-driven block placement stats")); +# 73|-> static cl::opt DisableSSC("disable-ssc", cl::Hidden, +# 74| cl::desc("Disable Stack Slot Coloring")); +# 75| static cl::opt DisableMachineDCE("disable-machine-dce", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:75: constructor_uses_global_object: The constructor of global object "DisableMachineDCE" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineDCE" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| static cl::opt DisableSSC("disable-ssc", cl::Hidden, +# 74| cl::desc("Disable Stack Slot Coloring")); +# 75|-> static cl::opt DisableMachineDCE("disable-machine-dce", cl::Hidden, +# 76| cl::desc("Disable Machine Dead Code Elimination")); +# 77| static cl::opt DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:77: constructor_uses_global_object: The constructor of global object "DisableEarlyIfConversion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableEarlyIfConversion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| static cl::opt DisableMachineDCE("disable-machine-dce", cl::Hidden, +# 76| cl::desc("Disable Machine Dead Code Elimination")); +# 77|-> static cl::opt DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden, +# 78| cl::desc("Disable Early If-conversion")); +# 79| static cl::opt DisableMachineLICM("disable-machine-licm", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:79: constructor_uses_global_object: The constructor of global object "DisableMachineLICM" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineLICM" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| static cl::opt DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden, +# 78| cl::desc("Disable Early If-conversion")); +# 79|-> static cl::opt DisableMachineLICM("disable-machine-licm", cl::Hidden, +# 80| cl::desc("Disable Machine LICM")); +# 81| static cl::opt DisableMachineCSE("disable-machine-cse", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:81: constructor_uses_global_object: The constructor of global object "DisableMachineCSE" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineCSE" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| static cl::opt DisableMachineLICM("disable-machine-licm", cl::Hidden, +# 80| cl::desc("Disable Machine LICM")); +# 81|-> static cl::opt DisableMachineCSE("disable-machine-cse", cl::Hidden, +# 82| cl::desc("Disable Machine Common Subexpression Elimination")); +# 83| static cl::opt OptimizeRegAlloc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:83: constructor_uses_global_object: The constructor of global object "OptimizeRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptimizeRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| static cl::opt DisableMachineCSE("disable-machine-cse", cl::Hidden, +# 82| cl::desc("Disable Machine Common Subexpression Elimination")); +# 83|-> static cl::opt OptimizeRegAlloc( +# 84| "optimize-regalloc", cl::Hidden, +# 85| cl::desc("Enable optimized register allocation compilation path.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:86: constructor_uses_global_object: The constructor of global object "DisablePostRAMachineLICM" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePostRAMachineLICM" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| "optimize-regalloc", cl::Hidden, +# 85| cl::desc("Enable optimized register allocation compilation path.")); +# 86|-> static cl::opt DisablePostRAMachineLICM("disable-postra-machine-licm", +# 87| cl::Hidden, +# 88| cl::desc("Disable Machine LICM")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:89: constructor_uses_global_object: The constructor of global object "DisableMachineSink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineSink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| cl::Hidden, +# 88| cl::desc("Disable Machine LICM")); +# 89|-> static cl::opt DisableMachineSink("disable-machine-sink", cl::Hidden, +# 90| cl::desc("Disable Machine Sinking")); +# 91| static cl::opt DisablePostRAMachineSink("disable-postra-machine-sink", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:91: constructor_uses_global_object: The constructor of global object "DisablePostRAMachineSink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePostRAMachineSink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| static cl::opt DisableMachineSink("disable-machine-sink", cl::Hidden, +# 90| cl::desc("Disable Machine Sinking")); +# 91|-> static cl::opt DisablePostRAMachineSink("disable-postra-machine-sink", +# 92| cl::Hidden, +# 93| cl::desc("Disable PostRA Machine Sinking")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:94: constructor_uses_global_object: The constructor of global object "DisableLSR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLSR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| cl::Hidden, +# 93| cl::desc("Disable PostRA Machine Sinking")); +# 94|-> static cl::opt DisableLSR("disable-lsr", cl::Hidden, +# 95| cl::desc("Disable Loop Strength Reduction Pass")); +# 96| static cl::opt DisableConstantHoisting("disable-constant-hoisting", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:96: constructor_uses_global_object: The constructor of global object "DisableConstantHoisting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableConstantHoisting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| static cl::opt DisableLSR("disable-lsr", cl::Hidden, +# 95| cl::desc("Disable Loop Strength Reduction Pass")); +# 96|-> static cl::opt DisableConstantHoisting("disable-constant-hoisting", +# 97| cl::Hidden, cl::desc("Disable ConstantHoisting")); +# 98| static cl::opt DisableCGP("disable-cgp", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:98: constructor_uses_global_object: The constructor of global object "DisableCGP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCGP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| static cl::opt DisableConstantHoisting("disable-constant-hoisting", +# 97| cl::Hidden, cl::desc("Disable ConstantHoisting")); +# 98|-> static cl::opt DisableCGP("disable-cgp", cl::Hidden, +# 99| cl::desc("Disable Codegen Prepare")); +# 100| static cl::opt DisableCopyProp("disable-copyprop", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:100: constructor_uses_global_object: The constructor of global object "DisableCopyProp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCopyProp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| static cl::opt DisableCGP("disable-cgp", cl::Hidden, +# 99| cl::desc("Disable Codegen Prepare")); +# 100|-> static cl::opt DisableCopyProp("disable-copyprop", cl::Hidden, +# 101| cl::desc("Disable Copy Propagation pass")); +# 102| static cl::opt DisablePartialLibcallInlining("disable-partial-libcall-inlining", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:102: constructor_uses_global_object: The constructor of global object "DisablePartialLibcallInlining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePartialLibcallInlining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 100| static cl::opt DisableCopyProp("disable-copyprop", cl::Hidden, +# 101| cl::desc("Disable Copy Propagation pass")); +# 102|-> static cl::opt DisablePartialLibcallInlining("disable-partial-libcall-inlining", +# 103| cl::Hidden, cl::desc("Disable Partial Libcall Inlining")); +# 104| static cl::opt DisableAtExitBasedGlobalDtorLowering( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:104: constructor_uses_global_object: The constructor of global object "DisableAtExitBasedGlobalDtorLowering" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAtExitBasedGlobalDtorLowering" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| static cl::opt DisablePartialLibcallInlining("disable-partial-libcall-inlining", +# 103| cl::Hidden, cl::desc("Disable Partial Libcall Inlining")); +# 104|-> static cl::opt DisableAtExitBasedGlobalDtorLowering( +# 105| "disable-atexit-based-global-dtor-lowering", cl::Hidden, +# 106| cl::desc("For MachO, disable atexit()-based global destructor lowering")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:107: constructor_uses_global_object: The constructor of global object "EnableImplicitNullChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableImplicitNullChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| "disable-atexit-based-global-dtor-lowering", cl::Hidden, +# 106| cl::desc("For MachO, disable atexit()-based global destructor lowering")); +# 107|-> static cl::opt EnableImplicitNullChecks( +# 108| "enable-implicit-null-checks", +# 109| cl::desc("Fold null checks into faulting memory operations"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:111: constructor_uses_global_object: The constructor of global object "DisableMergeICmps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMergeICmps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| cl::desc("Fold null checks into faulting memory operations"), +# 110| cl::init(false), cl::Hidden); +# 111|-> static cl::opt DisableMergeICmps("disable-mergeicmps", +# 112| cl::desc("Disable MergeICmps Pass"), +# 113| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:114: constructor_uses_global_object: The constructor of global object "PrintLSR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintLSR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| cl::desc("Disable MergeICmps Pass"), +# 113| cl::init(false), cl::Hidden); +# 114|-> static cl::opt PrintLSR("print-lsr-output", cl::Hidden, +# 115| cl::desc("Print LLVM IR produced by the loop-reduce pass")); +# 116| static cl::opt PrintISelInput("print-isel-input", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:116: constructor_uses_global_object: The constructor of global object "PrintISelInput" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintISelInput" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| static cl::opt PrintLSR("print-lsr-output", cl::Hidden, +# 115| cl::desc("Print LLVM IR produced by the loop-reduce pass")); +# 116|-> static cl::opt PrintISelInput("print-isel-input", cl::Hidden, +# 117| cl::desc("Print LLVM IR input to isel pass")); +# 118| static cl::opt PrintGCInfo("print-gc", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:118: constructor_uses_global_object: The constructor of global object "PrintGCInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintGCInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| static cl::opt PrintISelInput("print-isel-input", cl::Hidden, +# 117| cl::desc("Print LLVM IR input to isel pass")); +# 118|-> static cl::opt PrintGCInfo("print-gc", cl::Hidden, +# 119| cl::desc("Dump garbage collector data")); +# 120| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:121: constructor_uses_global_object: The constructor of global object "VerifyMachineCode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyMachineCode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| cl::desc("Dump garbage collector data")); +# 120| static cl::opt +# 121|-> VerifyMachineCode("verify-machineinstrs", cl::Hidden, +# 122| cl::desc("Verify generated machine code")); +# 123| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:124: constructor_uses_global_object: The constructor of global object "DebugifyAndStripAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugifyAndStripAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| cl::desc("Verify generated machine code")); +# 123| static cl::opt +# 124|-> DebugifyAndStripAll("debugify-and-strip-all-safe", cl::Hidden, +# 125| cl::desc("Debugify MIR before and Strip debug after " +# 126| "each pass except those known to be unsafe " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:128: constructor_uses_global_object: The constructor of global object "DebugifyCheckAndStripAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugifyCheckAndStripAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| "each pass except those known to be unsafe " +# 127| "when debug info is present")); +# 128|-> static cl::opt DebugifyCheckAndStripAll( +# 129| "debugify-check-and-strip-all-safe", cl::Hidden, +# 130| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:135: constructor_uses_global_object: The constructor of global object "EnableMachineOutliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMachineOutliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| "present")); +# 134| // Enable or disable the MachineOutliner. +# 135|-> static cl::opt EnableMachineOutliner( +# 136| "enable-machine-outliner", cl::desc("Enable the machine outliner"), +# 137| cl::Hidden, cl::ValueOptional, cl::init(RunOutliner::TargetDefault), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:147: constructor_uses_global_object: The constructor of global object "DisableCFIFixup" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCFIFixup" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 145| // the pipeline is controlled via the target options, this option serves as +# 146| // manual override. +# 147|-> static cl::opt DisableCFIFixup("disable-cfi-fixup", cl::Hidden, +# 148| cl::desc("Disable the CFI fixup pass")); +# 149| // Enable or disable FastISel. Both options are needed, because + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:153: constructor_uses_global_object: The constructor of global object "EnableFastISelOption" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFastISelOption" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| // able to enable or disable fast-isel independently from -O0. +# 152| static cl::opt +# 153|-> EnableFastISelOption("fast-isel", cl::Hidden, +# 154| cl::desc("Enable the \"fast\" instruction selector")); +# 155| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:156: constructor_uses_global_object: The constructor of global object "EnableGlobalISelOption" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalISelOption" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 154| cl::desc("Enable the \"fast\" instruction selector")); +# 155| +# 156|-> static cl::opt EnableGlobalISelOption( +# 157| "global-isel", cl::Hidden, +# 158| cl::desc("Enable the \"global\" instruction selector")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:163: constructor_uses_global_object: The constructor of global object "PrintAfterISel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAfterISel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| // first... +# 162| static cl::opt +# 163|-> PrintAfterISel("print-after-isel", cl::init(false), cl::Hidden, +# 164| cl::desc("Print machine instrs after ISel")); +# 165| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:166: constructor_uses_global_object: The constructor of global object "EnableGlobalISelAbort" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalISelAbort" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 164| cl::desc("Print machine instrs after ISel")); +# 165| +# 166|-> static cl::opt EnableGlobalISelAbort( +# 167| "global-isel-abort", cl::Hidden, +# 168| cl::desc("Enable abort calls when \"global\" instruction selection " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:178: constructor_uses_global_object: The constructor of global object "DisableRAFSProfileLoader" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableRAFSProfileLoader" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 176| // Disable MIRProfileLoader before RegAlloc. This is for for debugging and +# 177| // tuning purpose. +# 178|-> static cl::opt DisableRAFSProfileLoader( +# 179| "disable-ra-fsprofile-loader", cl::init(false), cl::Hidden, +# 180| cl::desc("Disable MIRProfileLoader before RegAlloc")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:183: constructor_uses_global_object: The constructor of global object "DisableLayoutFSProfileLoader" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLayoutFSProfileLoader" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 181| // Disable MIRProfileLoader before BloackPlacement. This is for for debugging +# 182| // and tuning purpose. +# 183|-> static cl::opt DisableLayoutFSProfileLoader( +# 184| "disable-layout-fsprofile-loader", cl::init(false), cl::Hidden, +# 185| cl::desc("Disable MIRProfileLoader before BlockPlacement")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:188: constructor_uses_global_object: The constructor of global object "FSProfileFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSProfileFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 186| // Specify FSProfile file name. +# 187| static cl::opt +# 188|-> FSProfileFile("fs-profile-file", cl::init(""), cl::value_desc("filename"), +# 189| cl::desc("Flow Sensitive profile file name."), cl::Hidden); +# 190| // Specify Remapping file for FSProfile. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:191: constructor_uses_global_object: The constructor of global object "FSRemappingFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSRemappingFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 189| cl::desc("Flow Sensitive profile file name."), cl::Hidden); +# 190| // Specify Remapping file for FSProfile. +# 191|-> static cl::opt FSRemappingFile( +# 192| "fs-remapping-file", cl::init(""), cl::value_desc("filename"), +# 193| cl::desc("Flow Sensitive profile remapping file name."), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:200: constructor_uses_global_object: The constructor of global object "MISchedPostRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MISchedPostRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 198| // Targets can return true in targetSchedulesPostRAScheduling() and +# 199| // insert a PostRA scheduling pass wherever it wants. +# 200|-> static cl::opt MISchedPostRA( +# 201| "misched-postra", cl::Hidden, +# 202| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:206: constructor_uses_global_object: The constructor of global object "EarlyLiveIntervals" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EarlyLiveIntervals" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 204| +# 205| // Experimental option to run live interval analysis early. +# 206|-> static cl::opt EarlyLiveIntervals("early-live-intervals", cl::Hidden, +# 207| cl::desc("Run live interval analysis earlier in the pipeline")); +# 208| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:218: constructor_uses_global_object: The constructor of global object "StartAfterOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StartAfterOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 216| +# 217| static cl::opt +# 218|-> StartAfterOpt(StringRef(StartAfterOptName), +# 219| cl::desc("Resume compilation after a specific pass"), +# 220| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:223: constructor_uses_global_object: The constructor of global object "StartBeforeOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StartBeforeOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 221| +# 222| static cl::opt +# 223|-> StartBeforeOpt(StringRef(StartBeforeOptName), +# 224| cl::desc("Resume compilation before a specific pass"), +# 225| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:228: constructor_uses_global_object: The constructor of global object "StopAfterOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StopAfterOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 226| +# 227| static cl::opt +# 228|-> StopAfterOpt(StringRef(StopAfterOptName), +# 229| cl::desc("Stop compilation after a specific pass"), +# 230| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:233: constructor_uses_global_object: The constructor of global object "StopBeforeOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StopBeforeOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 231| +# 232| static cl::opt +# 233|-> StopBeforeOpt(StringRef(StopBeforeOptName), +# 234| cl::desc("Stop compilation before a specific pass"), +# 235| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:238: constructor_uses_global_object: The constructor of global object "EnableMachineFunctionSplitter" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMachineFunctionSplitter" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 236| +# 237| /// Enable the machine function splitter pass. +# 238|-> static cl::opt EnableMachineFunctionSplitter( +# 239| "enable-split-machine-functions", cl::Hidden, +# 240| cl::desc("Split out cold blocks from machine functions based on profile " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:244: constructor_uses_global_object: The constructor of global object "DisableExpandReductions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableExpandReductions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 242| +# 243| /// Disable the expand reductions pass for testing. +# 244|-> static cl::opt DisableExpandReductions( +# 245| "disable-expand-reductions", cl::init(false), cl::Hidden, +# 246| cl::desc("Disable the expand reduction intrinsics pass from running")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:249: constructor_uses_global_object: The constructor of global object "DisableSelectOptimize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSelectOptimize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 247| +# 248| /// Disable the select optimization pass. +# 249|-> static cl::opt DisableSelectOptimize( +# 250| "disable-select-optimize", cl::init(true), cl::Hidden, +# 251| cl::desc("Disable the select-optimization pass from running")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:1102: constructor_uses_global_object: The constructor of global object "RegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1100| static cl::opt> +# 1102|-> RegAlloc("regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), +# 1103| cl::desc("Register allocator to use")); +# 1104| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetRegisterInfo.cpp:48: constructor_uses_global_object: The constructor of global object "HugeSizeForSplit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeSizeForSplit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| static cl::opt +# 48|-> HugeSizeForSplit("huge-size-for-split", cl::Hidden, +# 49| cl::desc("A threshold of live range size which may cause " +# 50| "high compile time cost in global splitting."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetSchedule.cpp:33: constructor_uses_global_object: The constructor of global object "EnableSchedModel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSchedModel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| using namespace llvm; +# 32| +# 33|-> static cl::opt EnableSchedModel("schedmodel", cl::Hidden, cl::init(true), +# 34| cl::desc("Use TargetSchedModel for latency lookup")); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetSchedule.cpp:36: constructor_uses_global_object: The constructor of global object "EnableSchedItins" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSchedItins" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| cl::desc("Use TargetSchedModel for latency lookup")); +# 35| +# 36|-> static cl::opt EnableSchedItins("scheditins", cl::Hidden, cl::init(true), +# 37| cl::desc("Use InstrItineraryData for latency lookup")); +# 38| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TwoAddressInstructionPass.cpp:76: constructor_uses_global_object: The constructor of global object "EnableRescheduling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRescheduling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| // Temporary flag to disable rescheduling. +# 75| static cl::opt +# 76|-> EnableRescheduling("twoaddr-reschedule", +# 77| cl::desc("Coalesce copies by rescheduling (default=true)"), +# 78| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TwoAddressInstructionPass.cpp:82: constructor_uses_global_object: The constructor of global object "MaxDataFlowEdge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxDataFlowEdge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| // Limit the number of dataflow edges to traverse when evaluating the benefit +# 81| // of commuting operands. +# 82|-> static cl::opt MaxDataFlowEdge( +# 83| "dataflow-edge-limit", cl::Hidden, cl::init(3), +# 84| cl::desc("Maximum number of dataflow edges to traverse when evaluating " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TypePromotion.cpp:47: constructor_uses_global_object: The constructor of global object "DisablePromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| using namespace llvm; +# 46| +# 47|-> static cl::opt DisablePromotion("disable-type-promotion", cl::Hidden, +# 48| cl::init(false), +# 49| cl::desc("Disable type promotion pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:44: constructor_uses_global_object: The constructor of global object "IgnoreBBRegPressure" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreBBRegPressure" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| #define DEBUG_TYPE "machine-scheduler" +# 43| +# 44|-> static cl::opt IgnoreBBRegPressure("ignore-bb-reg-pressure", cl::Hidden, +# 45| cl::init(false)); +# 46| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:47: constructor_uses_global_object: The constructor of global object "UseNewerCandidate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseNewerCandidate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| cl::init(false)); +# 46| +# 47|-> static cl::opt UseNewerCandidate("use-newer-candidate", cl::Hidden, +# 48| cl::init(true)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:50: constructor_uses_global_object: The constructor of global object "SchedDebugVerboseLevel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SchedDebugVerboseLevel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::init(true)); +# 49| +# 50|-> static cl::opt SchedDebugVerboseLevel("misched-verbose-level", +# 51| cl::Hidden, cl::init(1)); +# 52| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:55: constructor_uses_global_object: The constructor of global object "CheckEarlyAvail" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CheckEarlyAvail" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| // Check if the scheduler should penalize instructions that are available to +# 54| // early due to a zero-latency dependence. +# 55|-> static cl::opt CheckEarlyAvail("check-early-avail", cl::Hidden, +# 56| cl::init(true)); +# 57| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:61: constructor_uses_global_object: The constructor of global object "RPThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RPThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| // We compute the maximum number of registers needed and divided by the total +# 60| // available. Then, we compare the result to this value. +# 61|-> static cl::opt RPThreshold("vliw-misched-reg-pressure", cl::Hidden, +# 62| cl::init(0.75f), +# 63| cl::desc("High register pressure threhold.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/WinEHPrepare.cpp:43: constructor_uses_global_object: The constructor of global object "DisableDemotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDemotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| #define DEBUG_TYPE "winehprepare" +# 42| +# 43|-> static cl::opt DisableDemotion( +# 44| "disable-demotion", cl::Hidden, +# 45| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/WinEHPrepare.cpp:49: constructor_uses_global_object: The constructor of global object "DisableCleanups" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCleanups" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::init(false)); +# 48| +# 49|-> static cl::opt DisableCleanups( +# 50| "disable-cleanups", cl::Hidden, +# 51| cl::desc("Do not remove implausible terminators or other similar cleanups"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/WinEHPrepare.cpp:54: constructor_uses_global_object: The constructor of global object "DemoteCatchSwitchPHIOnlyOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DemoteCatchSwitchPHIOnlyOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::init(false)); +# 53| +# 54|-> static cl::opt DemoteCatchSwitchPHIOnlyOpt( +# 55| "demote-catchswitch-only", cl::Hidden, +# 56| cl::desc("Demote catchswitch BBs only (for wasm EH)"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/DWP/DWP.cpp:28: constructor_uses_global_object: The constructor of global object "MCTargetOptionsFlags" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCTargetOptionsFlags" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| using namespace llvm::object; +# 27| +# 28|-> static mc::RegisterMCTargetOptionsFlags MCTargetOptionsFlags; +# 29| +# 30| // Returns the size of debug_str_offsets section headers in bytes. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/GSYM/GsymCreator.cpp:482: var_decl: Declaring variable "DstFI". +llvm-17.0.6.src/lib/DebugInfo/GSYM/GsymCreator.cpp:506: uninit_use_in_call: Using uninitialized value "DstFI". Field "DstFI.EncodingCache.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 504| } +# 505| std::lock_guard Guard(Mutex); +# 506|-> Funcs.push_back(DstFI); +# 507| return Funcs.back().cacheEncoding(); +# 508| } + +Error: Y2K38_SAFETY (CWE-197): +llvm-17.0.6.src/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp:360: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "Sig.operator bool() ? *Sig : time(NULL)" is cast to "llvm::support::detail::packed_endian_specific_integral::value_type". +# 358| H->Guid = Info->getGuid(); +# 359| std::optional Sig = Info->getSignature(); +# 360|-> H->Signature = Sig ? *Sig : time(nullptr); +# 361| } +# 362| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Debuginfod/Debuginfod.cpp:67: var_decl: Declaring variable "DebuginfodUrls". +llvm-17.0.6.src/lib/Debuginfod/Debuginfod.cpp:69: uninit_use: Using uninitialized value "DebuginfodUrls". Field "DebuginfodUrls.InlineElts" is uninitialized. +# 67| SmallVector DebuginfodUrls; +# 68| StringRef(DebuginfodUrlsEnv).split(DebuginfodUrls, " "); +# 69|-> return DebuginfodUrls; +# 70| } +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/Execution.cpp:34: constructor_uses_global_object: The constructor of global object "PrintVolatile" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintVolatile" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| STATISTIC(NumDynamicInsts, "Number of dynamic instructions executed"); +# 33| +# 34|-> static cl::opt PrintVolatile("interpreter-print-volatile", cl::Hidden, +# 35| cl::desc("make the interpreter print every volatile load and store")); +# 36| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2511: extract: Calling "back" which extracts wrapped state from "IPLS->CurDefGeneratorStack". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2511: identity_transfer: Member function call "IPLS->CurDefGeneratorStack.back()->lock()" returns "IPLS->CurDefGeneratorStack.back()" ("this"). +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2511: assign: Assigning: "DG" = "IPLS->CurDefGeneratorStack.back()->lock()". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2512: invalidate: Calling "pop_back" invalidates the internal representation of "IPLS->CurDefGeneratorStack". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2514: use_after_free: Using invalidated internal representation of "IPLS->CurDefGeneratorStack". +# 2512| IPLS->CurDefGeneratorStack.pop_back(); +# 2513| +# 2514|-> if (!DG) +# 2515| return IPLS->fail(make_error( +# 2516| "DefinitionGenerator removed while lookup in progress", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:55: constructor_uses_global_object: The constructor of global object "OptimisticAttributes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptimisticAttributes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| +# 54| static cl::opt +# 55|-> OptimisticAttributes("openmp-ir-builder-optimistic-attributes", cl::Hidden, +# 56| cl::desc("Use optimistic attributes describing " +# 57| "'as-if' properties of runtime calls."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:60: constructor_uses_global_object: The constructor of global object "UnrollThresholdFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(false)); +# 59| +# 60|-> static cl::opt UnrollThresholdFactor( +# 61| "openmp-ir-builder-unroll-threshold-factor", cl::Hidden, +# 62| cl::desc("Factor for the unroll threshold to account for code " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:933: var_decl: Declaring variable "Return" without initializer. +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:960: uninit_use_in_call: Using uninitialized value "Return" when calling "CreateIsNotNull". +# 958| BasicBlock *OffloadContBlock = +# 959| BasicBlock::Create(Builder.getContext(), "omp_offload.cont"); +# 960|-> Value *Failed = Builder.CreateIsNotNull(Return); +# 961| Builder.CreateCondBr(Failed, OffloadFailedBlock, OffloadContBlock); +# 962| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/AutoUpgrade.cpp:49: constructor_uses_global_object: The constructor of global object "DisableAutoUpgradeDebugInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAutoUpgradeDebugInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> DisableAutoUpgradeDebugInfo("disable-auto-upgrade-debug-info", +# 50| cl::desc("Disable autoupgrade of debug info")); +# 51| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DebugInfoMetadata.cpp:32: constructor_uses_global_object: The constructor of global object "llvm::EnableFSDiscriminator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableFSDiscriminator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| namespace llvm { +# 31| // Use FS-AFDO discriminator. +# 32|-> cl::opt EnableFSDiscriminator( +# 33| "enable-fs-discriminator", cl::Hidden, +# 34| cl::desc("Enable adding flow sensitive discriminators")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DiagnosticHandler.cpp:46: constructor_uses_global_object: The constructor of global object "::PassRemarks[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PassRemarks[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| // -pass-remarks +# 45| // Command line flag to enable emitOptimizationRemark() +# 46|-> static cl::opt> PassRemarks( +# 47| "pass-remarks", cl::value_desc("pattern"), +# 48| cl::desc("Enable optimization remarks from passes whose name match " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DiagnosticHandler.cpp:54: constructor_uses_global_object: The constructor of global object "::PassRemarksMissed[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PassRemarksMissed[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // -pass-remarks-missed +# 53| // Command line flag to enable emitOptimizationRemarkMissed() +# 54|-> static cl::opt> PassRemarksMissed( +# 55| "pass-remarks-missed", cl::value_desc("pattern"), +# 56| cl::desc("Enable missed optimization remarks from passes whose name match " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DiagnosticHandler.cpp:63: constructor_uses_global_object: The constructor of global object "::PassRemarksAnalysis[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PassRemarksAnalysis[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| // Command line flag to enable emitOptimizationRemarkAnalysis() +# 62| static cl::opt> +# 63|-> PassRemarksAnalysis( +# 64| "pass-remarks-analysis", cl::value_desc("pattern"), +# 65| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Dominators.cpp:41: constructor_uses_global_object: The constructor of global object "VerifyDomInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyDomInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| bool llvm::VerifyDomInfo = false; +# 40| static cl::opt +# 41|-> VerifyDomInfoX("verify-dom-info", cl::location(VerifyDomInfo), cl::Hidden, +# 42| cl::desc("Verify dominator info (time consuming)")); +# 43| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Function.cpp:79: constructor_uses_global_object: The constructor of global object "NonGlobalValueMaxNameSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NonGlobalValueMaxNameSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| template class llvm::SymbolTableListTraits; +# 78| +# 79|-> static cl::opt NonGlobalValueMaxNameSize( +# 80| "non-global-value-max-name-size", cl::Hidden, cl::init(1024), +# 81| cl::desc("Maximum size for the name of non-global values.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Instructions.cpp:51: constructor_uses_global_object: The constructor of global object "DisableI2pP2iOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableI2pP2iOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| using namespace llvm; +# 50| +# 51|-> static cl::opt DisableI2pP2iOpt( +# 52| "disable-i2p-p2i-opt", cl::init(false), +# 53| cl::desc("Disables inttoptr/ptrtoint roundtrip optimization")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/LegacyPassManager.cpp:50: constructor_uses_global_object: The constructor of global object "PassDebugging" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PassDebugging" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| } // namespace +# 49| +# 50|-> static cl::opt PassDebugging( +# 51| "debug-pass", cl::Hidden, +# 52| cl::desc("Print legacy PassManager debugging information"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/ModuleSummaryIndex.cpp:29: constructor_uses_global_object: The constructor of global object "PropagateAttrs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PropagateAttrs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| "Number of live global variables marked write only"); +# 28| +# 29|-> static cl::opt PropagateAttrs("propagate-attrs", cl::init(true), +# 30| cl::Hidden, +# 31| cl::desc("Propagate attributes in index")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/ModuleSummaryIndex.cpp:33: constructor_uses_global_object: The constructor of global object "ImportConstantsWithRefs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ImportConstantsWithRefs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| cl::desc("Propagate attributes in index")); +# 32| +# 33|-> static cl::opt ImportConstantsWithRefs( +# 34| "import-constants-with-refs", cl::init(true), cl::Hidden, +# 35| cl::desc("Import constant global variables with references")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/OptBisect.cpp:28: constructor_uses_global_object: The constructor of global object "OptBisectLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptBisectLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| } +# 27| +# 28|-> static cl::opt OptBisectLimit("opt-bisect-limit", cl::Hidden, +# 29| cl::init(OptBisect::Disabled), cl::Optional, +# 30| cl::cb([](int Limit) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PassTimingInfo.cpp:40: constructor_uses_global_object: The constructor of global object "llvm::EnableTiming" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableTiming" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| bool TimePassesPerRun = false; +# 39| +# 40|-> static cl::opt EnableTiming( +# 41| "time-passes", cl::location(TimePassesIsEnabled), cl::Hidden, +# 42| cl::desc("Time each pass, printing elapsed time for each on exit")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PassTimingInfo.cpp:44: constructor_uses_global_object: The constructor of global object "llvm::EnableTimingPerRun" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableTimingPerRun" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| cl::desc("Time each pass, printing elapsed time for each on exit")); +# 43| +# 44|-> static cl::opt EnableTimingPerRun( +# 45| "time-passes-per-run", cl::location(TimePassesPerRun), cl::Hidden, +# 46| cl::desc("Time each pass run, printing elapsed time for each run on exit"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:21: constructor_uses_global_object: The constructor of global object "PrintBefore[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBefore[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 19| // Print IR out before/after specified passes. +# 20| static cl::list +# 21|-> PrintBefore("print-before", +# 22| llvm::cl::desc("Print IR before specified passes"), +# 23| cl::CommaSeparated, cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:26: constructor_uses_global_object: The constructor of global object "PrintAfter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAfter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::list +# 26|-> PrintAfter("print-after", llvm::cl::desc("Print IR after specified passes"), +# 27| cl::CommaSeparated, cl::Hidden); +# 28| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:29: constructor_uses_global_object: The constructor of global object "PrintBeforeAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBeforeAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| cl::CommaSeparated, cl::Hidden); +# 28| +# 29|-> static cl::opt PrintBeforeAll("print-before-all", +# 30| llvm::cl::desc("Print IR before each pass"), +# 31| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:32: constructor_uses_global_object: The constructor of global object "PrintAfterAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAfterAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| llvm::cl::desc("Print IR before each pass"), +# 31| cl::init(false), cl::Hidden); +# 32|-> static cl::opt PrintAfterAll("print-after-all", +# 33| llvm::cl::desc("Print IR after each pass"), +# 34| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:60: constructor_uses_global_object: The constructor of global object "llvm::PrintChanged" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintChanged" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| // have the necessary facilities, the error message will be shown in place of +# 59| // the expected output. +# 60|-> cl::opt llvm::PrintChanged( +# 61| "print-changed", cl::desc("Print changed IRs"), cl::Hidden, +# 62| cl::ValueOptional, cl::init(ChangePrinter::None), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:82: constructor_uses_global_object: The constructor of global object "DiffBinary[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DiffBinary[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| // An option for specifying the diff used by print-changed=[diff | diff-quiet] +# 81| static cl::opt +# 82|-> DiffBinary("print-changed-diff-path", cl::Hidden, cl::init("diff"), +# 83| cl::desc("system diff used by change reporters")); +# 84| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:86: constructor_uses_global_object: The constructor of global object "PrintModuleScope" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintModuleScope" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> PrintModuleScope("print-module-scope", +# 87| cl::desc("When printing IR for print-[before|after]{-all} " +# 88| "always print a module IR"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:93: constructor_uses_global_object: The constructor of global object "FilterPasses[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FilterPasses[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| // See the description for -print-changed for an explanation of the use +# 92| // of this option. +# 93|-> static cl::list FilterPasses( +# 94| "filter-passes", cl::value_desc("pass names"), +# 95| cl::desc("Only consider IR changes for passes whose names " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:100: constructor_uses_global_object: The constructor of global object "PrintFuncsList[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintFuncsList[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| +# 99| static cl::list +# 100|-> PrintFuncsList("filter-print-funcs", cl::value_desc("function names"), +# 101| cl::desc("Only print IR for functions whose name " +# 102| "match this for all print-[before|after][-all] " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/SafepointIRVerifier.cpp:58: constructor_uses_global_object: The constructor of global object "PrintOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| /// when verification fails, report a message to the console (for FileCheck +# 57| /// usage) and continue execution as if nothing happened. +# 58|-> static cl::opt PrintOnly("safepoint-ir-verifier-print-only", +# 59| cl::init(false)); +# 60| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Value.cpp:39: constructor_uses_global_object: The constructor of global object "UseDerefAtPointSemantics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseDerefAtPointSemantics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| using namespace llvm; +# 38| +# 39|-> static cl::opt UseDerefAtPointSemantics( +# 40| "use-dereferenceable-at-point-semantics", cl::Hidden, cl::init(false), +# 41| cl::desc("Deref attributes and metadata infer facts at definition only")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Verifier.cpp:128: constructor_uses_global_object: The constructor of global object "VerifyNoAliasScopeDomination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyNoAliasScopeDomination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| using namespace llvm; +# 127| +# 128|-> static cl::opt VerifyNoAliasScopeDomination( +# 129| "verify-noalias-scope-decl-dom", cl::Hidden, cl::init(false), +# 130| cl::desc("Ensure that llvm.experimental.noalias.scope.decl for identical " + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/IR/Verifier.cpp:5216: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 87 (inclusive). +llvm-17.0.6.src/lib/IR/Verifier.cpp:5231: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 87 (inclusive) on the false branch. +llvm-17.0.6.src/lib/IR/Verifier.cpp:5237: overrun-call: Overrunning callee's array of size 84 by passing argument "Kind" (which evaluates to 87) in call to "canUseAsParamAttr". +# 5235| Check(isa(Call.getOperand(Elem.Begin + 1)), +# 5236| "the second argument should be a constant integral value", Call); +# 5237|-> } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5238| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5239| } else if (Attribute::canUseAsFnAttr(Kind)) { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/IR/Verifier.cpp:5216: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 87 (inclusive). +llvm-17.0.6.src/lib/IR/Verifier.cpp:5231: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 87 (inclusive) on the false branch. +llvm-17.0.6.src/lib/IR/Verifier.cpp:5239: overrun-call: Overrunning callee's array of size 84 by passing argument "Kind" (which evaluates to 87) in call to "canUseAsFnAttr". +# 5237| } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5238| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5239|-> } else if (Attribute::canUseAsFnAttr(Kind)) { +# 5240| Check((ArgCount) == 0, "this attribute has no argument", Call); +# 5241| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTO.cpp:69: constructor_uses_global_object: The constructor of global object "DumpThinCGSCCs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DumpThinCGSCCs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| +# 68| static cl::opt +# 69|-> DumpThinCGSCCs("dump-thin-cg-sccs", cl::init(false), cl::Hidden, +# 70| cl::desc("Dump the SCCs in the ThinLTO index's callgraph")); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTO.cpp:74: constructor_uses_global_object: The constructor of global object "llvm::EnableLTOInternalization" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableLTOInternalization" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| namespace llvm { +# 73| /// Enable global value internalization in LTO. +# 74|-> cl::opt EnableLTOInternalization( +# 75| "enable-lto-internalization", cl::init(true), cl::Hidden, +# 76| cl::desc("Enable global value internalization in LTO")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOBackend.cpp:61: constructor_uses_global_object: The constructor of global object "EmbedBitcode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmbedBitcode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| }; +# 60| +# 61|-> static cl::opt EmbedBitcode( +# 62| "lto-embed-bitcode", cl::init(LTOBitcodeEmbedding::DoNotEmbed), +# 63| cl::values(clEnumValN(LTOBitcodeEmbedding::DoNotEmbed, "none", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOBackend.cpp:72: constructor_uses_global_object: The constructor of global object "ThinLTOAssumeMerged" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ThinLTOAssumeMerged" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| cl::desc("Embed LLVM bitcode in object files produced by LTO")); +# 71| +# 72|-> static cl::opt ThinLTOAssumeMerged( +# 73| "thinlto-assume-merged", cl::init(false), +# 74| cl::desc("Assume the input has already undergone ThinLTO function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:74: constructor_uses_global_object: The constructor of global object "llvm::LTODiscardValueNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTODiscardValueNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| +# 73| namespace llvm { +# 74|-> cl::opt LTODiscardValueNames( +# 75| "lto-discard-value-names", +# 76| cl::desc("Strip names from Value during LTO (other than GlobalValue)."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:84: constructor_uses_global_object: The constructor of global object "llvm::RemarksWithHotness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksWithHotness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| cl::Hidden); +# 83| +# 84|-> cl::opt RemarksWithHotness( +# 85| "lto-pass-remarks-with-hotness", +# 86| cl::desc("With PGO, include profile count in optimization remarks"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:90: constructor_uses_global_object: The constructor of global object "llvm::RemarksHotnessThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksHotnessThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| +# 89| cl::opt, false, remarks::HotnessThresholdParser> +# 90|-> RemarksHotnessThreshold( +# 91| "lto-pass-remarks-hotness-threshold", +# 92| cl::desc("Minimum profile count required for an " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:98: constructor_uses_global_object: The constructor of global object "llvm::RemarksFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| +# 97| cl::opt +# 98|-> RemarksFilename("lto-pass-remarks-output", +# 99| cl::desc("Output filename for pass remarks"), +# 100| cl::value_desc("filename")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:103: constructor_uses_global_object: The constructor of global object "llvm::RemarksPasses[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksPasses[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| +# 102| cl::opt +# 103|-> RemarksPasses("lto-pass-remarks-filter", +# 104| cl::desc("Only record optimization remarks from passes whose " +# 105| "names match the given regular expression"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:108: constructor_uses_global_object: The constructor of global object "llvm::RemarksFormat[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksFormat[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| cl::value_desc("regex")); +# 107| +# 108|-> cl::opt RemarksFormat( +# 109| "lto-pass-remarks-format", +# 110| cl::desc("The format used for serializing remarks (default: YAML)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:113: constructor_uses_global_object: The constructor of global object "llvm::LTOStatsFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTOStatsFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::value_desc("format"), cl::init("yaml")); +# 112| +# 113|-> cl::opt LTOStatsFile( +# 114| "lto-stats-file", +# 115| cl::desc("Save statistics to the specified file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:118: constructor_uses_global_object: The constructor of global object "llvm::AIXSystemAssemblerPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::AIXSystemAssemblerPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| cl::Hidden); +# 117| +# 118|-> cl::opt AIXSystemAssemblerPath( +# 119| "lto-aix-system-assembler", +# 120| cl::desc("Path to a system assembler, picked up on AIX only"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:124: constructor_uses_global_object: The constructor of global object "llvm::LTORunCSIRInstr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTORunCSIRInstr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| +# 123| cl::opt +# 124|-> LTORunCSIRInstr("cs-profile-generate", +# 125| cl::desc("Perform context sensitive PGO instrumentation")); +# 126| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:128: constructor_uses_global_object: The constructor of global object "llvm::LTOCSIRProfile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTOCSIRProfile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| +# 127| cl::opt +# 128|-> LTOCSIRProfile("cs-profile-path", +# 129| cl::desc("Context sensitive profile file path")); +# 130| } // namespace llvm + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/SummaryBasedOptimizations.cpp:22: constructor_uses_global_object: The constructor of global object "ThinLTOSynthesizeEntryCounts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ThinLTOSynthesizeEntryCounts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| using namespace llvm; +# 21| +# 22|-> static cl::opt ThinLTOSynthesizeEntryCounts( +# 23| "thinlto-synthesize-entry-counts", cl::init(false), cl::Hidden, +# 24| cl::desc("Synthesize entry counts based on the summary")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/ThinLTOCodeGenerator.cpp:92: constructor_uses_global_object: The constructor of global object "::ThreadCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ThreadCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| // thred per core, as indicated by the usage of +# 91| // heavyweight_hardware_concurrency() below. +# 92|-> static cl::opt ThreadCount("threads", cl::init(0)); +# 93| +# 94| // Simple helper to save temporary files for debug. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/MC/MCAsmInfo.cpp:27: constructor_uses_global_object: The constructor of global object "DwarfExtendedLoc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfExtendedLoc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| enum DefaultOnOff { Default, Enable, Disable }; +# 26| } +# 27|-> static cl::opt DwarfExtendedLoc( +# 28| "dwarf-extended-loc", cl::Hidden, +# 29| cl::desc("Disable emission of the extended flags in .loc directives."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/MC/MCAsmInfo.cpp:35: constructor_uses_global_object: The constructor of global object "llvm::UseLEB128Directives" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseLEB128Directives" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| namespace llvm { +# 35|-> cl::opt UseLEB128Directives( +# 36| "use-leb128-directives", cl::Hidden, +# 37| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/MC/MCParser/MCAsmParser.cpp:25: constructor_uses_global_object: The constructor of global object "llvm::AsmMacroMaxNestingDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::AsmMacroMaxNestingDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| +# 24| namespace llvm { +# 25|-> cl::opt AsmMacroMaxNestingDepth( +# 26| "asm-macro-max-nesting-depth", cl::init(20), cl::Hidden, +# 27| cl::desc("The maximum nesting depth allowed for assembly macros.")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/WasmObjectWriter.cpp:1657: var_decl: Declaring variable "Global". +llvm-17.0.6.src/lib/MC/WasmObjectWriter.cpp:1682: uninit_use_in_call: Using uninitialized value "Global". Field "Global.InitExpr.Inst.Value" is uninitialized when calling "push_back". +# 1680| assert(WasmIndices.count(&WS) == 0); +# 1681| WasmIndices[&WS] = Global.Index; +# 1682|-> Globals.push_back(Global); +# 1683| } else { +# 1684| // An import; the index was assigned above + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Object/IRSymtab.cpp:44: constructor_uses_global_object: The constructor of global object "DisableBitcodeVersionUpgrade" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBitcodeVersionUpgrade" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| using namespace irsymtab; +# 43| +# 44|-> static cl::opt DisableBitcodeVersionUpgrade( +# 45| "disable-bitcode-version-upgrade", cl::Hidden, +# 46| cl::desc("Disable automatic bitcode upgrade for version mismatch")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:626: var_decl: Declaring variable "Info". +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:798: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 796| Twine(Info.Name), +# 797| object_error::parse_failed); +# 798|-> LinkingData.SymbolTable.emplace_back(Info); +# 799| Symbols.emplace_back(LinkingData.SymbolTable.back(), GlobalType, TableType, +# 800| Signature); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilder.cpp:271: constructor_uses_global_object: The constructor of global object "llvm::PrintPipelinePasses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintPipelinePasses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 269| +# 270| namespace llvm { +# 271|-> cl::opt PrintPipelinePasses( +# 272| "print-pipeline-passes", +# 273| cl::desc("Print a '-passes' compatible string describing the pipeline " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:138: constructor_uses_global_object: The constructor of global object "UseInlineAdvisor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseInlineAdvisor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| using namespace llvm; +# 137| +# 138|-> static cl::opt UseInlineAdvisor( +# 139| "enable-ml-inliner", cl::init(InliningAdvisorMode::Default), cl::Hidden, +# 140| cl::desc("Enable ML policy for inliner. Currently trained for -Oz only"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:148: constructor_uses_global_object: The constructor of global object "EnableSyntheticCounts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSyntheticCounts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 146| "Use release mode (AOT-compiled model)"))); +# 147| +# 148|-> static cl::opt EnableSyntheticCounts( +# 149| "enable-npm-synthetic-counts", cl::Hidden, +# 150| cl::desc("Run synthetic function entry count generation " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:155: constructor_uses_global_object: The constructor of global object "EnablePGOInlineDeferral" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePGOInlineDeferral" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| /// Flag to enable inline deferral during PGO. +# 154| static cl::opt +# 155|-> EnablePGOInlineDeferral("enable-npm-pgo-inline-deferral", cl::init(true), +# 156| cl::Hidden, +# 157| cl::desc("Enable inline deferral during PGO")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:159: constructor_uses_global_object: The constructor of global object "EnableModuleInliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleInliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 157| cl::desc("Enable inline deferral during PGO")); +# 158| +# 159|-> static cl::opt EnableModuleInliner("enable-module-inliner", +# 160| cl::init(false), cl::Hidden, +# 161| cl::desc("Enable module inliner")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:163: constructor_uses_global_object: The constructor of global object "PerformMandatoryInliningsFirst" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PerformMandatoryInliningsFirst" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| cl::desc("Enable module inliner")); +# 162| +# 163|-> static cl::opt PerformMandatoryInliningsFirst( +# 164| "mandatory-inlining-first", cl::init(true), cl::Hidden, +# 165| cl::desc("Perform mandatory inlinings module-wide, before performing " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:168: constructor_uses_global_object: The constructor of global object "EnableEagerlyInvalidateAnalyses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEagerlyInvalidateAnalyses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 166| "inlining")); +# 167| +# 168|-> static cl::opt EnableEagerlyInvalidateAnalyses( +# 169| "eagerly-invalidate-analyses", cl::init(true), cl::Hidden, +# 170| cl::desc("Eagerly invalidate more analyses in default pipelines")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:172: constructor_uses_global_object: The constructor of global object "EnableMergeFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMergeFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 170| cl::desc("Eagerly invalidate more analyses in default pipelines")); +# 171| +# 172|-> static cl::opt EnableMergeFunctions( +# 173| "enable-merge-functions", cl::init(false), cl::Hidden, +# 174| cl::desc("Enable function merging as part of the optimization pipeline")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:176: constructor_uses_global_object: The constructor of global object "EnablePostPGOLoopRotation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostPGOLoopRotation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 174| cl::desc("Enable function merging as part of the optimization pipeline")); +# 175| +# 176|-> static cl::opt EnablePostPGOLoopRotation( +# 177| "enable-post-pgo-loop-rotation", cl::init(true), cl::Hidden, +# 178| cl::desc("Run the loop rotation transformation after PGO instrumentation")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:180: constructor_uses_global_object: The constructor of global object "EnableGlobalAnalyses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalAnalyses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 178| cl::desc("Run the loop rotation transformation after PGO instrumentation")); +# 179| +# 180|-> static cl::opt EnableGlobalAnalyses( +# 181| "enable-global-analyses", cl::init(true), cl::Hidden, +# 182| cl::desc("Enable inter-procedural analyses")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:185: constructor_uses_global_object: The constructor of global object "RunPartialInlining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RunPartialInlining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 183| +# 184| static cl::opt +# 185|-> RunPartialInlining("enable-partial-inlining", cl::init(false), cl::Hidden, +# 186| cl::desc("Run Partial inlinining pass")); +# 187| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:188: constructor_uses_global_object: The constructor of global object "ExtraVectorizerPasses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExtraVectorizerPasses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 186| cl::desc("Run Partial inlinining pass")); +# 187| +# 188|-> static cl::opt ExtraVectorizerPasses( +# 189| "extra-vectorizer-passes", cl::init(false), cl::Hidden, +# 190| cl::desc("Run cleanup optimization passes after vectorization")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:192: constructor_uses_global_object: The constructor of global object "RunNewGVN" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RunNewGVN" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 190| cl::desc("Run cleanup optimization passes after vectorization")); +# 191| +# 192|-> static cl::opt RunNewGVN("enable-newgvn", cl::init(false), cl::Hidden, +# 193| cl::desc("Run the NewGVN pass")); +# 194| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:195: constructor_uses_global_object: The constructor of global object "EnableLoopInterchange" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoopInterchange" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 193| cl::desc("Run the NewGVN pass")); +# 194| +# 195|-> static cl::opt EnableLoopInterchange( +# 196| "enable-loopinterchange", cl::init(false), cl::Hidden, +# 197| cl::desc("Enable the experimental LoopInterchange Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:199: constructor_uses_global_object: The constructor of global object "EnableUnrollAndJam" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableUnrollAndJam" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 197| cl::desc("Enable the experimental LoopInterchange Pass")); +# 198| +# 199|-> static cl::opt EnableUnrollAndJam("enable-unroll-and-jam", +# 200| cl::init(false), cl::Hidden, +# 201| cl::desc("Enable Unroll And Jam Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:203: constructor_uses_global_object: The constructor of global object "EnableLoopFlatten" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoopFlatten" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 201| cl::desc("Enable Unroll And Jam Pass")); +# 202| +# 203|-> static cl::opt EnableLoopFlatten("enable-loop-flatten", cl::init(false), +# 204| cl::Hidden, +# 205| cl::desc("Enable the LoopFlatten Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:208: constructor_uses_global_object: The constructor of global object "EnableDFAJumpThreading" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDFAJumpThreading" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 206| +# 207| static cl::opt +# 208|-> EnableDFAJumpThreading("enable-dfa-jump-thread", +# 209| cl::desc("Enable DFA jump threading"), +# 210| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:213: constructor_uses_global_object: The constructor of global object "EnableHotColdSplit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableHotColdSplit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 211| +# 212| static cl::opt +# 213|-> EnableHotColdSplit("hot-cold-split", +# 214| cl::desc("Enable hot-cold splitting pass")); +# 215| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:216: constructor_uses_global_object: The constructor of global object "EnableIROutliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableIROutliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 214| cl::desc("Enable hot-cold splitting pass")); +# 215| +# 216|-> static cl::opt EnableIROutliner("ir-outliner", cl::init(false), +# 217| cl::Hidden, +# 218| cl::desc("Enable ir outliner pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:221: constructor_uses_global_object: The constructor of global object "DisablePreInliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePreInliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 219| +# 220| static cl::opt +# 221|-> DisablePreInliner("disable-preinline", cl::init(false), cl::Hidden, +# 222| cl::desc("Disable pre-instrumentation inliner")); +# 223| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:224: constructor_uses_global_object: The constructor of global object "PreInlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreInlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 222| cl::desc("Disable pre-instrumentation inliner")); +# 223| +# 224|-> static cl::opt PreInlineThreshold( +# 225| "preinline-threshold", cl::Hidden, cl::init(75), +# 226| cl::desc("Control the amount of inlining in pre-instrumentation inliner " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:230: constructor_uses_global_object: The constructor of global object "EnableGVNHoist" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGVNHoist" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 228| +# 229| static cl::opt +# 230|-> EnableGVNHoist("enable-gvn-hoist", +# 231| cl::desc("Enable the GVN hoisting pass (default = off)")); +# 232| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:234: constructor_uses_global_object: The constructor of global object "EnableGVNSink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGVNSink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 232| +# 233| static cl::opt +# 234|-> EnableGVNSink("enable-gvn-sink", +# 235| cl::desc("Enable the GVN sinking pass (default = off)")); +# 236| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:240: constructor_uses_global_object: The constructor of global object "EnableCHR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCHR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 238| // profile loading. +# 239| static cl::opt +# 240|-> EnableCHR("enable-chr", cl::init(true), cl::Hidden, +# 241| cl::desc("Enable control height reduction optimization (CHR)")); +# 242| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:243: constructor_uses_global_object: The constructor of global object "FlattenedProfileUsed" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FlattenedProfileUsed" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 241| cl::desc("Enable control height reduction optimization (CHR)")); +# 242| +# 243|-> static cl::opt FlattenedProfileUsed( +# 244| "flattened-profile-used", cl::init(false), cl::Hidden, +# 245| cl::desc("Indicate the sample profile being used is flattened, i.e., " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:248: constructor_uses_global_object: The constructor of global object "EnableOrderFileInstrumentation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableOrderFileInstrumentation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 246| "no inline hierachy exists in the profile")); +# 247| +# 248|-> static cl::opt EnableOrderFileInstrumentation( +# 249| "enable-order-file-instrumentation", cl::init(false), cl::Hidden, +# 250| cl::desc("Enable order file instrumentation (default = off)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:253: constructor_uses_global_object: The constructor of global object "EnableMatrix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMatrix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 251| +# 252| static cl::opt +# 253|-> EnableMatrix("enable-matrix", cl::init(false), cl::Hidden, +# 254| cl::desc("Enable lowering of the matrix intrinsics")); +# 255| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:256: constructor_uses_global_object: The constructor of global object "EnableConstraintElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableConstraintElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 254| cl::desc("Enable lowering of the matrix intrinsics")); +# 255| +# 256|-> static cl::opt EnableConstraintElimination( +# 257| "enable-constraint-elimination", cl::init(true), cl::Hidden, +# 258| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:261: constructor_uses_global_object: The constructor of global object "AttributorRun" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AttributorRun" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 259| "Enable pass to eliminate conditions based on linear constraints")); +# 260| +# 261|-> static cl::opt AttributorRun( +# 262| "attributor-enable", cl::Hidden, cl::init(AttributorRunOption::NONE), +# 263| cl::desc("Enable the attributor inter-procedural deduction pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:273: constructor_uses_global_object: The constructor of global object "EnableMemProfContextDisambiguation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemProfContextDisambiguation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 271| "disable attributor runs"))); +# 272| +# 273|-> cl::opt EnableMemProfContextDisambiguation( +# 274| "enable-memprof-context-disambiguation", cl::init(false), cl::Hidden, +# 275| cl::ZeroOrMore, cl::desc("Enable MemProf context disambiguation")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:47: constructor_uses_global_object: The constructor of global object "VerifyAnalysisInvalidation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyAnalysisInvalidation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| using namespace llvm; +# 46| +# 47|-> static cl::opt VerifyAnalysisInvalidation("verify-analysis-invalidation", +# 48| cl::Hidden, +# 49| #ifdef EXPENSIVE_CHECKS + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:60: constructor_uses_global_object: The constructor of global object "PrintChangedBefore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintChangedBefore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| // of this option. Note that this option has no effect without -print-changed. +# 59| static cl::opt +# 60|-> PrintChangedBefore("print-before-changed", +# 61| cl::desc("Print before passes that change them"), +# 62| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:67: constructor_uses_global_object: The constructor of global object "DotBinary[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotBinary[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| // print-changed=[dot-cfg | dot-cfg-quiet] +# 66| static cl::opt +# 67|-> DotBinary("print-changed-dot-path", cl::Hidden, cl::init("dot"), +# 68| cl::desc("system dot used by change reporters")); +# 69| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:74: constructor_uses_global_object: The constructor of global object "BeforeColour[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BeforeColour[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| // https://graphviz.org/pdf/dotguide.pdf +# 73| static cl::opt +# 74|-> BeforeColour("dot-cfg-before-color", +# 75| cl::desc("Color for dot-cfg before elements"), cl::Hidden, +# 76| cl::init("red")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:81: constructor_uses_global_object: The constructor of global object "AfterColour[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AfterColour[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| // https://graphviz.org/pdf/dotguide.pdf +# 80| static cl::opt +# 81|-> AfterColour("dot-cfg-after-color", +# 82| cl::desc("Color for dot-cfg after elements"), cl::Hidden, +# 83| cl::init("forestgreen")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:88: constructor_uses_global_object: The constructor of global object "CommonColour[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CommonColour[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| // https://graphviz.org/pdf/dotguide.pdf +# 87| static cl::opt +# 88|-> CommonColour("dot-cfg-common-color", +# 89| cl::desc("Color for dot-cfg common elements"), cl::Hidden, +# 90| cl::init("black")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:94: constructor_uses_global_object: The constructor of global object "DotCfgDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotCfgDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| // An option that determines where the generated website file (named +# 93| // passes.html) and the associated pdf files (named diff_*.pdf) are saved. +# 94|-> static cl::opt DotCfgDir( +# 95| "dot-cfg-dir", +# 96| cl::desc("Generate dot files into specified directory for changed IRs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:100: constructor_uses_global_object: The constructor of global object "PrintOnCrashPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintOnCrashPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| +# 99| // Options to print the IR that was being processed when a pass crashes. +# 100|-> static cl::opt PrintOnCrashPath( +# 101| "print-on-crash-path", +# 102| cl::desc("Print the last form of the IR before crash to a file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:105: constructor_uses_global_object: The constructor of global object "PrintOnCrash" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintOnCrash" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 103| cl::Hidden); +# 104| +# 105|-> static cl::opt PrintOnCrash( +# 106| "print-on-crash", +# 107| cl::desc("Print the last form of the IR before crash (use -print-on-crash-path to dump to a file)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:110: constructor_uses_global_object: The constructor of global object "OptBisectPrintIRPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptBisectPrintIRPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| cl::Hidden); +# 109| +# 110|-> static cl::opt OptBisectPrintIRPath( +# 111| "opt-bisect-print-ir-path", +# 112| cl::desc("Print IR to path when opt-bisect-limit is reached"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:114: constructor_uses_global_object: The constructor of global object "PrintPassNumbers" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintPassNumbers" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| cl::desc("Print IR to path when opt-bisect-limit is reached"), cl::Hidden); +# 113| +# 114|-> static cl::opt PrintPassNumbers( +# 115| "print-pass-numbers", cl::init(false), cl::Hidden, +# 116| cl::desc("Print pass names and their ordinals")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:119: constructor_uses_global_object: The constructor of global object "PrintAtPassNumber" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAtPassNumber" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| +# 118| static cl::opt +# 119|-> PrintAtPassNumber("print-at-pass-number", cl::init(0), cl::Hidden, +# 120| cl::desc("Print IR at pass with this number as " +# 121| "reported by print-passes-names")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:133: constructor_uses_global_object: The constructor of global object "::TestChanged[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::TestChanged[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 131| // The usual modifier options work as expected. +# 132| static cl::opt +# 133|-> TestChanged("exec-on-ir-change", cl::Hidden, cl::init(""), +# 134| cl::desc("exe called with module IR after each pass that " +# 135| "changes it")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:61: constructor_uses_global_object: The constructor of global object "StaticFuncFullModulePrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StaticFuncFullModulePrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| using namespace llvm; +# 60| +# 61|-> static cl::opt StaticFuncFullModulePrefix( +# 62| "static-func-full-module-prefix", cl::init(true), cl::Hidden, +# 63| cl::desc("Use full module build paths in the profile counter names for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:74: constructor_uses_global_object: The constructor of global object "StaticFuncStripDirNamePrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StaticFuncStripDirNamePrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| // the source directory name not being stripped. A non-zero option value here +# 73| // can potentially prevent some inter-module indirect-call-promotions. +# 74|-> static cl::opt StaticFuncStripDirNamePrefix( +# 75| "static-func-strip-dirname-prefix", cl::init(0), cl::Hidden, +# 76| cl::desc("Strip specified level of directory name from source path in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:213: constructor_uses_global_object: The constructor of global object "llvm::DoInstrProfNameCompression" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DoInstrProfNameCompression" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 211| namespace llvm { +# 212| +# 213|-> cl::opt DoInstrProfNameCompression( +# 214| "enable-name-compression", +# 215| cl::desc("Enable name/filename string compression"), cl::init(true)); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/ProfileData/InstrProfCorrelator.cpp:74: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-17.0.6.src/lib/ProfileData/InstrProfCorrelator.cpp:74: assign: Assigning: "" = "llvm::InstrProfCorrelator::get(std::unique_ptr >(std::move(*BufferOrErr)))". +llvm-17.0.6.src/lib/ProfileData/InstrProfCorrelator.cpp:74: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 72| return std::move(Err); +# 73| +# 74|-> return get(std::move(*BufferOrErr)); +# 75| } +# 76| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:22: constructor_uses_global_object: The constructor of global object "llvm::UseContextLessSummary" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseContextLessSummary" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| +# 21| namespace llvm { +# 22|-> cl::opt UseContextLessSummary( +# 23| "profile-summary-contextless", cl::Hidden, +# 24| cl::desc("Merge context profiles before calculating thresholds.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:33: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryCutoffHot" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryCutoffHot" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| // threshold for determining cold count (everything <= this threshold is +# 32| // considered cold). +# 33|-> cl::opt ProfileSummaryCutoffHot( +# 34| "profile-summary-cutoff-hot", cl::Hidden, cl::init(990000), +# 35| cl::desc("A count is hot if it exceeds the minimum count to" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:38: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryCutoffCold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryCutoffCold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| " reach this percentile of total counts.")); +# 37| +# 38|-> cl::opt ProfileSummaryCutoffCold( +# 39| "profile-summary-cutoff-cold", cl::Hidden, cl::init(999999), +# 40| cl::desc("A count is cold if it is below the minimum count" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:43: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryHugeWorkingSetSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryHugeWorkingSetSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| " to reach this percentile of total counts.")); +# 42| +# 43|-> cl::opt ProfileSummaryHugeWorkingSetSizeThreshold( +# 44| "profile-summary-huge-working-set-size-threshold", cl::Hidden, +# 45| cl::init(15000), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:50: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryLargeWorkingSetSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryLargeWorkingSetSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| " percentile exceeds this count.")); +# 49| +# 50|-> cl::opt ProfileSummaryLargeWorkingSetSizeThreshold( +# 51| "profile-summary-large-working-set-size-threshold", cl::Hidden, +# 52| cl::init(12500), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:59: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryHotCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryHotCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| // The next two options override the counts derived from summary computation and +# 58| // are useful for debugging purposes. +# 59|-> cl::opt ProfileSummaryHotCount( +# 60| "profile-summary-hot-count", cl::ReallyHidden, +# 61| cl::desc("A fixed hot count that overrides the count derived from" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:64: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryColdCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryColdCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| " profile-summary-cutoff-hot")); +# 63| +# 64|-> cl::opt ProfileSummaryColdCount( +# 65| "profile-summary-cold-count", cl::ReallyHidden, +# 66| cl::desc("A fixed cold count that overrides the count derived from" + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:90: var_decl: Declaring variable "Items". +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:95: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 93| Ptr + I * sizeof(SegmentEntry))); +# 94| } +# 95|-> return Items; +# 96| } +# 97| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:104: var_decl: Declaring variable "Items". +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:112: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 110| Ptr += sizeof(MemInfoBlock); +# 111| } +# 112|-> return Items; +# 113| } +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/SampleProf.cpp:30: constructor_uses_global_object: The constructor of global object "ProfileSymbolListCutOff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileSymbolListCutOff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace sampleprof; +# 29| +# 30|-> static cl::opt ProfileSymbolListCutOff( +# 31| "profile-symbol-list-cutoff", cl::Hidden, cl::init(-1), +# 32| cl::desc("Cutoff value about how many symbols in profile symbol list " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/SampleProf.cpp:35: constructor_uses_global_object: The constructor of global object "GenerateMergedBaseProfiles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateMergedBaseProfiles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| "will be used. This is very useful for performance debugging")); +# 34| +# 35|-> static cl::opt GenerateMergedBaseProfiles( +# 36| "generate-merged-base-profiles", +# 37| cl::desc("When generating nested context-sensitive profiles, always " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/SampleProfReader.cpp:56: constructor_uses_global_object: The constructor of global object "ProfileIsFSDisciminator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileIsFSDisciminator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| // It only applies to text, and binary format profiles. +# 55| // For ext-binary format profiles, the flag is set in the summary. +# 56|-> static cl::opt ProfileIsFSDisciminator( +# 57| "profile-isfs", cl::Hidden, cl::init(false), +# 58| cl::desc("Profile uses flow sensitive discriminators")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Remarks/RemarkStreamer.cpp:20: constructor_uses_global_object: The constructor of global object "EnableRemarksSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRemarksSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 18| using namespace llvm::remarks; +# 19| +# 20|-> static cl::opt EnableRemarksSection( +# 21| "remarks-section", +# 22| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:41: constructor_uses_global_object: The constructor of global object "OutputFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> OutputFilename("o", cl::desc("Output filename"), cl::value_desc("filename"), +# 42| cl::init("-")); +# 43| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:45: constructor_uses_global_object: The constructor of global object "DependFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DependFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| static cl::opt +# 45|-> DependFilename("d", +# 46| cl::desc("Dependency filename"), +# 47| cl::value_desc("filename"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:51: constructor_uses_global_object: The constructor of global object "InputFilename[abi:cxx11]" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "InputFilename[abi:cxx11]" might be created before "GlobalParser" is available. +# 49| +# 50| static cl::opt +# 51|-> InputFilename(cl::Positional, cl::desc(""), cl::init("-")); +# 52| +# 53| static cl::list + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:54: constructor_uses_global_object: The constructor of global object "IncludeDirs[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IncludeDirs[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::list +# 54|-> IncludeDirs("I", cl::desc("Directory of include files"), +# 55| cl::value_desc("directory"), cl::Prefix); +# 56| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:58: constructor_uses_global_object: The constructor of global object "MacroNames[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MacroNames[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| +# 57| static cl::list +# 58|-> MacroNames("D", cl::desc("Name of the macro to be defined"), +# 59| cl::value_desc("macro name"), cl::Prefix); +# 60| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:62: constructor_uses_global_object: The constructor of global object "WriteIfChanged" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WriteIfChanged" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> WriteIfChanged("write-if-changed", cl::desc("Only write output if it changed")); +# 63| +# 64| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:65: constructor_uses_global_object: The constructor of global object "TimePhases" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TimePhases" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| static cl::opt +# 65|-> TimePhases("time-phases", cl::desc("Time phases of parser and backend")); +# 66| +# 67| static cl::opt NoWarnOnUnusedTemplateArgs( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:67: constructor_uses_global_object: The constructor of global object "NoWarnOnUnusedTemplateArgs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoWarnOnUnusedTemplateArgs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| TimePhases("time-phases", cl::desc("Time phases of parser and backend")); +# 66| +# 67|-> static cl::opt NoWarnOnUnusedTemplateArgs( +# 68| "no-warn-on-unused-template-args", +# 69| cl::desc("Disable unused template argument warnings.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/TableGenBackendSkeleton.cpp:64: constructor_uses_global_object: The constructor of global object "Y" itself makes use of global object "llvm::TableGen::Emitter::Action" defined in another compilation unit. The order of construction is unspecified, so "Y" might be created before "llvm::TableGen::Emitter::Action" is available. +# 62| } +# 63| +# 64|-> static TableGen::Emitter::Opt Y("gen-skeleton-entry", EmitSkeleton, +# 65| "Generate example skeleton entry"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/TableGenBackendSkeleton.cpp:64: constructor_uses_global_object: The constructor of global object "Y" itself makes use of global object "llvm::cl::AllSubCommands" defined in another compilation unit. The order of construction is unspecified, so "Y" might be created before "llvm::cl::AllSubCommands" is available. +# 62| } +# 63| +# 64|-> static TableGen::Emitter::Opt Y("gen-skeleton-entry", EmitSkeleton, +# 65| "Generate example skeleton entry"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp:52: constructor_uses_global_object: The constructor of global object "TransformAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TransformAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| // destination register is the correct color. Used for testing. +# 51| static cl::opt +# 52|-> TransformAll("aarch64-a57-fp-load-balancing-force-all", +# 53| cl::desc("Always modify dest registers regardless of color"), +# 54| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp:59: constructor_uses_global_object: The constructor of global object "OverrideBalance" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OverrideBalance" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| // color always. Used for testing. +# 58| static cl::opt +# 59|-> OverrideBalance("aarch64-a57-fp-load-balancing-override", +# 60| cl::desc("Ignore balance information, always return " +# 61| "(1: Even, 2: Odd)."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp:54: constructor_uses_global_object: The constructor of global object "TransformAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TransformAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // them. For stress-testing the transformation function. +# 53| static cl::opt +# 54|-> TransformAll("aarch64-simd-scalar-force-all", +# 55| cl::desc("Force use of AdvSIMD scalar instructions everywhere"), +# 56| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ConditionalCompares.cpp:46: constructor_uses_global_object: The constructor of global object "BlockInstrLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockInstrLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| // Absolute maximum number of instructions allowed per speculated block. +# 45| // This bypasses all other heuristics, so it should be set fairly high. +# 46|-> static cl::opt BlockInstrLimit( +# 47| "aarch64-ccmp-limit", cl::init(30), cl::Hidden, +# 48| cl::desc("Maximum number of instructions per speculated block.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ConditionalCompares.cpp:51: constructor_uses_global_object: The constructor of global object "Stress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Stress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| +# 50| // Stress testing mode - disable heuristics. +# 51|-> static cl::opt Stress("aarch64-stress-ccmp", cl::Hidden, +# 52| cl::desc("Turn all knobs to 11")); +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:238: constructor_uses_global_object: The constructor of global object "EnableRedZone" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRedZone" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 236| #define DEBUG_TYPE "frame-info" +# 237| +# 238|-> static cl::opt EnableRedZone("aarch64-redzone", +# 239| cl::desc("enable use of redzone on AArch64"), +# 240| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:243: constructor_uses_global_object: The constructor of global object "ReverseCSRRestoreSeq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReverseCSRRestoreSeq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 241| +# 242| static cl::opt +# 243|-> ReverseCSRRestoreSeq("reverse-csr-restore-seq", +# 244| cl::desc("reverse the CSR restore sequence"), +# 245| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:247: constructor_uses_global_object: The constructor of global object "StackTaggingMergeSetTag" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackTaggingMergeSetTag" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 245| cl::init(false), cl::Hidden); +# 246| +# 247|-> static cl::opt StackTaggingMergeSetTag( +# 248| "stack-tagging-merge-settag", +# 249| cl::desc("merge settag instruction in function epilog"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:252: constructor_uses_global_object: The constructor of global object "OrderFrameObjects" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OrderFrameObjects" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 250| cl::Hidden); +# 251| +# 252|-> static cl::opt OrderFrameObjects("aarch64-order-frame-objects", +# 253| cl::desc("sort stack allocations"), +# 254| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:256: constructor_uses_global_object: The constructor of global object "EnableHomogeneousPrologEpilog" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableHomogeneousPrologEpilog" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 254| cl::init(true), cl::Hidden); +# 255| +# 256|-> cl::opt EnableHomogeneousPrologEpilog( +# 257| "homogeneous-prolog-epilog", cl::Hidden, +# 258| cl::desc("Emit homogeneous prologue and epilogue for the size " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:114: constructor_uses_global_object: The constructor of global object "EnableAArch64ELFLocalDynamicTLSGeneration" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAArch64ELFLocalDynamicTLSGeneration" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| // well in the GNU bfd and gold linkers at the moment. Therefore, by +# 113| // default, for now, fall back to GeneralDynamic code generation. +# 114|-> cl::opt EnableAArch64ELFLocalDynamicTLSGeneration( +# 115| "aarch64-elf-ldtls-generation", cl::Hidden, +# 116| cl::desc("Allow AArch64 Local Dynamic TLS code generation"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:120: constructor_uses_global_object: The constructor of global object "EnableOptimizeLogicalImm" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableOptimizeLogicalImm" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| +# 119| static cl::opt +# 120|-> EnableOptimizeLogicalImm("aarch64-enable-logical-imm", cl::Hidden, +# 121| cl::desc("Enable AArch64 logical imm instruction " +# 122| "optimization"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:130: constructor_uses_global_object: The constructor of global object "EnableCombineMGatherIntrinsics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCombineMGatherIntrinsics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| // than the GLD1 nodes added for the SVE gather load intrinsics. +# 129| static cl::opt +# 130|-> EnableCombineMGatherIntrinsics("aarch64-enable-mgather-combine", cl::Hidden, +# 131| cl::desc("Combine extends of AArch64 masked " +# 132| "gather intrinsics"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:138: constructor_uses_global_object: The constructor of global object "MaxXors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxXors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| // bottleneck after this transform on high end CPU. So this max leaf node +# 137| // limitation is guard cmp+ccmp will be profitable. +# 138|-> static cl::opt MaxXors("aarch64-max-xors", cl::init(16), cl::Hidden, +# 139| cl::desc("Maximum of xors")); +# 140| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:60: constructor_uses_global_object: The constructor of global object "TBZDisplacementBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TBZDisplacementBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| #include "AArch64GenInstrInfo.inc" +# 59| +# 60|-> static cl::opt TBZDisplacementBits( +# 61| "aarch64-tbz-offset-bits", cl::Hidden, cl::init(14), +# 62| cl::desc("Restrict range of TB[N]Z instructions (DEBUG)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:64: constructor_uses_global_object: The constructor of global object "CBZDisplacementBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CBZDisplacementBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| cl::desc("Restrict range of TB[N]Z instructions (DEBUG)")); +# 63| +# 64|-> static cl::opt CBZDisplacementBits( +# 65| "aarch64-cbz-offset-bits", cl::Hidden, cl::init(19), +# 66| cl::desc("Restrict range of CB[N]Z instructions (DEBUG)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:69: constructor_uses_global_object: The constructor of global object "BCCDisplacementBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BCCDisplacementBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| +# 68| static cl::opt +# 69|-> BCCDisplacementBits("aarch64-bcc-offset-bits", cl::Hidden, cl::init(19), +# 70| cl::desc("Restrict range of Bcc instructions (DEBUG)")); +# 71| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7276: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7276: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7565: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7639: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 7637| // link register. +# 7638| bool ModStackToSaveLR = false; +# 7639|-> if (std::any_of(FirstCand.front(), FirstCand.back(), +# 7640| [](const MachineInstr &MI) { return MI.isCall(); })) +# 7641| ModStackToSaveLR = true; +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7639: note: trimmed 1 message(s) with length over 512 + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:71: constructor_uses_global_object: The constructor of global object "LdStLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LdStLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| // The LdStLimit limits how far we search for load/store pairs. +# 71|-> static cl::opt LdStLimit("aarch64-load-store-scan-limit", +# 72| cl::init(20), cl::Hidden); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:76: constructor_uses_global_object: The constructor of global object "UpdateLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UpdateLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| // The UpdateLimit limits how far we search for update instructions when we form +# 75| // pre-/post-index instructions. +# 76|-> static cl::opt UpdateLimit("aarch64-update-scan-limit", cl::init(100), +# 77| cl::Hidden); +# 78| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:80: constructor_uses_global_object: The constructor of global object "EnableRenaming" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRenaming" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| // Enable register renaming to find additional store pairing opportunities. +# 80|-> static cl::opt EnableRenaming("aarch64-load-store-renaming", +# 81| cl::init(true), cl::Hidden); +# 82| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp:37: constructor_uses_global_object: The constructor of global object "FrameHelperSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FrameHelperSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| "AArch64 homogeneous prolog/epilog lowering pass" +# 36| +# 37|-> cl::opt FrameHelperSizeThreshold( +# 38| "frame-helper-size-threshold", cl::init(2), cl::Hidden, +# 39| cl::desc("The minimum number of instructions that are outlined in a frame " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64PromoteConstant.cpp:56: constructor_uses_global_object: The constructor of global object "Stress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Stress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| // Stress testing mode - disable heuristics. +# 56|-> static cl::opt Stress("aarch64-stress-promote-const", cl::Hidden, +# 57| cl::desc("Promote all vector constants")); +# 58| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64SpeculationHardening.cpp:119: constructor_uses_global_object: The constructor of global object "HardenLoads" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HardenLoads" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| #define AARCH64_SPECULATION_HARDENING_NAME "AArch64 speculation hardening pass" +# 118| +# 119|-> static cl::opt HardenLoads("aarch64-slh-loads", cl::Hidden, +# 120| cl::desc("Sanitize loads from memory."), +# 121| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:66: constructor_uses_global_object: The constructor of global object "ClMergeInit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClMergeInit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| #define DEBUG_TYPE "aarch64-stack-tagging" +# 65| +# 66|-> static cl::opt ClMergeInit( +# 67| "stack-tagging-merge-init", cl::Hidden, cl::init(true), +# 68| cl::desc("merge stack variable initializers with tagging when possible")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:71: constructor_uses_global_object: The constructor of global object "ClUseStackSafety" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClUseStackSafety" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| static cl::opt +# 71|-> ClUseStackSafety("stack-tagging-use-stack-safety", cl::Hidden, +# 72| cl::init(true), +# 73| cl::desc("Use Stack Safety analysis results")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:75: constructor_uses_global_object: The constructor of global object "ClScanLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClScanLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| cl::desc("Use Stack Safety analysis results")); +# 74| +# 75|-> static cl::opt ClScanLimit("stack-tagging-merge-init-scan-limit", +# 76| cl::init(40), cl::Hidden); +# 77| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:79: constructor_uses_global_object: The constructor of global object "ClMergeInitSizeLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClMergeInitSizeLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> ClMergeInitSizeLimit("stack-tagging-merge-init-size-limit", cl::init(272), +# 80| cl::Hidden); +# 81| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:82: constructor_uses_global_object: The constructor of global object "ClMaxLifetimes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClMaxLifetimes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| cl::Hidden); +# 81| +# 82|-> static cl::opt ClMaxLifetimes( +# 83| "stack-tagging-max-lifetimes-for-alloca", cl::Hidden, cl::init(3), +# 84| cl::ReallyHidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp:38: constructor_uses_global_object: The constructor of global object "ClUncheckedLdSt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClUncheckedLdSt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| enum UncheckedLdStMode { UncheckedNever, UncheckedSafe, UncheckedAlways }; +# 37| +# 38|-> cl::opt ClUncheckedLdSt( +# 39| "stack-tagging-unchecked-ld-st", cl::Hidden, +# 40| cl::init(UncheckedSafe), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp:52: constructor_uses_global_object: The constructor of global object "ClFirstSlot" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClFirstSlot" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| +# 51| static cl::opt +# 52|-> ClFirstSlot("stack-tagging-first-slot-opt", cl::Hidden, cl::init(true), +# 53| cl::desc("Apply first slot optimization for stack tagging " +# 54| "(eliminate ADDG Rt, Rn, 0, 0).")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:38: constructor_uses_global_object: The constructor of global object "EnableEarlyIfConvert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEarlyIfConvert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| +# 37| static cl::opt +# 38|-> EnableEarlyIfConvert("aarch64-early-ifcvt", cl::desc("Enable the early if " +# 39| "converter pass"), cl::init(true), cl::Hidden); +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:43: constructor_uses_global_object: The constructor of global object "UseAddressTopByteIgnored" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAddressTopByteIgnored" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| // If OS supports TBI, use this flag to enable it. +# 42| static cl::opt +# 43|-> UseAddressTopByteIgnored("aarch64-use-tbi", cl::desc("Assume that top byte of " +# 44| "an address is ignored"), cl::init(false), cl::Hidden); +# 45| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:47: constructor_uses_global_object: The constructor of global object "UseNonLazyBind" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseNonLazyBind" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| static cl::opt +# 47|-> UseNonLazyBind("aarch64-enable-nonlazybind", +# 48| cl::desc("Call nonlazybind functions via direct GOT load"), +# 49| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:51: constructor_uses_global_object: The constructor of global object "UseAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| cl::init(false), cl::Hidden); +# 50| +# 51|-> static cl::opt UseAA("aarch64-use-aa", cl::init(true), +# 52| cl::desc("Enable the use of AA during codegen.")); +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:54: constructor_uses_global_object: The constructor of global object "OverrideVectorInsertExtractBaseCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OverrideVectorInsertExtractBaseCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::desc("Enable the use of AA during codegen.")); +# 53| +# 54|-> static cl::opt OverrideVectorInsertExtractBaseCost( +# 55| "aarch64-insert-extract-base-cost", +# 56| cl::desc("Base cost of vector insert/extract element"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:62: constructor_uses_global_object: The constructor of global object "ReservedRegsForRA[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReservedRegsForRA[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| // to function call. +# 61| static cl::list +# 62|-> ReservedRegsForRA("reserve-regs-for-regalloc", cl::desc("Reserve physical " +# 63| "registers, so they can't be used by register allocator. " +# 64| "Should only be used for testing register allocator."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:67: constructor_uses_global_object: The constructor of global object "ForceStreamingCompatibleSVE" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceStreamingCompatibleSVE" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::CommaSeparated, cl::Hidden); +# 66| +# 67|-> static cl::opt ForceStreamingCompatibleSVE( +# 68| "force-streaming-compatible-sve", +# 69| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:58: constructor_uses_global_object: The constructor of global object "EnableCCMP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCCMP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| using namespace llvm; +# 57| +# 58|-> static cl::opt EnableCCMP("aarch64-enable-ccmp", +# 59| cl::desc("Enable the CCMP formation pass"), +# 60| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:63: constructor_uses_global_object: The constructor of global object "EnableCondBrTuning" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCondBrTuning" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| +# 62| static cl::opt +# 63|-> EnableCondBrTuning("aarch64-enable-cond-br-tune", +# 64| cl::desc("Enable the conditional branch tuning pass"), +# 65| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:67: constructor_uses_global_object: The constructor of global object "EnableAArch64CopyPropagation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAArch64CopyPropagation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::init(true), cl::Hidden); +# 66| +# 67|-> static cl::opt EnableAArch64CopyPropagation( +# 68| "aarch64-enable-copy-propagation", +# 69| cl::desc("Enable the copy propagation with AArch64 copy instr"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:72: constructor_uses_global_object: The constructor of global object "EnableMCR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMCR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| cl::init(true), cl::Hidden); +# 71| +# 72|-> static cl::opt EnableMCR("aarch64-enable-mcr", +# 73| cl::desc("Enable the machine combiner pass"), +# 74| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:76: constructor_uses_global_object: The constructor of global object "EnableStPairSuppress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableStPairSuppress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| cl::init(true), cl::Hidden); +# 75| +# 76|-> static cl::opt EnableStPairSuppress("aarch64-enable-stp-suppress", +# 77| cl::desc("Suppress STP for AArch64"), +# 78| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:80: constructor_uses_global_object: The constructor of global object "EnableAdvSIMDScalar" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAdvSIMDScalar" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| cl::init(true), cl::Hidden); +# 79| +# 80|-> static cl::opt EnableAdvSIMDScalar( +# 81| "aarch64-enable-simd-scalar", +# 82| cl::desc("Enable use of AdvSIMD scalar integer instructions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:86: constructor_uses_global_object: The constructor of global object "EnablePromoteConstant" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePromoteConstant" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> EnablePromoteConstant("aarch64-enable-promote-const", +# 87| cl::desc("Enable the promote constant pass"), +# 88| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:90: constructor_uses_global_object: The constructor of global object "EnableCollectLOH" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCollectLOH" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| cl::init(true), cl::Hidden); +# 89| +# 90|-> static cl::opt EnableCollectLOH( +# 91| "aarch64-enable-collect-loh", +# 92| cl::desc("Enable the pass that emits the linker optimization hints (LOH)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:96: constructor_uses_global_object: The constructor of global object "EnableDeadRegisterElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDeadRegisterElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| +# 95| static cl::opt +# 96|-> EnableDeadRegisterElimination("aarch64-enable-dead-defs", cl::Hidden, +# 97| cl::desc("Enable the pass that removes dead" +# 98| " definitons and replaces stores to" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:103: constructor_uses_global_object: The constructor of global object "EnableRedundantCopyElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRedundantCopyElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| cl::init(true)); +# 102| +# 103|-> static cl::opt EnableRedundantCopyElimination( +# 104| "aarch64-enable-copyelim", +# 105| cl::desc("Enable the redundant copy elimination pass"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:108: constructor_uses_global_object: The constructor of global object "EnableLoadStoreOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoadStoreOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| cl::Hidden); +# 107| +# 108|-> static cl::opt EnableLoadStoreOpt("aarch64-enable-ldst-opt", +# 109| cl::desc("Enable the load/store pair" +# 110| " optimization pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:113: constructor_uses_global_object: The constructor of global object "EnableAtomicTidy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAtomicTidy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::init(true), cl::Hidden); +# 112| +# 113|-> static cl::opt EnableAtomicTidy( +# 114| "aarch64-enable-atomic-cfg-tidy", cl::Hidden, +# 115| cl::desc("Run SimplifyCFG after expanding atomic operations" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:120: constructor_uses_global_object: The constructor of global object "EnableEarlyIfConversion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEarlyIfConversion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| +# 119| static cl::opt +# 120|-> EnableEarlyIfConversion("aarch64-enable-early-ifcvt", cl::Hidden, +# 121| cl::desc("Run early if-conversion"), +# 122| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:125: constructor_uses_global_object: The constructor of global object "EnableCondOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCondOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| +# 124| static cl::opt +# 125|-> EnableCondOpt("aarch64-enable-condopt", +# 126| cl::desc("Enable the condition optimizer pass"), +# 127| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:130: constructor_uses_global_object: The constructor of global object "EnableGEPOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGEPOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| +# 129| static cl::opt +# 130|-> EnableGEPOpt("aarch64-enable-gep-opt", cl::Hidden, +# 131| cl::desc("Enable optimizations on complex GEPs"), +# 132| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:135: constructor_uses_global_object: The constructor of global object "EnableSelectOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSelectOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| +# 134| static cl::opt +# 135|-> EnableSelectOpt("aarch64-select-opt", cl::Hidden, +# 136| cl::desc("Enable select to branch optimizations"), +# 137| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:140: constructor_uses_global_object: The constructor of global object "BranchRelaxation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BranchRelaxation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> BranchRelaxation("aarch64-enable-branch-relax", cl::Hidden, cl::init(true), +# 141| cl::desc("Relax out of range conditional branches")); +# 142| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:143: constructor_uses_global_object: The constructor of global object "EnableCompressJumpTables" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCompressJumpTables" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 141| cl::desc("Relax out of range conditional branches")); +# 142| +# 143|-> static cl::opt EnableCompressJumpTables( +# 144| "aarch64-enable-compress-jump-tables", cl::Hidden, cl::init(true), +# 145| cl::desc("Use smallest entry possible for jump tables")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:149: constructor_uses_global_object: The constructor of global object "EnableGlobalMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| // FIXME: Unify control over GlobalMerge. +# 148| static cl::opt +# 149|-> EnableGlobalMerge("aarch64-enable-global-merge", cl::Hidden, +# 150| cl::desc("Enable the global merge pass")); +# 151| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:153: constructor_uses_global_object: The constructor of global object "EnableLoopDataPrefetch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoopDataPrefetch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| +# 152| static cl::opt +# 153|-> EnableLoopDataPrefetch("https://github.com/aarch64-enable-loop-data-prefetch", cl::Hidden, +# 154| cl::desc("Enable the loop data prefetch pass"), +# 155| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:157: constructor_uses_global_object: The constructor of global object "EnableGlobalISelAtO" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalISelAtO" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 155| cl::init(true)); +# 156| +# 157|-> static cl::opt EnableGlobalISelAtO( +# 158| "aarch64-enable-global-isel-at-O", cl::Hidden, +# 159| cl::desc("Enable GlobalISel at or below an opt level (-1 to disable)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:163: constructor_uses_global_object: The constructor of global object "EnableSVEIntrinsicOpts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSVEIntrinsicOpts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| +# 162| static cl::opt +# 163|-> EnableSVEIntrinsicOpts("aarch64-enable-sve-intrinsic-opts", cl::Hidden, +# 164| cl::desc("Enable SVE intrinsic opts"), +# 165| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:167: constructor_uses_global_object: The constructor of global object "EnableFalkorHWPFFix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFalkorHWPFFix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 165| cl::init(true)); +# 166| +# 167|-> static cl::opt EnableFalkorHWPFFix("aarch64-enable-falkor-hwpf-fix", +# 168| cl::init(true), cl::Hidden); +# 169| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:171: constructor_uses_global_object: The constructor of global object "EnableBranchTargets" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableBranchTargets" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 169| +# 170| static cl::opt +# 171|-> EnableBranchTargets("aarch64-enable-branch-targets", cl::Hidden, +# 172| cl::desc("Enable the AArch64 branch target pass"), +# 173| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:175: constructor_uses_global_object: The constructor of global object "SVEVectorBitsMaxOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEVectorBitsMaxOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 173| cl::init(true)); +# 174| +# 175|-> static cl::opt SVEVectorBitsMaxOpt( +# 176| "aarch64-sve-vector-bits-max", +# 177| cl::desc("Assume SVE vector registers are at most this big, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:181: constructor_uses_global_object: The constructor of global object "SVEVectorBitsMinOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEVectorBitsMinOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 179| cl::init(0), cl::Hidden); +# 180| +# 181|-> static cl::opt SVEVectorBitsMinOpt( +# 182| "aarch64-sve-vector-bits-min", +# 183| cl::desc("Assume SVE vector registers are at least this big, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:189: constructor_uses_global_object: The constructor of global object "EnableGISelLoadStoreOptPreLegal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGISelLoadStoreOptPreLegal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 187| extern cl::opt EnableHomogeneousPrologEpilog; +# 188| +# 189|-> static cl::opt EnableGISelLoadStoreOptPreLegal( +# 190| "aarch64-enable-gisel-ldst-prelegal", +# 191| cl::desc("Enable GlobalISel's pre-legalizer load/store optimization pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:194: constructor_uses_global_object: The constructor of global object "EnableGISelLoadStoreOptPostLegal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGISelLoadStoreOptPostLegal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 192| cl::init(true), cl::Hidden); +# 193| +# 194|-> static cl::opt EnableGISelLoadStoreOptPostLegal( +# 195| "aarch64-enable-gisel-ldst-postlegal", +# 196| cl::desc("Enable GlobalISel's post-legalizer load/store optimization pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:33: constructor_uses_global_object: The constructor of global object "EnableFalkorHWPFUnrollFix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFalkorHWPFUnrollFix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| #define DEBUG_TYPE "aarch64tti" +# 32| +# 33|-> static cl::opt EnableFalkorHWPFUnrollFix("enable-falkor-hwpf-unroll-fix", +# 34| cl::init(true), cl::Hidden); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:36: constructor_uses_global_object: The constructor of global object "SVEGatherOverhead" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEGatherOverhead" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| cl::init(true), cl::Hidden); +# 35| +# 36|-> static cl::opt SVEGatherOverhead("sve-gather-overhead", cl::init(10), +# 37| cl::Hidden); +# 38| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:39: constructor_uses_global_object: The constructor of global object "SVEScatterOverhead" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEScatterOverhead" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::Hidden); +# 38| +# 39|-> static cl::opt SVEScatterOverhead("sve-scatter-overhead", +# 40| cl::init(10), cl::Hidden); +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:42: constructor_uses_global_object: The constructor of global object "SVETailFoldInsnThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVETailFoldInsnThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::init(10), cl::Hidden); +# 41| +# 42|-> static cl::opt SVETailFoldInsnThreshold("sve-tail-folding-insn-threshold", +# 43| cl::init(15), cl::Hidden); +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:46: constructor_uses_global_object: The constructor of global object "NeonNonConstStrideOverhead" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NeonNonConstStrideOverhead" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| +# 45| static cl::opt +# 46|-> NeonNonConstStrideOverhead("neon-nonconst-stride-overhead", cl::init(10), +# 47| cl::Hidden); +# 48| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:158: constructor_uses_global_object: The constructor of global object "SVETailFolding[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVETailFolding[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 156| TailFoldingOption TailFoldingOptionLoc; +# 157| +# 158|-> cl::opt> SVETailFolding( +# 159| "sve-tail-folding", +# 160| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:184: constructor_uses_global_object: The constructor of global object "EnableFixedwidthAutovecInStreamingMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFixedwidthAutovecInStreamingMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 182| // code-generator is changed to use SVE instead of NEON for all fixed-width +# 183| // operations. +# 184|-> static cl::opt EnableFixedwidthAutovecInStreamingMode( +# 185| "enable-fixedwidth-autovec-in-streaming-mode", cl::init(false), cl::Hidden); +# 186| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:190: constructor_uses_global_object: The constructor of global object "EnableScalableAutovecInStreamingMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableScalableAutovecInStreamingMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 188| // and code-generator have been changed to avoid using scalable vector +# 189| // instructions that are not legal in streaming SVE mode. +# 190|-> static cl::opt EnableScalableAutovecInStreamingMode( +# 191| "enable-scalable-autovec-in-streaming-mode", cl::init(false), cl::Hidden); +# 192| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:75: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:78: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:83: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 336 bytes. +# 81| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 82| "Invalid kind!"); +# 83|-> return Infos[Kind - FirstTargetFixupKind]; +# 84| } +# 85| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp:27: constructor_uses_global_object: The constructor of global object "AsmWriterVariant" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AsmWriterVariant" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| }; +# 26| +# 27|-> static cl::opt AsmWriterVariant( +# 28| "aarch64-neon-syntax", cl::init(Default), +# 29| cl::desc("Choose style of NEON code to emit from AArch64 backend:"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp:26: constructor_uses_global_object: The constructor of global object "MarkBTIProperty" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MarkBTIProperty" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| using namespace llvm; +# 25| +# 26|-> static cl::opt MarkBTIProperty( +# 27| "aarch64-mark-bti-property", cl::Hidden, +# 28| cl::desc("Add .note.gnu.property with BTI to assembly files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp:27: constructor_uses_global_object: The constructor of global object "::StressCalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::StressCalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| namespace { +# 26| +# 27|-> static cl::opt StressCalls( +# 28| "amdgpu-stress-function-calls", +# 29| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:42: constructor_uses_global_object: The constructor of global object "::WidenLoads" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::WidenLoads" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| namespace { +# 41| +# 42|-> static cl::opt WidenLoads( +# 43| "amdgpu-codegenprepare-widen-constant-loads", +# 44| cl::desc("Widen sub-dword constant address space loads in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:48: constructor_uses_global_object: The constructor of global object "::Widen16BitOps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Widen16BitOps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| cl::init(false)); +# 47| +# 48|-> static cl::opt Widen16BitOps( +# 49| "amdgpu-codegenprepare-widen-16-bit-ops", +# 50| cl::desc("Widen uniform 16-bit instructions to 32-bit in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:55: constructor_uses_global_object: The constructor of global object "::ScalarizeLargePHIs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ScalarizeLargePHIs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| +# 54| static cl::opt +# 55|-> ScalarizeLargePHIs("amdgpu-codegenprepare-break-large-phis", +# 56| cl::desc("Break large PHI nodes for DAGISel"), +# 57| cl::ReallyHidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:60: constructor_uses_global_object: The constructor of global object "::ForceScalarizeLargePHIs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ForceScalarizeLargePHIs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| +# 59| static cl::opt +# 60|-> ForceScalarizeLargePHIs("amdgpu-codegenprepare-force-break-large-phis", +# 61| cl::desc("For testing purposes, always break large " +# 62| "PHIs even if it isn't profitable."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:65: constructor_uses_global_object: The constructor of global object "::ScalarizeLargePHIsThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ScalarizeLargePHIsThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::ReallyHidden, cl::init(false)); +# 64| +# 65|-> static cl::opt ScalarizeLargePHIsThreshold( +# 66| "amdgpu-codegenprepare-break-large-phis-threshold", +# 67| cl::desc("Minimum type size in bits for breaking large PHI nodes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:70: constructor_uses_global_object: The constructor of global object "::UseMul24Intrin" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::UseMul24Intrin" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| cl::ReallyHidden, cl::init(32)); +# 69| +# 70|-> static cl::opt UseMul24Intrin( +# 71| "amdgpu-codegenprepare-mul24", +# 72| cl::desc("Introduce mul24 intrinsics in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:77: constructor_uses_global_object: The constructor of global object "::ExpandDiv64InIR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ExpandDiv64InIR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| +# 76| // Legalize 64-bit division by using the generic IR expansion. +# 77|-> static cl::opt ExpandDiv64InIR( +# 78| "amdgpu-codegenprepare-expand-div64", +# 79| cl::desc("Expand 64-bit division in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:85: constructor_uses_global_object: The constructor of global object "::DisableIDivExpand" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisableIDivExpand" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| // Leave all division operations as they are. This supersedes ExpandDiv64InIR +# 84| // and is used for testing the legalizer. +# 85|-> static cl::opt DisableIDivExpand( +# 86| "amdgpu-codegenprepare-disable-idiv-expansion", +# 87| cl::desc("Prevent expanding integer division in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:92: constructor_uses_global_object: The constructor of global object "::DisableFDivExpand" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisableFDivExpand" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| +# 91| // Disable processing of fdiv so we can better test the backend implementations. +# 92|-> static cl::opt DisableFDivExpand( +# 93| "amdgpu-codegenprepare-disable-fdiv-expansion", +# 94| cl::desc("Prevent expanding floating point division in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:41: constructor_uses_global_object: The constructor of global object "llvm::DumpHSAMetadata" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DumpHSAMetadata" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| namespace llvm { +# 40| +# 41|-> static cl::opt DumpHSAMetadata( +# 42| "amdgpu-dump-hsa-metadata", +# 43| cl::desc("Dump AMDGPU HSA Metadata")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:44: constructor_uses_global_object: The constructor of global object "llvm::VerifyHSAMetadata" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::VerifyHSAMetadata" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| "amdgpu-dump-hsa-metadata", +# 43| cl::desc("Dump AMDGPU HSA Metadata")); +# 44|-> static cl::opt VerifyHSAMetadata( +# 45| "amdgpu-verify-hsa-metadata", +# 46| cl::desc("Verify AMDGPU HSA Metadata")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:34: constructor_uses_global_object: The constructor of global object "::EnableExactSolver" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::EnableExactSolver" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| namespace { +# 33| +# 34|-> static cl::opt EnableExactSolver( +# 35| "amdgpu-igrouplp-exact-solver", cl::Hidden, +# 36| cl::desc("Whether to use the exponential time solver to fit " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:41: constructor_uses_global_object: The constructor of global object "::CutoffForExact" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::CutoffForExact" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| cl::init(false)); +# 40| +# 41|-> static cl::opt CutoffForExact( +# 42| "amdgpu-igrouplp-exact-solver-cutoff", cl::init(0), cl::Hidden, +# 43| cl::desc("The maximum number of scheduling group conflicts " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:50: constructor_uses_global_object: The constructor of global object "::MaxBranchesExplored" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::MaxBranchesExplored" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| "the solver (e.g. by amdgpu-igrouplp-exact-solver")); +# 49| +# 50|-> static cl::opt MaxBranchesExplored( +# 51| "amdgpu-igrouplp-exact-solver-max-branches", cl::init(0), cl::Hidden, +# 52| cl::desc("The amount of branches that we are willing to explore with" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:55: constructor_uses_global_object: The constructor of global object "::UseCostHeur" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::UseCostHeur" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| "the exact algorithm before giving up.")); +# 54| +# 55|-> static cl::opt UseCostHeur( +# 56| "amdgpu-igrouplp-exact-solver-cost-heur", cl::init(true), cl::Hidden, +# 57| cl::desc("Whether to use the cost heuristic to make choices as we " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:596: var_decl: Declaring variable "Match" without initializer. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:603: uninit_use_in_call: Using uninitialized value "Match" when calling "isFull". +# 601| +# 602| if (UseCostHeur) { +# 603|-> if (Match->isFull()) { +# 604| ReadyList.push_back(std::pair(*I, MissPenalty)); +# 605| continue; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:742: var_decl: Declaring variable "Match" without initializer. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:751: uninit_use_in_call: Using uninitialized value "Match" when calling "isFull". +# 749| << (int)Match->getMask() << "\n"); +# 750| +# 751|-> if (Match->isFull()) { +# 752| LLVM_DEBUG(dbgs() << "SGID # " << CandSGID << " is full\n"); +# 753| continue; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUISelLowering.cpp:34: constructor_uses_global_object: The constructor of global object "AMDGPUBypassSlowDiv" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUBypassSlowDiv" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| #include "AMDGPUGenCallingConv.inc" +# 33| +# 34|-> static cl::opt AMDGPUBypassSlowDiv( +# 35| "amdgpu-bypass-slow-div", +# 36| cl::desc("Skip 64-bit divide for dynamic 32-bit values"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp:36: constructor_uses_global_object: The constructor of global object "AllowRiskySelect" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowRiskySelect" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| using namespace MIPatternMatch; +# 35| +# 36|-> static cl::opt AllowRiskySelect( +# 37| "amdgpu-global-isel-risky-select", +# 38| cl::desc("Allow GlobalISel to select cases that are likely to not work yet"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp:35: constructor_uses_global_object: The constructor of global object "WidenLoads" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WidenLoads" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| // only but not dword aligned. +# 34| static cl::opt +# 35|-> WidenLoads("amdgpu-late-codegenprepare-widen-constant-loads", +# 36| cl::desc("Widen sub-dword constant address space loads in " +# 37| "AMDGPULateCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:41: constructor_uses_global_object: The constructor of global object "EnableNewLegality" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableNewLegality" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| // Hack until load/store selection patterns support any tuple of legal types. +# 41|-> static cl::opt EnableNewLegality( +# 42| "amdgpu-global-isel-new-legality", +# 43| cl::desc("Use GlobalISel desired legality, rather than try to use" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibCalls.cpp:30: constructor_uses_global_object: The constructor of global object "EnablePreLink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePreLink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace llvm; +# 29| +# 30|-> static cl::opt EnablePreLink("amdgpu-prelink", +# 31| cl::desc("Enable pre-link mode optimizations"), +# 32| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibCalls.cpp:35: constructor_uses_global_object: The constructor of global object "UseNative[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseNative[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| cl::Hidden); +# 34| +# 35|-> static cl::list UseNative("amdgpu-use-native", +# 36| cl::desc("Comma separated list of functions to replace with native, or all"), +# 37| cl::CommaSeparated, cl::ValueOptional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:28: constructor_uses_global_object: The constructor of global object "EnableOCLManglingMismatchWA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableOCLManglingMismatchWA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| using namespace llvm; +# 27| +# 28|-> static cl::opt EnableOCLManglingMismatchWA( +# 29| "amdgpu-enable-ocl-mangling-mismatch-workaround", cl::init(true), +# 30| cl::ReallyHidden, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:380: var_decl: Declaring variable "P". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:381: uninit_use: Using uninitialized value "P". Field "P.Reserved" is uninitialized. +# 379| AMDGPULibFunc::Param ParamIterator::getNextParam() { +# 380| AMDGPULibFunc::Param P; +# 381|-> if (Index >= int(sizeof Rule.Param/sizeof Rule.Param[0])) return P; +# 382| +# 383| const char R = Rule.Param[Index]; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:380: var_decl: Declaring variable "P". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:464: uninit_use: Using uninitialized value "P". Field "P.Reserved" is uninitialized. +# 462| } +# 463| ++Index; +# 464|-> return P; +# 465| } +# 466| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:218: constructor_uses_global_object: The constructor of global object "::SuperAlignLDSGlobals" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::SuperAlignLDSGlobals" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 216| namespace { +# 217| +# 218|-> cl::opt SuperAlignLDSGlobals( +# 219| "amdgpu-super-align-lds-globals", +# 220| cl::desc("Increase alignment of LDS if it is not on align boundary"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:224: constructor_uses_global_object: The constructor of global object "::LoweringKindLoc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::LoweringKindLoc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 222| +# 223| enum class LoweringKind { module, table, kernel, hybrid }; +# 224|-> cl::opt LoweringKindLoc( +# 225| "amdgpu-lower-module-lds-strategy", +# 226| cl::desc("Specify lowering strategy for function LDS access:"), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:35: constructor_uses_global_object: The constructor of global object "MemBoundThresh" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemBoundThresh" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> MemBoundThresh("amdgpu-membound-threshold", cl::init(50), cl::Hidden, +# 36| cl::desc("Function mem bound threshold in %")); +# 37| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:39: constructor_uses_global_object: The constructor of global object "LimitWaveThresh" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LimitWaveThresh" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> LimitWaveThresh("amdgpu-limit-wave-threshold", cl::init(50), cl::Hidden, +# 40| cl::desc("Kernel limit wave threshold in %")); +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:43: constructor_uses_global_object: The constructor of global object "IAWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IAWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| +# 42| static cl::opt +# 43|-> IAWeight("amdgpu-indirect-access-weight", cl::init(1000), cl::Hidden, +# 44| cl::desc("Indirect access memory instruction weight")); +# 45| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:47: constructor_uses_global_object: The constructor of global object "LSWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LSWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| static cl::opt +# 47|-> LSWeight("amdgpu-large-stride-weight", cl::init(1000), cl::Hidden, +# 48| cl::desc("Large stride memory access weight")); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:51: constructor_uses_global_object: The constructor of global object "LargeStrideThresh" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LargeStrideThresh" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| +# 50| static cl::opt +# 51|-> LargeStrideThresh("amdgpu-large-stride-threshold", cl::init(64), cl::Hidden, +# 52| cl::desc("Large stride memory access threshold")); +# 53| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp:105: tainted_data_return: Called function "CurFmt.find_last_of(llvm::StringRef("%"), 18446744073709551615UL)", and a possible return value is known to be less than zero. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp:105: assign: Assigning: "pTag" = "CurFmt.find_last_of(llvm::StringRef("%"), 18446744073709551615UL)". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp:108: overflow_sink: "--pTag", which might have underflowed, is passed to "CurFmt[--pTag]". +# 106| if (pTag != StringRef::npos) { +# 107| ArgDump = true; +# 108|-> while (pTag && CurFmt[--pTag] == '%') { +# 109| ArgDump = !ArgDump; +# 110| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp:53: constructor_uses_global_object: The constructor of global object "::DisablePromoteAllocaToVector" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisablePromoteAllocaToVector" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| static cl::opt +# 53|-> DisablePromoteAllocaToVector("disable-promote-alloca-to-vector", +# 54| cl::desc("Disable promote alloca to vector"), +# 55| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp:58: constructor_uses_global_object: The constructor of global object "::DisablePromoteAllocaToLDS" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisablePromoteAllocaToLDS" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| +# 57| static cl::opt +# 58|-> DisablePromoteAllocaToLDS("disable-promote-alloca-to-lds", +# 59| cl::desc("Disable promote alloca to LDS"), +# 60| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp:62: constructor_uses_global_object: The constructor of global object "::PromoteAllocaToVectorLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PromoteAllocaToVectorLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| cl::init(false)); +# 61| +# 62|-> static cl::opt PromoteAllocaToVectorLimit( +# 63| "amdgpu-promote-alloca-to-vector-limit", +# 64| cl::desc("Maximum byte size to consider promote alloca to vector"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp:49: constructor_uses_global_object: The constructor of global object "AssumedStackSizeForExternalCall" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumedStackSizeForExternalCall" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| // time if we don't know the true stack size. Assume a smaller number if this is +# 48| // only due to dynamic / non-entry block allocas. +# 49|-> static cl::opt AssumedStackSizeForExternalCall( +# 50| "amdgpu-assume-external-call-stack-size", +# 51| cl::desc("Assumed stack use of any external call (in bytes)"), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp:54: constructor_uses_global_object: The constructor of global object "AssumedStackSizeForDynamicSizeObjects" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumedStackSizeForDynamicSizeObjects" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::init(16384)); +# 53| +# 54|-> static cl::opt AssumedStackSizeForDynamicSizeObjects( +# 55| "amdgpu-assume-dynamic-stack-object-size", +# 56| cl::desc("Assumed extra stack use if there are any " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp:62: constructor_uses_global_object: The constructor of global object "AnyAddressSpace" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AnyAddressSpace" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| using namespace llvm; +# 61| +# 62|-> static cl::opt AnyAddressSpace( +# 63| "amdgpu-any-address-space-out-arguments", +# 64| cl::desc("Replace pointer out arguments with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp:69: constructor_uses_global_object: The constructor of global object "MaxNumRetRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxNumRetRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::init(false)); +# 68| +# 69|-> static cl::opt MaxNumRetRegs( +# 70| "amdgpu-max-return-arg-num-regs", +# 71| cl::desc("Approximately limit number of return registers for replacing out arguments"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSetWavePriority.cpp:29: constructor_uses_global_object: The constructor of global object "DefaultVALUInstsThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultVALUInstsThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| #define DEBUG_TYPE "amdgpu-set-wave-priority" +# 28| +# 29|-> static cl::opt DefaultVALUInstsThreshold( +# 30| "amdgpu-set-wave-priority-valu-insts-threshold", +# 31| cl::desc("VALU instruction count threshold for adjusting wave priority"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:43: constructor_uses_global_object: The constructor of global object "EnablePowerSched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePowerSched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| #undef AMDGPUSubtarget +# 42| +# 43|-> static cl::opt EnablePowerSched( +# 44| "amdgpu-enable-power-sched", +# 45| cl::desc("Enable scheduling to minimize mAI power bursts"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:48: constructor_uses_global_object: The constructor of global object "EnableVGPRIndexMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableVGPRIndexMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| cl::init(false)); +# 47| +# 48|-> static cl::opt EnableVGPRIndexMode( +# 49| "amdgpu-vgpr-index-mode", +# 50| cl::desc("Use GPR indexing mode instead of movrel for vector indexing"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:53: constructor_uses_global_object: The constructor of global object "UseAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| cl::init(false)); +# 52| +# 53|-> static cl::opt UseAA("amdgpu-use-aa-in-codegen", +# 54| cl::desc("Enable the use of AA during codegen."), +# 55| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:57: constructor_uses_global_object: The constructor of global object "NSAThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NSAThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::init(true)); +# 56| +# 57|-> static cl::opt NSAThreshold("amdgpu-nsa-threshold", +# 58| cl::desc("Number of addresses from which to enable MIMG NSA."), +# 59| cl::init(3), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:107: constructor_uses_global_object: The constructor of global object "::SGPRRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::SGPRRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| static cl::opt> +# 107|-> SGPRRegAlloc("sgpr-regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), +# 108| cl::desc("Register allocator to use for SGPRs")); +# 109| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:112: constructor_uses_global_object: The constructor of global object "::VGPRRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::VGPRRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 110| static cl::opt> +# 112|-> VGPRRegAlloc("vgpr-regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), +# 113| cl::desc("Register allocator to use for VGPRs")); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:176: constructor_uses_global_object: The constructor of global object "EnableSROA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSROA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 174| } +# 175| +# 176|-> static cl::opt EnableSROA( +# 177| "amdgpu-sroa", +# 178| cl::desc("Run SROA after promote alloca pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:183: constructor_uses_global_object: The constructor of global object "EnableEarlyIfConversion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEarlyIfConversion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 181| +# 182| static cl::opt +# 183|-> EnableEarlyIfConversion("amdgpu-early-ifcvt", cl::Hidden, +# 184| cl::desc("Run early if-conversion"), +# 185| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:188: constructor_uses_global_object: The constructor of global object "OptExecMaskPreRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptExecMaskPreRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 186| +# 187| static cl::opt +# 188|-> OptExecMaskPreRA("amdgpu-opt-exec-mask-pre-ra", cl::Hidden, +# 189| cl::desc("Run pre-RA exec mask optimizations"), +# 190| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:193: constructor_uses_global_object: The constructor of global object "LowerCtorDtor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LowerCtorDtor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 191| +# 192| static cl::opt +# 193|-> LowerCtorDtor("amdgpu-lower-global-ctor-dtor", +# 194| cl::desc("Lower GPU ctor / dtors to globals on the device."), +# 195| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:198: constructor_uses_global_object: The constructor of global object "EnableLoadStoreVectorizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoadStoreVectorizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 196| +# 197| // Option to disable vectorizer for tests. +# 198|-> static cl::opt EnableLoadStoreVectorizer( +# 199| "amdgpu-load-store-vectorizer", +# 200| cl::desc("Enable load store vectorizer"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:205: constructor_uses_global_object: The constructor of global object "ScalarizeGlobal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ScalarizeGlobal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 203| +# 204| // Option to control global loads scalarization +# 205|-> static cl::opt ScalarizeGlobal( +# 206| "amdgpu-scalarize-global-loads", +# 207| cl::desc("Enable global load scalarization"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:212: constructor_uses_global_object: The constructor of global object "InternalizeSymbols" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InternalizeSymbols" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 210| +# 211| // Option to run internalize pass. +# 212|-> static cl::opt InternalizeSymbols( +# 213| "amdgpu-internalize-symbols", +# 214| cl::desc("Enable elimination of non-kernel functions and unused globals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:219: constructor_uses_global_object: The constructor of global object "EarlyInlineAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EarlyInlineAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 217| +# 218| // Option to inline all early. +# 219|-> static cl::opt EarlyInlineAll( +# 220| "amdgpu-early-inline-all", +# 221| cl::desc("Inline all functions early"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:225: constructor_uses_global_object: The constructor of global object "RemoveIncompatibleFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemoveIncompatibleFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 223| cl::Hidden); +# 224| +# 225|-> static cl::opt RemoveIncompatibleFunctions( +# 226| "amdgpu-enable-remove-incompatible-functions", cl::Hidden, +# 227| cl::desc("Enable removal of functions when they" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:231: constructor_uses_global_object: The constructor of global object "EnableSDWAPeephole" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSDWAPeephole" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 229| cl::init(true)); +# 230| +# 231|-> static cl::opt EnableSDWAPeephole( +# 232| "amdgpu-sdwa-peephole", +# 233| cl::desc("Enable SDWA peepholer"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:236: constructor_uses_global_object: The constructor of global object "EnableDPPCombine" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDPPCombine" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 234| cl::init(true)); +# 235| +# 236|-> static cl::opt EnableDPPCombine( +# 237| "amdgpu-dpp-combine", +# 238| cl::desc("Enable DPP combiner"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:242: constructor_uses_global_object: The constructor of global object "EnableAMDGPUAliasAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAMDGPUAliasAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 240| +# 241| // Enable address space based alias analysis +# 242|-> static cl::opt EnableAMDGPUAliasAnalysis("enable-amdgpu-aa", cl::Hidden, +# 243| cl::desc("Enable AMDGPU Alias Analysis"), +# 244| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:247: constructor_uses_global_object: The constructor of global object "LateCFGStructurize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LateCFGStructurize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 245| +# 246| // Option to run late CFG structurizer +# 247|-> static cl::opt LateCFGStructurize( +# 248| "amdgpu-late-structurize", +# 249| cl::desc("Enable late CFG structurization"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:254: constructor_uses_global_object: The constructor of global object "EnableLibCallSimplify" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLibCallSimplify" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 252| +# 253| // Enable lib calls simplifications +# 254|-> static cl::opt EnableLibCallSimplify( +# 255| "amdgpu-simplify-libcall", +# 256| cl::desc("Enable amdgpu library simplifications"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:260: constructor_uses_global_object: The constructor of global object "EnableLowerKernelArguments" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLowerKernelArguments" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 258| cl::Hidden); +# 259| +# 260|-> static cl::opt EnableLowerKernelArguments( +# 261| "amdgpu-ir-lower-kernel-arguments", +# 262| cl::desc("Lower kernel argument loads in IR pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:266: constructor_uses_global_object: The constructor of global object "EnableRegReassign" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRegReassign" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 264| cl::Hidden); +# 265| +# 266|-> static cl::opt EnableRegReassign( +# 267| "amdgpu-reassign-regs", +# 268| cl::desc("Enable register reassign optimizations on gfx10+"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:272: constructor_uses_global_object: The constructor of global object "OptVGPRLiveRange" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptVGPRLiveRange" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 270| cl::Hidden); +# 271| +# 272|-> static cl::opt OptVGPRLiveRange( +# 273| "amdgpu-opt-vgpr-liverange", +# 274| cl::desc("Enable VGPR liverange optimizations for if-else structure"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:277: constructor_uses_global_object: The constructor of global object "AMDGPUAtomicOptimizerStrategy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUAtomicOptimizerStrategy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 275| cl::init(true), cl::Hidden); +# 276| +# 277|-> static cl::opt AMDGPUAtomicOptimizerStrategy( +# 278| "amdgpu-atomic-optimizer-strategy", +# 279| cl::desc("Select DPP or Iterative strategy for scan"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:288: constructor_uses_global_object: The constructor of global object "EnableSIModeRegisterPass" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSIModeRegisterPass" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 286| +# 287| // Enable Mode register optimization +# 288|-> static cl::opt EnableSIModeRegisterPass( +# 289| "amdgpu-mode-register", +# 290| cl::desc("Enable mode register pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:296: constructor_uses_global_object: The constructor of global object "EnableInsertDelayAlu" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableInsertDelayAlu" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 294| // Enable GFX11+ s_delay_alu insertion +# 295| static cl::opt +# 296|-> EnableInsertDelayAlu("amdgpu-enable-delay-alu", +# 297| cl::desc("Enable s_delay_alu insertion"), +# 298| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:302: constructor_uses_global_object: The constructor of global object "EnableVOPD" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableVOPD" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 300| // Enable GFX11+ VOPD +# 301| static cl::opt +# 302|-> EnableVOPD("amdgpu-enable-vopd", +# 303| cl::desc("Enable VOPD, dual issue of VALU in wave32"), +# 304| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:308: constructor_uses_global_object: The constructor of global object "EnableDCEInRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDCEInRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 306| // Option is used in lit tests to prevent deadcoding of patterns inspected. +# 307| static cl::opt +# 308|-> EnableDCEInRA("amdgpu-dce-in-ra", +# 309| cl::init(true), cl::Hidden, +# 310| cl::desc("Enable machine DCE inside regalloc")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:312: constructor_uses_global_object: The constructor of global object "EnableSetWavePriority" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSetWavePriority" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 310| cl::desc("Enable machine DCE inside regalloc")); +# 311| +# 312|-> static cl::opt EnableSetWavePriority("amdgpu-set-wave-priority", +# 313| cl::desc("Adjust wave priority"), +# 314| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:316: constructor_uses_global_object: The constructor of global object "EnableScalarIRPasses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableScalarIRPasses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 314| cl::init(false), cl::Hidden); +# 315| +# 316|-> static cl::opt EnableScalarIRPasses( +# 317| "amdgpu-scalar-ir-passes", +# 318| cl::desc("Enable scalar IR passes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:322: constructor_uses_global_object: The constructor of global object "EnableStructurizerWorkarounds" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableStructurizerWorkarounds" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 320| cl::Hidden); +# 321| +# 322|-> static cl::opt EnableStructurizerWorkarounds( +# 323| "amdgpu-enable-structurizer-workarounds", +# 324| cl::desc("Enable workarounds for the StructurizeCFG pass"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:327: constructor_uses_global_object: The constructor of global object "EnableLowerModuleLDS" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLowerModuleLDS" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 325| cl::Hidden); +# 326| +# 327|-> static cl::opt EnableLowerModuleLDS( +# 328| "amdgpu-enable-lower-module-lds", cl::desc("Enable lower module lds pass"), +# 329| cl::location(AMDGPUTargetMachine::EnableLowerModuleLDS), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:332: constructor_uses_global_object: The constructor of global object "EnablePreRAOptimizations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePreRAOptimizations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 330| cl::Hidden); +# 331| +# 332|-> static cl::opt EnablePreRAOptimizations( +# 333| "amdgpu-enable-pre-ra-optimizations", +# 334| cl::desc("Enable Pre-RA optimizations pass"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:337: constructor_uses_global_object: The constructor of global object "EnablePromoteKernelArguments" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePromoteKernelArguments" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 335| cl::Hidden); +# 336| +# 337|-> static cl::opt EnablePromoteKernelArguments( +# 338| "amdgpu-enable-promote-kernel-arguments", +# 339| cl::desc("Enable promotion of flat kernel pointer arguments to global"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:342: constructor_uses_global_object: The constructor of global object "EnableMaxIlpSchedStrategy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMaxIlpSchedStrategy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 340| cl::Hidden, cl::init(true)); +# 341| +# 342|-> static cl::opt EnableMaxIlpSchedStrategy( +# 343| "amdgpu-enable-max-ilp-scheduling-strategy", +# 344| cl::desc("Enable scheduling strategy to maximize ILP for a single wave."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:347: constructor_uses_global_object: The constructor of global object "EnableRewritePartialRegUses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRewritePartialRegUses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 345| cl::Hidden, cl::init(false)); +# 346| +# 347|-> static cl::opt EnableRewritePartialRegUses( +# 348| "amdgpu-enable-rewrite-partial-reg-uses", +# 349| cl::desc("Enable rewrite partial reg uses pass"), cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:35: constructor_uses_global_object: The constructor of global object "UnrollThresholdPrivate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdPrivate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| #define DEBUG_TYPE "AMDGPUtti" +# 34| +# 35|-> static cl::opt UnrollThresholdPrivate( +# 36| "amdgpu-unroll-threshold-private", +# 37| cl::desc("Unroll threshold for AMDGPU if private memory used in a loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:40: constructor_uses_global_object: The constructor of global object "UnrollThresholdLocal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdLocal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| cl::init(2700), cl::Hidden); +# 39| +# 40|-> static cl::opt UnrollThresholdLocal( +# 41| "amdgpu-unroll-threshold-local", +# 42| cl::desc("Unroll threshold for AMDGPU if local memory used in a loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:45: constructor_uses_global_object: The constructor of global object "UnrollThresholdIf" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdIf" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::init(1000), cl::Hidden); +# 44| +# 45|-> static cl::opt UnrollThresholdIf( +# 46| "amdgpu-unroll-threshold-if", +# 47| cl::desc("Unroll threshold increment for AMDGPU for each if statement inside loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:50: constructor_uses_global_object: The constructor of global object "UnrollRuntimeLocal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollRuntimeLocal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::init(200), cl::Hidden); +# 49| +# 50|-> static cl::opt UnrollRuntimeLocal( +# 51| "amdgpu-unroll-runtime-local", +# 52| cl::desc("Allow runtime unroll for AMDGPU if local memory used in a loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:55: constructor_uses_global_object: The constructor of global object "UnrollMaxBlockToAnalyze" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollMaxBlockToAnalyze" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| cl::init(true), cl::Hidden); +# 54| +# 55|-> static cl::opt UnrollMaxBlockToAnalyze( +# 56| "amdgpu-unroll-max-block-to-analyze", +# 57| cl::desc("Inner loop block size threshold to analyze in unroll for AMDGPU"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:60: constructor_uses_global_object: The constructor of global object "ArgAllocaCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgAllocaCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(32), cl::Hidden); +# 59| +# 60|-> static cl::opt ArgAllocaCost("amdgpu-inline-arg-alloca-cost", +# 61| cl::Hidden, cl::init(4000), +# 62| cl::desc("Cost of alloca argument")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:68: constructor_uses_global_object: The constructor of global object "ArgAllocaCutoff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgAllocaCutoff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| // heuristic. +# 67| static cl::opt +# 68|-> ArgAllocaCutoff("amdgpu-inline-arg-alloca-cutoff", cl::Hidden, +# 69| cl::init(256), +# 70| cl::desc("Maximum alloca size to use for inline cost")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:73: constructor_uses_global_object: The constructor of global object "InlineMaxBB" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineMaxBB" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| // Inliner constraint to achieve reasonable compilation time. +# 73|-> static cl::opt InlineMaxBB( +# 74| "amdgpu-inline-max-bb", cl::Hidden, cl::init(1100), +# 75| cl::desc("Maximum number of BBs allowed in a function after inlining" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNHazardRecognizer.cpp:42: constructor_uses_global_object: The constructor of global object "MFMAPaddingRatio" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MFMAPaddingRatio" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> MFMAPaddingRatio("amdgpu-mfma-padding-ratio", cl::init(0), cl::Hidden, +# 43| cl::desc("Fill a percentage of the latency between " +# 44| "neighboring MFMA with s_nops.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNPreRALongBranchReg.cpp:30: constructor_uses_global_object: The constructor of global object "::LongBranchFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::LongBranchFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| namespace { +# 29| +# 30|-> static cl::opt LongBranchFactor( +# 31| "amdgpu-long-branch-factor", cl::init(1.0), cl::Hidden, +# 32| cl::desc("Factor to apply to what qualifies as a long branch " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNRegPressure.cpp:192: var_decl: Declaring variable "Res". +llvm-17.0.6.src/lib/Target/AMDGPU/GCNRegPressure.cpp:209: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 207| Res.push_back(RegisterMaskPair(Reg, UsedMask)); +# 208| } +# 209|-> return Res; +# 210| } +# 211| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNSchedStrategy.cpp:36: constructor_uses_global_object: The constructor of global object "DisableUnclusterHighRP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableUnclusterHighRP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> DisableUnclusterHighRP("amdgpu-disable-unclustred-high-rp-reschedule", +# 37| cl::Hidden, +# 38| cl::desc("Disable unclustred high register pressure " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNSchedStrategy.cpp:41: constructor_uses_global_object: The constructor of global object "ScheduleMetricBias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ScheduleMetricBias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| "reduction scheduling stage."), +# 40| cl::init(false)); +# 41|-> static cl::opt ScheduleMetricBias( +# 42| "amdgpu-schedule-metric-bias", cl::Hidden, +# 43| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNSchedStrategy.cpp:49: constructor_uses_global_object: The constructor of global object "RelaxedOcc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RelaxedOcc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> RelaxedOcc("amdgpu-schedule-relaxed-occupancy", cl::Hidden, +# 50| cl::desc("Relax occupancy targets for kernels which are memory " +# 51| "bound (amdgpu-membound-threshold), or " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp:27: constructor_uses_global_object: The constructor of global object "Keep16BitSuffixes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Keep16BitSuffixes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| using namespace llvm::AMDGPU; +# 26| +# 27|-> static cl::opt Keep16BitSuffixes( +# 28| "amdgpu-keep-16-bit-reg-suffixes", +# 29| cl::desc("Keep .l and .h suffixes in asm for debugging purposes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/R600TargetMachine.cpp:26: constructor_uses_global_object: The constructor of global object "EnableR600StructurizeCFG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableR600StructurizeCFG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> EnableR600StructurizeCFG("r600-ir-structurize", +# 27| cl::desc("Use StructurizeCFG IR pass"), +# 28| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/R600TargetMachine.cpp:30: constructor_uses_global_object: The constructor of global object "EnableR600IfConvert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableR600IfConvert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| cl::init(true)); +# 29| +# 30|-> static cl::opt EnableR600IfConvert("r600-if-convert", +# 31| cl::desc("Use if conversion pass"), +# 32| cl::ReallyHidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/R600TargetMachine.cpp:34: constructor_uses_global_object: The constructor of global object "EnableAMDGPUFunctionCallsOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAMDGPUFunctionCallsOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| cl::ReallyHidden, cl::init(true)); +# 33| +# 34|-> static cl::opt EnableAMDGPUFunctionCallsOpt( +# 35| "amdgpu-function-calls", cl::desc("Enable AMDGPU function call support"), +# 36| cl::location(AMDGPUTargetMachine::EnableFunctionCalls), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIFixSGPRCopies.cpp:79: constructor_uses_global_object: The constructor of global object "EnableM0Merge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableM0Merge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| #define DEBUG_TYPE "si-fix-sgpr-copies" +# 78| +# 79|-> static cl::opt EnableM0Merge( +# 80| "amdgpu-enable-merge-m0", +# 81| cl::desc("Merge and hoist M0 initializations"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIFormMemoryClauses.cpp:29: constructor_uses_global_object: The constructor of global object "MaxClause" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxClause" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| // and stall. They can stall even earlier if there are outstanding counters. +# 28| static cl::opt +# 29|-> MaxClause("amdgpu-max-memory-clause", cl::Hidden, cl::init(15), +# 30| cl::desc("Maximum length of a memory clause, instructions")); +# 31| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIFrameLowering.cpp:23: constructor_uses_global_object: The constructor of global object "EnableSpillVGPRToAGPR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSpillVGPRToAGPR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| #define DEBUG_TYPE "frame-info" +# 22| +# 23|-> static cl::opt EnableSpillVGPRToAGPR( +# 24| "amdgpu-spill-vgpr-to-agpr", +# 25| cl::desc("Enable spilling VGPRs to AGPRs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:51: constructor_uses_global_object: The constructor of global object "DisableLoopAlignment" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLoopAlignment" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| STATISTIC(NumTailCalls, "Number of tail calls"); +# 50| +# 51|-> static cl::opt DisableLoopAlignment( +# 52| "amdgpu-disable-loop-alignment", +# 53| cl::desc("Do not align and prefetch loops"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:56: constructor_uses_global_object: The constructor of global object "UseDivergentRegisterIndexing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseDivergentRegisterIndexing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| cl::init(false)); +# 55| +# 56|-> static cl::opt UseDivergentRegisterIndexing( +# 57| "amdgpu-use-divergent-register-indexing", +# 58| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:50: constructor_uses_global_object: The constructor of global object "ForceEmitZeroFlag" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceEmitZeroFlag" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| "Force emit s_waitcnt vmcnt(0) instrs"); +# 49| +# 50|-> static cl::opt ForceEmitZeroFlag( +# 51| "amdgpu-waitcnt-forcezero", +# 52| cl::desc("Force all waitcnt instrs to be emitted as s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)"), + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:694: cond_at_most: Checking "Interval.first >= NUM_ALL_VGPRS" implies that "Interval.first" may be up to 512 on the false branch. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:698: assignment: Assigning: "RegNo" = "Interval.first". The value of "RegNo" may now be up to 512. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:698: incr: Incrementing "RegNo". The value of "RegNo" may now be up to 513. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:699: overrun-local: Overrunning array "this->VgprVmemTypes" of 513 bytes at byte offset 513 using index "RegNo" (which evaluates to 513). +# 697| VmemType V = getVmemType(Inst); +# 698| for (int RegNo = Interval.first; RegNo < Interval.second; ++RegNo) +# 699|-> VgprVmemTypes[RegNo] |= 1 << V; +# 700| } +# 701| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInstrInfo.cpp:55: constructor_uses_global_object: The constructor of global object "BranchOffsetBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BranchOffsetBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| // long branches. +# 54| static cl::opt +# 55|-> BranchOffsetBits("amdgpu-s-branch-bits", cl::ReallyHidden, cl::init(16), +# 56| cl::desc("Restrict range of branch instructions (DEBUG)")); +# 57| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInstrInfo.cpp:58: constructor_uses_global_object: The constructor of global object "Fix16BitCopies" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Fix16BitCopies" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::desc("Restrict range of branch instructions (DEBUG)")); +# 57| +# 58|-> static cl::opt Fix16BitCopies( +# 59| "amdgpu-fix-16-bit-physreg-copies", +# 60| cl::desc("Fix copies between 32 and 16 bit registers by extending to 32 bit"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SILowerControlFlow.cpp:66: constructor_uses_global_object: The constructor of global object "RemoveRedundantEndcf" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemoveRedundantEndcf" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| static cl::opt +# 66|-> RemoveRedundantEndcf("amdgpu-remove-redundant-endcf", +# 67| cl::init(true), cl::ReallyHidden); +# 68| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIMemoryLegalizer.cpp:33: constructor_uses_global_object: The constructor of global object "AmdgcnSkipCacheInvalidations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AmdgcnSkipCacheInvalidations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| #define PASS_NAME "SI Memory Legalizer" +# 32| +# 33|-> static cl::opt AmdgcnSkipCacheInvalidations( +# 34| "amdgcn-skip-cache-invalidations", cl::init(false), cl::Hidden, +# 35| cl::desc("Use this to skip inserting cache invalidating instructions.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIPreEmitPeephole.cpp:25: constructor_uses_global_object: The constructor of global object "SkipThresholdFlag" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SkipThresholdFlag" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| static unsigned SkipThreshold; +# 24| +# 25|-> static cl::opt SkipThresholdFlag( +# 26| "amdgpu-skip-threshold", cl::Hidden, +# 27| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIRegisterInfo.cpp:32: constructor_uses_global_object: The constructor of global object "EnableSpillSGPRToVGPR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSpillSGPRToVGPR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| #include "AMDGPUGenRegisterInfo.inc" +# 31| +# 32|-> static cl::opt EnableSpillSGPRToVGPR( +# 33| "amdgpu-spill-sgpr-to-vgpr", +# 34| cl::desc("Enable spilling SGPRs to VGPRs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp:36: constructor_uses_global_object: The constructor of global object "AmdhsaCodeObjectVersion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AmdhsaCodeObjectVersion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static llvm::cl::opt +# 36|-> AmdhsaCodeObjectVersion("amdhsa-code-object-version", llvm::cl::Hidden, +# 37| llvm::cl::desc("AMDHSA Code Object Version"), +# 38| llvm::cl::init(4)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:80: constructor_uses_global_object: The constructor of global object "EnableARM3Addr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableARM3Addr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| static cl::opt +# 80|-> EnableARM3Addr("enable-arm-3-addr-conv", cl::Hidden, +# 81| cl::desc("Enable ARM 2-addr to 3-addr conv")); +# 82| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5879: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5879: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:6067: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:6078: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 6076| // check if the range contains a call. These require a save + restore of +# 6077| // the link register. +# 6078|-> if (std::any_of(FirstCand.front(), FirstCand.back(), +# 6079| [](const MachineInstr &MI) { return MI.isCall(); })) +# 6080| NumBytesToCreateFrame += Costs.SaveRestoreLROnStack; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMConstantIslandPass.cpp:78: constructor_uses_global_object: The constructor of global object "AdjustJumpTableBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AdjustJumpTableBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| +# 77| static cl::opt +# 78|-> AdjustJumpTableBlocks("arm-adjust-jump-tables", cl::Hidden, cl::init(true), +# 79| cl::desc("Adjust basic block layout to better use TB[BH]")); +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMConstantIslandPass.cpp:82: constructor_uses_global_object: The constructor of global object "CPMaxIteration" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CPMaxIteration" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| +# 81| static cl::opt +# 82|-> CPMaxIteration("arm-constant-island-max-iteration", cl::Hidden, cl::init(30), +# 83| cl::desc("The max number of iteration for converge")); +# 84| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMConstantIslandPass.cpp:85: constructor_uses_global_object: The constructor of global object "SynthesizeThumb1TBB" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SynthesizeThumb1TBB" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("The max number of iteration for converge")); +# 84| +# 85|-> static cl::opt SynthesizeThumb1TBB( +# 86| "arm-synthesize-thumb-1-tbb", cl::Hidden, cl::init(true), +# 87| cl::desc("Use compressed jump tables in Thumb-1 by synthesizing an " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMExpandPseudoInsts.cpp:35: constructor_uses_global_object: The constructor of global object "VerifyARMPseudo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyARMPseudo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> VerifyARMPseudo("verify-arm-pseudo-expand", cl::Hidden, +# 36| cl::desc("Verify machine code after expanding ARM pseudos")); +# 37| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1691: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1704: overrun-call: Overrunning callee's array of size 644 by passing argument "LC" (which evaluates to 644) in call to "ARMEmitLibcall". +# 1702| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SDIV!"); +# 1703| +# 1704|-> return ARMEmitLibcall(I, LC); +# 1705| } +# 1706| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1720: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1733: overrun-call: Overrunning callee's array of size 644 by passing argument "LC" (which evaluates to 644) in call to "ARMEmitLibcall". +# 1731| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SREM!"); +# 1732| +# 1733|-> return ARMEmitLibcall(I, LC); +# 1734| } +# 1735| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMFrameLowering.cpp:169: constructor_uses_global_object: The constructor of global object "SpillAlignedNEONRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SpillAlignedNEONRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 167| +# 168| static cl::opt +# 169|-> SpillAlignedNEONRegs("align-neon-spills", cl::Hidden, cl::init(true), +# 170| cl::desc("Align ARM NEON spills in prolog and epilog")); +# 171| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMHazardRecognizer.cpp:23: constructor_uses_global_object: The constructor of global object "DataBankMask" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DataBankMask" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| using namespace llvm; +# 22| +# 23|-> static cl::opt DataBankMask("arm-data-bank-mask", cl::init(-1), +# 24| cl::Hidden); +# 25| static cl::opt AssumeITCMConflict("arm-assume-itcm-bankconflict", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMHazardRecognizer.cpp:25: constructor_uses_global_object: The constructor of global object "AssumeITCMConflict" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumeITCMConflict" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| static cl::opt DataBankMask("arm-data-bank-mask", cl::init(-1), +# 24| cl::Hidden); +# 25|-> static cl::opt AssumeITCMConflict("arm-assume-itcm-bankconflict", +# 26| cl::init(false), cl::Hidden); +# 27| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:46: constructor_uses_global_object: The constructor of global object "DisableShifterOp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableShifterOp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| +# 45| static cl::opt +# 46|-> DisableShifterOp("disable-shifter-op", cl::Hidden, +# 47| cl::desc("Disable isel of shifter-op"), +# 48| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:131: constructor_uses_global_object: The constructor of global object "ARMInterworking" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ARMInterworking" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 129| +# 130| static cl::opt +# 131|-> ARMInterworking("arm-interworking", cl::Hidden, +# 132| cl::desc("Enable / disable ARM interworking (for debugging only)"), +# 133| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:135: constructor_uses_global_object: The constructor of global object "EnableConstpoolPromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableConstpoolPromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::init(true)); +# 134| +# 135|-> static cl::opt EnableConstpoolPromotion( +# 136| "arm-promote-constant", cl::Hidden, +# 137| cl::desc("Enable / disable promotion of unnamed_addr constants into " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:140: constructor_uses_global_object: The constructor of global object "ConstpoolPromotionMaxSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConstpoolPromotionMaxSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| "constant pools"), +# 139| cl::init(false)); // FIXME: set to true by default once PR32780 is fixed +# 140|-> static cl::opt ConstpoolPromotionMaxSize( +# 141| "arm-promote-constant-max-size", cl::Hidden, +# 142| cl::desc("Maximum size of constant to promote into a constant pool"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:144: constructor_uses_global_object: The constructor of global object "ConstpoolPromotionMaxTotal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConstpoolPromotionMaxTotal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 142| cl::desc("Maximum size of constant to promote into a constant pool"), +# 143| cl::init(64)); +# 144|-> static cl::opt ConstpoolPromotionMaxTotal( +# 145| "arm-promote-constant-max-total", cl::Hidden, +# 146| cl::desc("Maximum size of ALL constants to promote into a constant pool"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:150: constructor_uses_global_object: The constructor of global object "MVEMaxSupportedInterleaveFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MVEMaxSupportedInterleaveFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 148| +# 149| cl::opt +# 150|-> MVEMaxSupportedInterleaveFactor("mve-max-interleave-factor", cl::Hidden, +# 151| cl::desc("Maximum interleave factor for MVE VLDn to generate."), +# 152| cl::init(2)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:94: constructor_uses_global_object: The constructor of global object "AssumeMisalignedLoadStores" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumeMisalignedLoadStores" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| /// \see mayCombineMisaligned() +# 93| static cl::opt +# 94|-> AssumeMisalignedLoadStores("arm-assume-misaligned-load-store", cl::Hidden, +# 95| cl::init(false), cl::desc("Be more conservative in ARM load/store opt")); +# 96| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:2196: constructor_uses_global_object: The constructor of global object "InstReorderLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InstReorderLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 2194| // Limit the number of instructions to be rescheduled. +# 2195| // FIXME: tune this limit, and/or come up with some better heuristics. +# 2196|-> static cl::opt InstReorderLimit("arm-prera-ldst-opt-reorder-limit", +# 2197| cl::init(8), cl::Hidden); +# 2198| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:80: constructor_uses_global_object: The constructor of global object "DisableTailPredication" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTailPredication" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| static cl::opt +# 80|-> DisableTailPredication("arm-loloops-disable-tailpred", cl::Hidden, +# 81| cl::desc("Disable tail-predication in the ARM LowOverheadLoop pass"), +# 82| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:85: constructor_uses_global_object: The constructor of global object "DisableOmitDLS" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableOmitDLS" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| +# 84| static cl::opt +# 85|-> DisableOmitDLS("arm-disable-omit-dls", cl::Hidden, +# 86| cl::desc("Disable omitting 'dls lr, lr' instructions"), +# 87| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMParallelDSP.cpp:45: constructor_uses_global_object: The constructor of global object "DisableParallelDSP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableParallelDSP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| static cl::opt +# 45|-> DisableParallelDSP("disable-arm-parallel-dsp", cl::Hidden, cl::init(false), +# 46| cl::desc("Disable the ARM Parallel DSP pass")); +# 47| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMParallelDSP.cpp:49: constructor_uses_global_object: The constructor of global object "NumLoadLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NumLoadLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> NumLoadLimit("arm-parallel-dsp-load-limit", cl::Hidden, cl::init(16), +# 50| cl::desc("Limit the number of loads analysed")); +# 51| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSelectionDAGInfo.cpp:22: constructor_uses_global_object: The constructor of global object "EnableMemtransferTPLoop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemtransferTPLoop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| #define DEBUG_TYPE "arm-selectiondag-info" +# 21| +# 22|-> cl::opt EnableMemtransferTPLoop( +# 23| "arm-memtransfer-tploop", cl::Hidden, +# 24| cl::desc("Control conversion of memcpy to " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:50: constructor_uses_global_object: The constructor of global object "UseFusedMulOps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseFusedMulOps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> UseFusedMulOps("arm-use-mulops", +# 51| cl::init(true), cl::Hidden); +# 52| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:59: constructor_uses_global_object: The constructor of global object "IT" itself makes use of global object "llvm::cl::AllSubCommands" defined in another compilation unit. The order of construction is unspecified, so "IT" might be created before "llvm::cl::AllSubCommands" is available. +# 57| +# 58| static cl::opt +# 59|-> IT(cl::desc("IT block support"), cl::Hidden, cl::init(DefaultIT), +# 60| cl::values(clEnumValN(DefaultIT, "arm-default-it", +# 61| "Generate any type of IT block"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:68: constructor_uses_global_object: The constructor of global object "ForceFastISel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceFastISel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| /// currently supported (for testing only). +# 67| static cl::opt +# 68|-> ForceFastISel("arm-force-fast-isel", +# 69| cl::init(false), cl::Hidden); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:71: constructor_uses_global_object: The constructor of global object "EnableSubRegLiveness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSubRegLiveness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::init(false), cl::Hidden); +# 70| +# 71|-> static cl::opt EnableSubRegLiveness("arm-enable-subreg-liveness", +# 72| cl::init(false), cl::Hidden); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:62: constructor_uses_global_object: The constructor of global object "DisableA15SDOptimization" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableA15SDOptimization" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> DisableA15SDOptimization("disable-a15-sd-optimization", cl::Hidden, +# 63| cl::desc("Inhibit optimization of S->D register accesses on A15"), +# 64| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:67: constructor_uses_global_object: The constructor of global object "EnableAtomicTidy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAtomicTidy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl::opt +# 67|-> EnableAtomicTidy("arm-atomic-cfg-tidy", cl::Hidden, +# 68| cl::desc("Run SimplifyCFG after expanding atomic operations" +# 69| " to make use of cmpxchg flow-based information"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:73: constructor_uses_global_object: The constructor of global object "EnableARMLoadStoreOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableARMLoadStoreOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| static cl::opt +# 73|-> EnableARMLoadStoreOpt("arm-load-store-opt", cl::Hidden, +# 74| cl::desc("Enable ARM load/store optimization pass"), +# 75| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:79: constructor_uses_global_object: The constructor of global object "EnableGlobalMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| // FIXME: Unify control over GlobalMerge. +# 78| static cl::opt +# 79|-> EnableGlobalMerge("arm-global-merge", cl::Hidden, +# 80| cl::desc("Enable the global merge pass")); +# 81| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetTransformInfo.cpp:47: constructor_uses_global_object: The constructor of global object "EnableMaskedLoadStores" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMaskedLoadStores" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| #define DEBUG_TYPE "armtti" +# 46| +# 47|-> static cl::opt EnableMaskedLoadStores( +# 48| "enable-arm-maskedldst", cl::Hidden, cl::init(true), +# 49| cl::desc("Enable the generation of masked loads and stores")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetTransformInfo.cpp:51: constructor_uses_global_object: The constructor of global object "DisableLowOverheadLoops" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLowOverheadLoops" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| cl::desc("Enable the generation of masked loads and stores")); +# 50| +# 51|-> static cl::opt DisableLowOverheadLoops( +# 52| "disable-arm-loloops", cl::Hidden, cl::init(false), +# 53| cl::desc("Disable the generation of low-overhead loops")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetTransformInfo.cpp:56: constructor_uses_global_object: The constructor of global object "AllowWLSLoops" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowWLSLoops" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| static cl::opt +# 56|-> AllowWLSLoops("allow-arm-wlsloops", cl::Hidden, cl::init(true), +# 57| cl::desc("Enable the generation of WLS loops")); +# 58| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:85: constructor_uses_global_object: The constructor of global object "::ImplicitItMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ImplicitItMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| enum class ImplicitItModeTy { Always, Never, ARMOnly, ThumbOnly }; +# 84| +# 85|-> static cl::opt ImplicitItMode( +# 86| "arm-implicit-it", cl::init(ImplicitItModeTy::ARMOnly), +# 87| cl::desc("Allow conditional instructions outdside of an IT block"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:97: constructor_uses_global_object: The constructor of global object "::AddBuildAttributes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::AddBuildAttributes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| "Warn in ARM, emit implicit ITs in Thumb"))); +# 96| +# 97|-> static cl::opt AddBuildAttributes("arm-add-build-attributes", +# 98| cl::init(false)); +# 99| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:191: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:194: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:199: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 984 bytes. +# 197| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 198| "Invalid kind!"); +# 199|-> return (Endian == support::little ? InfosLE +# 200| : InfosBE)[Kind - FirstTargetFixupKind]; +# 201| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:1091: var_decl: Declaring variable "FullSizeBytes" without initializer. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:1102: uninit_use: Using uninitialized value "FullSizeBytes". +# 1100| // bitfields above. +# 1101| for (unsigned i = 0; i != NumBytes; ++i) { +# 1102|-> unsigned Idx = Endian == support::little ? i : (FullSizeBytes - 1 - i); +# 1103| Data[Offset + Idx] |= uint8_t((Value >> (i * 8)) & 0xff); +# 1104| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MLxExpansionPass.cpp:32: constructor_uses_global_object: The constructor of global object "ForceExapnd" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceExapnd" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| +# 31| static cl::opt +# 32|-> ForceExapnd("expand-all-fp-mlx", cl::init(false), cl::Hidden); +# 33| static cl::opt +# 34| ExpandLimit("expand-limit", cl::init(~0U), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MLxExpansionPass.cpp:34: constructor_uses_global_object: The constructor of global object "ExpandLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| ForceExapnd("expand-all-fp-mlx", cl::init(false), cl::Hidden); +# 33| static cl::opt +# 34|-> ExpandLimit("expand-limit", cl::init(~0U), cl::Hidden); +# 35| +# 36| STATISTIC(NumExpand, "Number of fp MLA / MLS instructions expanded"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVEGatherScatterLowering.cpp:50: constructor_uses_global_object: The constructor of global object "EnableMaskedGatherScatters" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMaskedGatherScatters" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| #define DEBUG_TYPE "arm-mve-gather-scatter-lowering" +# 49| +# 50|-> cl::opt EnableMaskedGatherScatters( +# 51| "enable-arm-maskedgatscat", cl::Hidden, cl::init(true), +# 52| cl::desc("Enable the generation of masked gathers and scatters")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVELaneInterleavingPass.cpp:79: constructor_uses_global_object: The constructor of global object "EnableInterleave" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableInterleave" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| #define DEBUG_TYPE "mve-laneinterleave" +# 78| +# 79|-> cl::opt EnableInterleave( +# 80| "enable-mve-interleave", cl::Hidden, cl::init(true), +# 81| cl::desc("Enable interleave MVE vector operation lowering")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:39: constructor_uses_global_object: The constructor of global object "MergeEndDec" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MergeEndDec" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> MergeEndDec("arm-enable-merge-loopenddec", cl::Hidden, +# 40| cl::desc("Enable merging Loop End and Dec instructions."), +# 41| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:44: constructor_uses_global_object: The constructor of global object "SetLRPredicate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SetLRPredicate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| static cl::opt +# 44|-> SetLRPredicate("arm-set-lr-predicate", cl::Hidden, +# 45| cl::desc("Enable setting lr as a predicate in tail predication regions."), +# 46| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVETailPredication.cpp:60: constructor_uses_global_object: The constructor of global object "EnableTailPredication" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTailPredication" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| #define DESC "Transform predicated vector loops to use MVE tail predication" +# 59| +# 60|-> cl::opt EnableTailPredication( +# 61| "tail-predication", cl::desc("MVE tail-predication pass options"), +# 62| cl::init(TailPredication::Enabled), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:39: constructor_uses_global_object: The constructor of global object "OldT2IfCvt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OldT2IfCvt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> OldT2IfCvt("old-thumb2-ifcvt", cl::Hidden, +# 40| cl::desc("Use old-style Thumb2 if-conversion heuristics"), +# 41| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:44: constructor_uses_global_object: The constructor of global object "PreferNoCSEL" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreferNoCSEL" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| static cl::opt +# 44|-> PreferNoCSEL("prefer-no-csel", cl::Hidden, +# 45| cl::desc("Prefer predicated Move to CSEL"), +# 46| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2SizeReduction.cpp:54: constructor_uses_global_object: The constructor of global object "ReduceLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReduceLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| STATISTIC(NumLdSts, "Number of 32-bit load / store reduced to 16-bit ones"); +# 53| +# 54|-> static cl::opt ReduceLimit("t2-reduce-limit", +# 55| cl::init(-1), cl::Hidden); +# 56| static cl::opt ReduceLimit2Addr("t2-reduce-limit2", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2SizeReduction.cpp:56: constructor_uses_global_object: The constructor of global object "ReduceLimit2Addr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReduceLimit2Addr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| static cl::opt ReduceLimit("t2-reduce-limit", +# 55| cl::init(-1), cl::Hidden); +# 56|-> static cl::opt ReduceLimit2Addr("t2-reduce-limit2", +# 57| cl::init(-1), cl::Hidden); +# 58| static cl::opt ReduceLimitLdSt("t2-reduce-limit3", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2SizeReduction.cpp:58: constructor_uses_global_object: The constructor of global object "ReduceLimitLdSt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReduceLimitLdSt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| static cl::opt ReduceLimit2Addr("t2-reduce-limit2", +# 57| cl::init(-1), cl::Hidden); +# 58|-> static cl::opt ReduceLimitLdSt("t2-reduce-limit3", +# 59| cl::init(-1), cl::Hidden); +# 60| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFAdjustOpt.cpp:33: constructor_uses_global_object: The constructor of global object "DisableBPFserializeICMP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBPFserializeICMP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| +# 32| static cl::opt +# 33|-> DisableBPFserializeICMP("bpf-disable-serialize-icmp", cl::Hidden, +# 34| cl::desc("BPF: Disable Serializing ICMP insns."), +# 35| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFAdjustOpt.cpp:37: constructor_uses_global_object: The constructor of global object "DisableBPFavoidSpeculation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBPFavoidSpeculation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| cl::init(false)); +# 36| +# 37|-> static cl::opt DisableBPFavoidSpeculation( +# 38| "bpf-disable-avoid-speculation", cl::Hidden, +# 39| cl::desc("BPF: Disable Avoiding Speculative Code Motion."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFISelLowering.cpp:34: constructor_uses_global_object: The constructor of global object "BPFExpandMemcpyInOrder" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BPFExpandMemcpyInOrder" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| #define DEBUG_TYPE "bpf-lower" +# 33| +# 34|-> static cl::opt BPFExpandMemcpyInOrder("bpf-expand-memcpy-in-order", +# 35| cl::Hidden, cl::init(false), +# 36| cl::desc("Expand memcpy into load/store pairs in order")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFRegisterInfo.cpp:31: constructor_uses_global_object: The constructor of global object "BPFStackSizeOption" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BPFStackSizeOption" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt +# 31|-> BPFStackSizeOption("bpf-stack-size", +# 32| cl::desc("Specify the BPF stack size limit"), +# 33| cl::init(512)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFTargetMachine.cpp:33: constructor_uses_global_object: The constructor of global object "DisableMIPeephole" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMIPeephole" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| +# 32| static cl:: +# 33|-> opt DisableMIPeephole("disable-bpf-peephole", cl::Hidden, +# 34| cl::desc("Disable machine peepholes for BPF")); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp:22: constructor_uses_global_object: The constructor of global object "EmitJalrReloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmitJalrReloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| // and libLLVMMipsCodeGen +# 21| cl::opt +# 22|-> EmitJalrReloc("mips-jalr-reloc", cl::Hidden, +# 23| cl::desc("MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"), +# 24| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp:34: constructor_uses_global_object: The constructor of global object "::RoundSectionSizes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::RoundSectionSizes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| +# 33| namespace { +# 34|-> static cl::opt RoundSectionSizes( +# 35| "mips-round-section-sizes", cl::init(false), +# 36| cl::desc("Round section sizes up to the section alignment"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/Mips16ISelLowering.cpp:26: constructor_uses_global_object: The constructor of global object "DontExpandCondPseudos16" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DontExpandCondPseudos16" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| #define DEBUG_TYPE "mips-lower" +# 25| +# 26|-> static cl::opt DontExpandCondPseudos16( +# 27| "mips16-dont-expand-cond-pseudo", +# 28| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsBranchExpansion.cpp:114: constructor_uses_global_object: The constructor of global object "SkipLongBranch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SkipLongBranch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| +# 113| static cl::opt +# 114|-> SkipLongBranch("skip-mips-long-branch", cl::init(false), +# 115| cl::desc("MIPS: Skip branch expansion pass."), cl::Hidden); +# 116| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsBranchExpansion.cpp:118: constructor_uses_global_object: The constructor of global object "ForceLongBranch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceLongBranch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| +# 117| static cl::opt +# 118|-> ForceLongBranch("force-mips-long-branch", cl::init(false), +# 119| cl::desc("MIPS: Expand all branches to long format."), +# 120| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsConstantIslandPass.cpp:69: constructor_uses_global_object: The constructor of global object "AlignConstantIslands" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignConstantIslands" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| // FIXME: This option should be removed once it has received sufficient testing. +# 68| static cl::opt +# 69|-> AlignConstantIslands("mips-align-constant-islands", cl::Hidden, cl::init(true), +# 70| cl::desc("Align constant islands in code")); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsConstantIslandPass.cpp:74: constructor_uses_global_object: The constructor of global object "ConstantIslandsSmallOffset" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConstantIslandsSmallOffset" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| // Rather than do make check tests with huge amounts of code, we force +# 73| // the test to use this amount. +# 74|-> static cl::opt ConstantIslandsSmallOffset( +# 75| "mips-constant-islands-small-offset", +# 76| cl::init(0), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsConstantIslandPass.cpp:82: constructor_uses_global_object: The constructor of global object "NoLoadRelaxation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoLoadRelaxation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| // For testing purposes we tell it to not use relaxed load forms so that it +# 81| // will split blocks. +# 82|-> static cl::opt NoLoadRelaxation( +# 83| "mips-constant-islands-no-load-relaxation", +# 84| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:59: constructor_uses_global_object: The constructor of global object "DisableDelaySlotFiller" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDelaySlotFiller" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| " are not NOP."); +# 58| +# 59|-> static cl::opt DisableDelaySlotFiller( +# 60| "disable-mips-delay-filler", +# 61| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:65: constructor_uses_global_object: The constructor of global object "DisableForwardSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableForwardSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::Hidden); +# 64| +# 65|-> static cl::opt DisableForwardSearch( +# 66| "disable-mips-df-forward-search", +# 67| cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:71: constructor_uses_global_object: The constructor of global object "DisableSuccBBSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSuccBBSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::Hidden); +# 70| +# 71|-> static cl::opt DisableSuccBBSearch( +# 72| "disable-mips-df-succbb-search", +# 73| cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:77: constructor_uses_global_object: The constructor of global object "DisableBackwardSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBackwardSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::Hidden); +# 76| +# 77|-> static cl::opt DisableBackwardSearch( +# 78| "disable-mips-df-backward-search", +# 79| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:93: constructor_uses_global_object: The constructor of global object "MipsCompactBranchPolicy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MipsCompactBranchPolicy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| }; +# 92| +# 93|-> static cl::opt MipsCompactBranchPolicy( +# 94| "mips-compact-branches", cl::Optional, cl::init(CB_Optimal), +# 95| cl::desc("MIPS Specific: Compact branch policy."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsISelLowering.cpp:86: constructor_uses_global_object: The constructor of global object "NoZeroDivCheck" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoZeroDivCheck" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> NoZeroDivCheck("mno-check-zero-division", cl::Hidden, +# 87| cl::desc("MIPS: Don't trap on integer division by zero."), +# 88| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsMachineFunction.cpp:22: constructor_uses_global_object: The constructor of global object "FixGlobalBaseReg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixGlobalBaseReg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| +# 21| static cl::opt +# 22|-> FixGlobalBaseReg("mips-fix-global-base-reg", cl::Hidden, cl::init(true), +# 23| cl::desc("Always use $gp as the global base register.")); +# 24| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsOptimizePICCall.cpp:46: constructor_uses_global_object: The constructor of global object "LoadTargetFromGOT" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoadTargetFromGOT" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| #define DEBUG_TYPE "optimize-mips-pic-call" +# 45| +# 46|-> static cl::opt LoadTargetFromGOT("mips-load-target-from-got", +# 47| cl::init(true), +# 48| cl::desc("Load target address from GOT"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsOptimizePICCall.cpp:51: constructor_uses_global_object: The constructor of global object "EraseGPOpnd" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EraseGPOpnd" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| cl::Hidden); +# 50| +# 51|-> static cl::opt EraseGPOpnd("mips-erase-gp-opnd", +# 52| cl::init(true), cl::desc("Erase GP Operand"), +# 53| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsOs16.cpp:25: constructor_uses_global_object: The constructor of global object "Mips32FunctionMask[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips32FunctionMask[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| #define DEBUG_TYPE "mips-os16" +# 24| +# 25|-> static cl::opt Mips32FunctionMask( +# 26| "mips32-function-mask", +# 27| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSEISelLowering.cpp:56: constructor_uses_global_object: The constructor of global object "UseMipsTailCalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseMipsTailCalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| static cl::opt +# 56|-> UseMipsTailCalls("mips-tail-calls", cl::Hidden, +# 57| cl::desc("MIPS: permit tail calls."), cl::init(false)); +# 58| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSEISelLowering.cpp:59: constructor_uses_global_object: The constructor of global object "NoDPLoadStore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoDPLoadStore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| cl::desc("MIPS: permit tail calls."), cl::init(false)); +# 58| +# 59|-> static cl::opt NoDPLoadStore("mno-ldc1-sdc1", cl::init(false), +# 60| cl::desc("Expand double precision loads and " +# 61| "stores to their single precision " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:39: constructor_uses_global_object: The constructor of global object "Mixed16_32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mixed16_32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| // +# 38| static cl::opt +# 39|-> Mixed16_32("mips-mixed-16-32", cl::init(false), +# 40| cl::desc("Allow for a mixture of Mips16 " +# 41| "and Mips32 code in a single output file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:44: constructor_uses_global_object: The constructor of global object "Mips_Os16" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips_Os16" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| cl::Hidden); +# 43| +# 44|-> static cl::opt Mips_Os16("mips-os16", cl::init(false), +# 45| cl::desc("Compile all functions that don't use " +# 46| "floating point as Mips 16"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:49: constructor_uses_global_object: The constructor of global object "Mips16HardFloat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips16HardFloat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::Hidden); +# 48| +# 49|-> static cl::opt Mips16HardFloat("mips16-hard-float", cl::NotHidden, +# 50| cl::desc("Enable mips16 hard float."), +# 51| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:54: constructor_uses_global_object: The constructor of global object "Mips16ConstantIslands" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips16ConstantIslands" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::opt +# 54|-> Mips16ConstantIslands("mips16-constant-islands", cl::NotHidden, +# 55| cl::desc("Enable mips16 constant islands."), +# 56| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:59: constructor_uses_global_object: The constructor of global object "GPOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GPOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| +# 58| static cl::opt +# 59|-> GPOpt("mgpopt", cl::Hidden, +# 60| cl::desc("Enable gp-relative addressing of mips small data items")); +# 61| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetMachine.cpp:52: constructor_uses_global_object: The constructor of global object "EnableMulMulFix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMulMulFix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| +# 51| static cl::opt +# 52|-> EnableMulMulFix("mfix4300", cl::init(false), +# 53| cl::desc("Enable the VR4300 mulmul bug fix."), cl::Hidden); +# 54| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:24: constructor_uses_global_object: The constructor of global object "SSThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SSThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| +# 23| static cl::opt +# 24|-> SSThreshold("mips-ssection-threshold", cl::Hidden, +# 25| cl::desc("Small data and bss section threshold size (default=8)"), +# 26| cl::init(8)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:29: constructor_uses_global_object: The constructor of global object "LocalSData" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LocalSData" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| +# 28| static cl::opt +# 29|-> LocalSData("mlocal-sdata", cl::Hidden, +# 30| cl::desc("MIPS: Use gp_rel for object-local data."), +# 31| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:34: constructor_uses_global_object: The constructor of global object "ExternSData" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExternSData" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| +# 33| static cl::opt +# 34|-> ExternSData("mextern-sdata", cl::Hidden, +# 35| cl::desc("MIPS: Use gp_rel for data that is not defined by the " +# 36| "current object."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:40: constructor_uses_global_object: The constructor of global object "EmbeddedData" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmbeddedData" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| +# 39| static cl::opt +# 40|-> EmbeddedData("membedded-data", cl::Hidden, +# 41| cl::desc("MIPS: Try to allocate variables in the following" +# 42| " sections if possible: .rodata, .sdata, .data ."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:96: constructor_uses_global_object: The constructor of global object "LowerCtorDtor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LowerCtorDtor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| +# 95| static cl::opt +# 96|-> LowerCtorDtor("nvptx-lower-global-ctor-dtor", +# 97| cl::desc("Lower GPU ctor / dtors to globals on the device."), +# 98| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXCtorDtorLowering.cpp:31: constructor_uses_global_object: The constructor of global object "GlobalStr[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalStr[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt +# 31|-> GlobalStr("nvptx-lower-global-ctor-dtor-id", +# 32| cl::desc("Override unique ID of ctor/dtor globals."), +# 33| cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:71: constructor_uses_global_object: The constructor of global object "sched4reg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "sched4reg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| static std::atomic GlobalUniqueCallSite; +# 70| +# 71|-> static cl::opt sched4reg( +# 72| "nvptx-sched4reg", +# 73| cl::desc("NVPTX Specific: schedule for register pressue"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:75: constructor_uses_global_object: The constructor of global object "FMAContractLevelOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FMAContractLevelOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| cl::desc("NVPTX Specific: schedule for register pressue"), cl::init(false)); +# 74| +# 75|-> static cl::opt FMAContractLevelOpt( +# 76| "nvptx-fma-level", cl::Hidden, +# 77| cl::desc("NVPTX Specific: FMA contraction (0: don't do it" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:81: constructor_uses_global_object: The constructor of global object "UsePrecDivF32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UsePrecDivF32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| cl::init(2)); +# 80| +# 81|-> static cl::opt UsePrecDivF32( +# 82| "nvptx-prec-divf32", cl::Hidden, +# 83| cl::desc("NVPTX Specifies: 0 use div.approx, 1 use div.full, 2 use" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:87: constructor_uses_global_object: The constructor of global object "UsePrecSqrtF32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UsePrecSqrtF32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| cl::init(2)); +# 86| +# 87|-> static cl::opt UsePrecSqrtF32( +# 88| "nvptx-prec-sqrtf32", cl::Hidden, +# 89| cl::desc("NVPTX Specific: 0 use sqrt.approx, 1 use sqrt.rn."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:92: constructor_uses_global_object: The constructor of global object "ForceMinByValParamAlign" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceMinByValParamAlign" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| cl::init(true)); +# 91| +# 92|-> static cl::opt ForceMinByValParamAlign( +# 93| "nvptx-force-min-byval-param-align", cl::Hidden, +# 94| cl::desc("NVPTX Specific: force 4-byte minimal alignment for byval" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXSubtarget.cpp:26: constructor_uses_global_object: The constructor of global object "NoF16Math" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoF16Math" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> NoF16Math("nvptx-no-f16-math", cl::Hidden, +# 27| cl::desc("NVPTX Specific: Disable generation of f16 math ops."), +# 28| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:48: constructor_uses_global_object: The constructor of global object "DisableLoadStoreVectorizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLoadStoreVectorizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| // encounter (or suspect) a bug. +# 47| static cl::opt +# 48|-> DisableLoadStoreVectorizer("disable-nvptx-load-store-vectorizer", +# 49| cl::desc("Disable load/store vectorizer"), +# 50| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:53: constructor_uses_global_object: The constructor of global object "DisableRequireStructuredCFG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableRequireStructuredCFG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| // TODO: Remove this flag when we are confident with no regressions. +# 53|-> static cl::opt DisableRequireStructuredCFG( +# 54| "disable-nvptx-require-structured-cfg", +# 55| cl::desc("Transitional flag to turn off NVPTX's requirement on preserving " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:60: constructor_uses_global_object: The constructor of global object "UseShortPointersOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseShortPointersOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(false), cl::Hidden); +# 59| +# 60|-> static cl::opt UseShortPointersOpt( +# 61| "nvptx-short-ptr", +# 62| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:69: constructor_uses_global_object: The constructor of global object "ExitOnUnreachable" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExitOnUnreachable" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| // makes it into the LLVM-17 release. +# 68| static cl::opt +# 69|-> ExitOnUnreachable("nvptx-exit-on-unreachable", +# 70| cl::desc("Lower 'unreachable' as 'exit' instruction."), +# 71| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVVMIntrRange.cpp:30: constructor_uses_global_object: The constructor of global object "NVVMIntrRangeSM" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NVVMIntrRangeSM" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| +# 29| // Add !range metadata based on limits of given SM variant. +# 30|-> static cl::opt NVVMIntrRangeSM("nvvm-intr-range-sm", cl::init(20), +# 31| cl::Hidden, cl::desc("SM variant")); +# 32| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVVMReflect.cpp:70: constructor_uses_global_object: The constructor of global object "NVVMReflectEnabled" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NVVMReflectEnabled" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| +# 69| static cl::opt +# 70|-> NVVMReflectEnabled("nvvm-reflect-enable", cl::init(true), cl::Hidden, +# 71| cl::desc("NVVM reflection, enabled by default")); +# 72| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:127: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:130: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:135: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 264 bytes. +# 133| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 134| "Invalid kind!"); +# 135|-> return (Endian == support::little +# 136| ? InfosLE +# 137| : InfosBE)[Kind - FirstTargetFixupKind]; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp:33: constructor_uses_global_object: The constructor of global object "FullRegNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FullRegNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| // to the verbose-asm setting. +# 32| static cl::opt +# 33|-> FullRegNames("ppc-asm-full-reg-names", cl::Hidden, cl::init(false), +# 34| cl::desc("Use full register names when printing assembly")); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp:38: constructor_uses_global_object: The constructor of global object "ShowVSRNumsAsVR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowVSRNumsAsVR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| // Useful for testing purposes. Prints vs{31-63} as v{0-31} respectively. +# 37| static cl::opt +# 38|-> ShowVSRNumsAsVR("ppc-vsr-nums-as-vr", cl::Hidden, cl::init(false), +# 39| cl::desc("Prints full register names with vs{31-63} as v{0-31}")); +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp:43: constructor_uses_global_object: The constructor of global object "FullRegNamesWithPercent" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FullRegNamesWithPercent" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| // Prints full register names with percent symbol. +# 42| static cl::opt +# 43|-> FullRegNamesWithPercent("ppc-reg-with-percent-prefix", cl::Hidden, +# 44| cl::init(false), +# 45| cl::desc("Prints full register names with percent")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCAsmPrinter.cpp:96: constructor_uses_global_object: The constructor of global object "EnableSSPCanaryBitInTB" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSSPCanaryBitInTB" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| STATISTIC(NumTOCEHBlock, "Number of EH Block TOC Entries."); +# 95| +# 96|-> static cl::opt EnableSSPCanaryBitInTB( +# 97| "aix-ssp-tb-bit", cl::init(false), +# 98| cl::desc("Enable Passing SSP Canary info in Trackback on AIX"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCExpandISEL.cpp:40: constructor_uses_global_object: The constructor of global object "GenerateISEL" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateISEL" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| // ISEL instruction, else expand it. +# 39| static cl::opt +# 40|-> GenerateISEL("ppc-gen-isel", +# 41| cl::desc("Enable generating the ISEL instruction."), +# 42| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCFrameLowering.cpp:39: constructor_uses_global_object: The constructor of global object "EnablePEVectorSpills" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePEVectorSpills" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> EnablePEVectorSpills("ppc-enable-pe-vector-spills", +# 40| cl::desc("Enable spills in prologue to vector registers."), +# 41| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:91: constructor_uses_global_object: The constructor of global object "ANDIGlueBug" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ANDIGlueBug" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| +# 90| // FIXME: Remove this once the bug has been fixed! +# 91|-> cl::opt ANDIGlueBug("expose-ppc-andi-glue-bug", +# 92| cl::desc("expose the ANDI glue bug on PPC"), cl::Hidden); +# 93| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:95: constructor_uses_global_object: The constructor of global object "UseBitPermRewriter" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseBitPermRewriter" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> UseBitPermRewriter("ppc-use-bit-perm-rewriter", cl::init(true), +# 96| cl::desc("use aggressive ppc isel for bit permutations"), +# 97| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:98: constructor_uses_global_object: The constructor of global object "BPermRewriterNoMasking" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BPermRewriterNoMasking" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| cl::desc("use aggressive ppc isel for bit permutations"), +# 97| cl::Hidden); +# 98|-> static cl::opt BPermRewriterNoMasking( +# 99| "ppc-bit-perm-rewriter-stress-rotates", +# 100| cl::desc("stress rotate selection in aggressive ppc isel for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:104: constructor_uses_global_object: The constructor of global object "EnableBranchHint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableBranchHint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| cl::Hidden); +# 103| +# 104|-> static cl::opt EnableBranchHint( +# 105| "ppc-use-branch-hint", cl::init(true), +# 106| cl::desc("Enable static hinting of branches on ppc"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:109: constructor_uses_global_object: The constructor of global object "EnableTLSOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTLSOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 107| cl::Hidden); +# 108| +# 109|-> static cl::opt EnableTLSOpt( +# 110| "ppc-tls-opt", cl::init(true), +# 111| cl::desc("Enable tls optimization peephole"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:118: constructor_uses_global_object: The constructor of global object "CmpInGPR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CmpInGPR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| ICGPR_SextI32, ICGPR_ZextI64, ICGPR_SextI64 }; +# 117| +# 118|-> static cl::opt CmpInGPR( +# 119| "ppc-gpr-icmps", cl::Hidden, cl::init(ICGPR_All), +# 120| cl::desc("Specify the types of comparisons to emit GPR-only code for."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:107: constructor_uses_global_object: The constructor of global object "DisablePPCPreinc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePPCPreinc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| #define DEBUG_TYPE "ppc-lowering" +# 106| +# 107|-> static cl::opt DisablePPCPreinc("disable-ppc-preinc", +# 108| cl::desc("disable preincrement load/store generation on PPC"), cl::Hidden); +# 109| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:110: constructor_uses_global_object: The constructor of global object "DisableILPPref" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableILPPref" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| cl::desc("disable preincrement load/store generation on PPC"), cl::Hidden); +# 109| +# 110|-> static cl::opt DisableILPPref("disable-ppc-ilp-pref", +# 111| cl::desc("disable setting the node scheduling preference to ILP on PPC"), cl::Hidden); +# 112| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:113: constructor_uses_global_object: The constructor of global object "DisablePPCUnaligned" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePPCUnaligned" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::desc("disable setting the node scheduling preference to ILP on PPC"), cl::Hidden); +# 112| +# 113|-> static cl::opt DisablePPCUnaligned("disable-ppc-unaligned", +# 114| cl::desc("disable unaligned load/store generation on PPC"), cl::Hidden); +# 115| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:116: constructor_uses_global_object: The constructor of global object "DisableSCO" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSCO" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| cl::desc("disable unaligned load/store generation on PPC"), cl::Hidden); +# 115| +# 116|-> static cl::opt DisableSCO("disable-ppc-sco", +# 117| cl::desc("disable sibling call optimization on ppc"), cl::Hidden); +# 118| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:119: constructor_uses_global_object: The constructor of global object "DisableInnermostLoopAlign32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableInnermostLoopAlign32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| cl::desc("disable sibling call optimization on ppc"), cl::Hidden); +# 118| +# 119|-> static cl::opt DisableInnermostLoopAlign32("disable-ppc-innermost-loop-align32", +# 120| cl::desc("don't always align innermost loop to 32 bytes on ppc"), cl::Hidden); +# 121| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:122: constructor_uses_global_object: The constructor of global object "UseAbsoluteJumpTables" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAbsoluteJumpTables" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 120| cl::desc("don't always align innermost loop to 32 bytes on ppc"), cl::Hidden); +# 121| +# 122|-> static cl::opt UseAbsoluteJumpTables("ppc-use-absolute-jumptables", +# 123| cl::desc("use absolute jump tables on ppc"), cl::Hidden); +# 124| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:126: constructor_uses_global_object: The constructor of global object "DisablePerfectShuffle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePerfectShuffle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| +# 125| static cl::opt +# 126|-> DisablePerfectShuffle("ppc-disable-perfect-shuffle", +# 127| cl::desc("disable vector permute decomposition"), +# 128| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:130: constructor_uses_global_object: The constructor of global object "DisableAutoPairedVecSt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAutoPairedVecSt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| cl::init(true), cl::Hidden); +# 129| +# 130|-> cl::opt DisableAutoPairedVecSt( +# 131| "disable-auto-paired-vec-st", +# 132| cl::desc("disable automatically generated 32byte paired vector stores"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:67: constructor_uses_global_object: The constructor of global object "DisableCTRLoopAnal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCTRLoopAnal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl:: +# 67|-> opt DisableCTRLoopAnal("disable-ppc-ctrloop-analysis", cl::Hidden, +# 68| cl::desc("Disable analysis for CTR loops")); +# 69| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:70: constructor_uses_global_object: The constructor of global object "DisableCmpOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCmpOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| cl::desc("Disable analysis for CTR loops")); +# 69| +# 70|-> static cl::opt DisableCmpOpt("disable-ppc-cmp-opt", +# 71| cl::desc("Disable compare instruction optimization"), cl::Hidden); +# 72| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:73: constructor_uses_global_object: The constructor of global object "VSXSelfCopyCrash" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VSXSelfCopyCrash" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::desc("Disable compare instruction optimization"), cl::Hidden); +# 72| +# 73|-> static cl::opt VSXSelfCopyCrash("crash-on-ppc-vsx-self-copy", +# 74| cl::desc("Causes the backend to crash instead of generating a nop VSX copy"), +# 75| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:78: constructor_uses_global_object: The constructor of global object "UseOldLatencyCalc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseOldLatencyCalc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| +# 77| static cl::opt +# 78|-> UseOldLatencyCalc("ppc-old-latency-calc", cl::Hidden, +# 79| cl::desc("Use the old (incorrect) instruction latency calculation")); +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:82: constructor_uses_global_object: The constructor of global object "FMARPFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FMARPFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| +# 81| static cl::opt +# 82|-> FMARPFactor("ppc-fma-rp-factor", cl::Hidden, cl::init(1.5), +# 83| cl::desc("register pressure factor for the transformations.")); +# 84| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:85: constructor_uses_global_object: The constructor of global object "EnableFMARegPressureReduction" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFMARegPressureReduction" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("register pressure factor for the transformations.")); +# 84| +# 85|-> static cl::opt EnableFMARegPressureReduction( +# 86| "ppc-fma-rp-reduction", cl::Hidden, cl::init(true), +# 87| cl::desc("enable register pressure reduce in machine combiner pass.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:120: constructor_uses_global_object: The constructor of global object "MaxVarsPrep" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxVarsPrep" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| +# 119| static cl::opt +# 120|-> MaxVarsPrep("ppc-formprep-max-vars", cl::Hidden, cl::init(24), +# 121| cl::desc("Potential common base number threshold per function " +# 122| "for PPC loop prep")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:124: constructor_uses_global_object: The constructor of global object "PreferUpdateForm" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreferUpdateForm" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| "for PPC loop prep")); +# 123| +# 124|-> static cl::opt PreferUpdateForm("ppc-formprep-prefer-update", +# 125| cl::init(true), cl::Hidden, +# 126| cl::desc("prefer update form when ds form is also a update form")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:128: constructor_uses_global_object: The constructor of global object "EnableUpdateFormForNonConstInc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableUpdateFormForNonConstInc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| cl::desc("prefer update form when ds form is also a update form")); +# 127| +# 128|-> static cl::opt EnableUpdateFormForNonConstInc( +# 129| "ppc-formprep-update-nonconst-inc", cl::init(false), cl::Hidden, +# 130| cl::desc("prepare update form when the load/store increment is a loop " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:133: error[too-many]: 3010 occurrences of constructor_uses_global_object exceeded the specified limit 1024 +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:133: note: 1986 occurrences of constructor_uses_global_object were discarded because of this + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:307: overflow: The expression "MemoryOperand + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:307: overflow_sink: "MemoryOperand + AddrSegmentReg", which might have overflowed, is passed to "Inst->getOperand(MemoryOperand + AddrSegmentReg)". +# 305| if (MemoryOperand >= 0) { +# 306| // Check for explicit segment override on memory operand. +# 307|-> SegmentReg = Inst.getOperand(MemoryOperand + X86::AddrSegmentReg).getReg(); +# 308| } +# 309| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:302: overflow: The expression "MemoryOperand" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:339: overflow: The expression "MemoryOperand + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:339: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:340: overflow_sink: "BaseRegNum", which might have underflowed, is passed to "Inst->getOperand(BaseRegNum)". +# 338| if (MemoryOperand >= 0) { +# 339| unsigned BaseRegNum = MemoryOperand + X86::AddrBaseReg; +# 340|-> unsigned BaseReg = Inst.getOperand(BaseRegNum).getReg(); +# 341| if (BaseReg == X86::ESP || BaseReg == X86::EBP) +# 342| return X86::SS_Encoding; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp:390: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp:390: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp:395: overflow_sink: "MemoryOperand", which might be negative, is passed to "llvm::X86_MC::needsAddressSizeOverride(MI, STI, MemoryOperand, TSFlags)". +# 393| +# 394| // Address-Size override prefix +# 395|-> if (Flags & X86::IP_HAS_AD_SIZE && +# 396| !X86_MC::needsAddressSizeOverride(*MI, STI, MemoryOperand, TSFlags)) { +# 397| if (STI.hasFeature(X86::Is16Bit) || STI.hasFeature(X86::Is64Bit)) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:796: overflow: The expression "MemoryOperand" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:797: overflow: The expression "MemoryOperand + AddrSegmentReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:797: overflow_sink: "MemoryOperand + AddrSegmentReg", which might have underflowed, is passed to "this->emitSegmentOverridePrefix(MemoryOperand + AddrSegmentReg, MI, CB)". +# 795| if (MemoryOperand != -1) { +# 796| MemoryOperand += CurOp; +# 797|-> emitSegmentOverridePrefix(MemoryOperand + X86::AddrSegmentReg, MI, CB); +# 798| } +# 799| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:796: overflow: The expression "MemoryOperand" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:808: overflow_sink: "MemoryOperand", which might be negative, is passed to "llvm::X86_MC::needsAddressSizeOverride(MI, STI, MemoryOperand, TSFlags)". +# 806| +# 807| // Emit the address size opcode prefix as needed. +# 808|-> if (X86_MC::needsAddressSizeOverride(MI, STI, MemoryOperand, TSFlags) || +# 809| Flags & X86::IP_HAS_AD_SIZE) +# 810| emitByte(0x67, CB); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:652: overflow: The expression "MemOpStart + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:652: overflow_sink: "MemOpStart + AddrSegmentReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrSegmentReg)". +# 650| MemOpStart += X86II::getOperandBias(MCID); +# 651| +# 652|-> const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 653| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:650: overflow: The expression "MemOpStart" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:653: overflow: The expression "MemOpStart + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:653: overflow_sink: "MemOpStart + AddrBaseReg", which might have underflowed, is passed to "Inst->getOperand(MemOpStart + AddrBaseReg)". +# 651| +# 652| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 653|-> const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:654: overflow: The expression "MemOpStart + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:654: overflow_sink: "MemOpStart + AddrIndexReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrIndexReg)". +# 652| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 653| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654|-> const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 656| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:655: overflow: The expression "MemOpStart + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:655: overflow_sink: "MemOpStart + AddrScaleAmt", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrScaleAmt)". +# 653| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655|-> const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 656| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 657| if (SegReg.getReg() != 0 || IndexReg.getReg() != 0 || ScaleAmt.getImm() != 1 || + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:656: overflow: The expression "MemOpStart + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:656: overflow_sink: "MemOpStart + AddrDisp", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrDisp)". +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 656|-> const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 657| if (SegReg.getReg() != 0 || IndexReg.getReg() != 0 || ScaleAmt.getImm() != 1 || +# 658| !Disp.isImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:678: overflow: The expression "MemOpStart + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:678: overflow_sink: "MemOpStart + AddrSegmentReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrSegmentReg)". +# 676| return std::nullopt; +# 677| MemOpStart += X86II::getOperandBias(MCID); +# 678|-> const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 679| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:677: overflow: The expression "MemOpStart" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:679: overflow: The expression "MemOpStart + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:679: overflow_sink: "MemOpStart + AddrBaseReg", which might have underflowed, is passed to "Inst->getOperand(MemOpStart + AddrBaseReg)". +# 677| MemOpStart += X86II::getOperandBias(MCID); +# 678| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 679|-> const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:680: overflow: The expression "MemOpStart + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:680: overflow_sink: "MemOpStart + AddrIndexReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrIndexReg)". +# 678| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 679| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680|-> const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 682| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:681: overflow: The expression "MemOpStart + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:681: overflow_sink: "MemOpStart + AddrScaleAmt", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrScaleAmt)". +# 679| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681|-> const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 682| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 683| // Must be a simple rip-relative address. + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:682: overflow: The expression "MemOpStart + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:682: overflow_sink: "MemOpStart + AddrDisp", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrDisp)". +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 682|-> const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 683| // Must be a simple rip-relative address. +# 684| if (BaseReg.getReg() != X86::RIP || SegReg.getReg() != 0 || + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:529: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:529: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:534: cast_underflow: An assign of a possibly negative number to an unsigned type, which might trigger an underflow. +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:537: overflow_sink: "MemOpIdx", which might be negative, is passed to "MI->getOperand(MemOpIdx)". +# 535| MemOpEnd = MemOpStart + X86::AddrNumOperands; +# 536| MemOpIdx < MemOpEnd; ++MemOpIdx) { +# 537|-> const MachineOperand &Op = MI.getOperand(MemOpIdx); +# 538| if (Op.isReg() && Op.getReg() == Reg) +# 539| return true; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: assign: Assigning: "AddrOffset" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:655: overflow: The expression "AddrOffset" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:656: overflow: The expression "AddrOffset + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:656: overflow_sink: "AddrOffset + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(AddrOffset + AddrBaseReg)". +# 654| if (AddrOffset >= 0) { +# 655| AddrOffset += X86II::getOperandBias(Desc); +# 656|-> MachineOperand &p = MI.getOperand(AddrOffset + X86::AddrBaseReg); +# 657| if (p.isReg() && p.getReg() != X86::ESP) { +# 658| seekLEAFixup(p, I, MBB); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: assign: Assigning: "AddrOffset" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:660: overflow: The expression "AddrOffset + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:660: overflow_sink: "AddrOffset + AddrIndexReg", which might have overflowed, is passed to "MI->getOperand(AddrOffset + AddrIndexReg)". +# 658| seekLEAFixup(p, I, MBB); +# 659| } +# 660|-> MachineOperand &q = MI.getOperand(AddrOffset + X86::AddrIndexReg); +# 661| if (q.isReg() && q.getReg() != X86::ESP) { +# 662| seekLEAFixup(q, I, MBB); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:53485: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), AI)". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:53485: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#53483| return CI->getValue() == AI; +#53484| if (const auto *CF = dyn_cast(CP->getConstVal())) +#53485|-> return CF->getValue() == APFloat(APFloat::IEEEsingle(), AI); +#53486| } +#53487| return false; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: overflow: The expression "Offset + Bias" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:205: overflow_sink: "MemOpOffset", which might have overflowed, is passed to "::IsMemOpCompatibleWithPrefetch(*Current, MemOpOffset)". +# 203| int MemOpOffset = Offset + Bias; +# 204| // FIXME(mtrofin): ORE message when the recommendation cannot be taken. +# 205|-> if (!IsMemOpCompatibleWithPrefetch(*Current, MemOpOffset)) +# 206| continue; +# 207| Prefetches.clear(); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: overflow: The expression "Offset + Bias" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrBaseReg", which might have underflowed, is passed to "Current->getOperand(MemOpOffset + AddrBaseReg)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrDisp", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrDisp)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrIndexReg", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrIndexReg)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrScaleAmt", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrScaleAmt)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrSegmentReg", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrSegmentReg)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3220: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3220: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3224: overflow: The expression "MemRefBegin + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3224: overflow_sink: "MemRefBegin + AddrDisp", which might be negative, is passed to "MI->getOperand(MemRefBegin + AddrDisp)". +# 3222| MemRefBegin += X86II::getOperandBias(Desc); +# 3223| +# 3224|-> const MachineOperand &MO = MI.getOperand(MemRefBegin + X86::AddrDisp); +# 3225| if (!MO.isJTI()) +# 3226| return -1; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3813: overflow: The expression "MemRefBegin" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3815: overflow: The expression "MemRefBegin + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3815: overflow_sink: "MemRefBegin + AddrBaseReg", which might have underflowed, is passed to "MemI->getOperand(MemRefBegin + AddrBaseReg)". +# 3813| MemRefBegin += X86II::getOperandBias(Desc); +# 3814| +# 3815|-> auto &BaseOp = MemI.getOperand(MemRefBegin + X86::AddrBaseReg); +# 3816| if (!BaseOp.isReg()) // Can be an MO_FrameIndex +# 3817| return std::nullopt; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3819: overflow: The expression "MemRefBegin + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3819: overflow_sink: "MemRefBegin + AddrDisp", which might have overflowed, is passed to "MemI->getOperand(MemRefBegin + AddrDisp)". +# 3817| return std::nullopt; +# 3818| +# 3819|-> const MachineOperand &DispMO = MemI.getOperand(MemRefBegin + X86::AddrDisp); +# 3820| // Displacement can be symbolic +# 3821| if (!DispMO.isImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3826: overflow: The expression "MemRefBegin + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3826: overflow_sink: "MemRefBegin + AddrIndexReg", which might have overflowed, is passed to "MemI->getOperand(MemRefBegin + AddrIndexReg)". +# 3824| ExtAddrMode AM; +# 3825| AM.BaseReg = BaseOp.getReg(); +# 3826|-> AM.ScaledReg = MemI.getOperand(MemRefBegin + X86::AddrIndexReg).getReg(); +# 3827| AM.Scale = MemI.getOperand(MemRefBegin + X86::AddrScaleAmt).getImm(); +# 3828| AM.Displacement = DispMO.getImm(); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3827: overflow: The expression "MemRefBegin + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3827: overflow_sink: "MemRefBegin + AddrScaleAmt", which might have overflowed, is passed to "MemI->getOperand(MemRefBegin + AddrScaleAmt)". +# 3825| AM.BaseReg = BaseOp.getReg(); +# 3826| AM.ScaledReg = MemI.getOperand(MemRefBegin + X86::AddrIndexReg).getReg(); +# 3827|-> AM.Scale = MemI.getOperand(MemRefBegin + X86::AddrScaleAmt).getImm(); +# 3828| AM.Displacement = DispMO.getImm(); +# 3829| return AM; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3910: overflow: The expression "MemRefBegin" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3912: overflow: The expression "MemRefBegin + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3912: overflow_sink: "MemRefBegin + AddrBaseReg", which might have underflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrBaseReg)". +# 3910| MemRefBegin += X86II::getOperandBias(Desc); +# 3911| +# 3912|-> const MachineOperand *BaseOp = +# 3913| &MemOp.getOperand(MemRefBegin + X86::AddrBaseReg); +# 3914| if (!BaseOp->isReg()) // Can be an MO_FrameIndex + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3917: overflow: The expression "MemRefBegin + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3917: overflow_sink: "MemRefBegin + AddrScaleAmt", which might have overflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrScaleAmt)". +# 3915| return false; +# 3916| +# 3917|-> if (MemOp.getOperand(MemRefBegin + X86::AddrScaleAmt).getImm() != 1) +# 3918| return false; +# 3919| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3920: overflow: The expression "MemRefBegin + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3920: overflow_sink: "MemRefBegin + AddrIndexReg", which might have overflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrIndexReg)". +# 3918| return false; +# 3919| +# 3920|-> if (MemOp.getOperand(MemRefBegin + X86::AddrIndexReg).getReg() != +# 3921| X86::NoRegister) +# 3922| return false; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3924: overflow: The expression "MemRefBegin + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3924: overflow_sink: "MemRefBegin + AddrDisp", which might have overflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrDisp)". +# 3922| return false; +# 3923| +# 3924|-> const MachineOperand &DispMO = MemOp.getOperand(MemRefBegin + X86::AddrDisp); +# 3925| +# 3926| // Displacement can be symbolic + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:776: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:776: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:783: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:785: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:785: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 783| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 784| +# 785|-> const MachineOperand &BaseMO = +# 786| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 787| const MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: assign: Assigning: "MemOpNo" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:454: overflow: The expression "MemOpNo" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:458: overflow: The expression "MemOpNo + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:458: overflow_sink: "MemOpNo + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemOpNo + AddrBaseReg)". +# 456| // If the address base of the use instruction is not the LEA def register - +# 457| // the LEA is not replaceable. +# 458|-> if (!isIdenticalOp(MI.getOperand(MemOpNo + X86::AddrBaseReg), MO)) +# 459| return false; +# 460| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: assign: Assigning: "MemOpNo" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:469: overflow: The expression "MemOpNo + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:469: overflow_sink: "MemOpNo + AddrDisp", which might have overflowed, is passed to "MI->getOperand(MemOpNo + AddrDisp)". +# 467| +# 468| // Check that the new address displacement will fit 4 bytes. +# 469|-> if (MI.getOperand(MemOpNo + X86::AddrDisp).isImm() && +# 470| !isInt<32>(MI.getOperand(MemOpNo + X86::AddrDisp).getImm() + +# 471| AddrDispShift)) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:511: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:511: assign: Assigning: "MemOpNo" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:517: overflow: The expression "MemOpNo" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:520: overflow_sink: "MemOpNo", which might have overflowed, is passed to "getMemOpKey(MI, MemOpNo)". +# 518| +# 519| // Do not call chooseBestLEA if there was no matching LEA +# 520|-> auto Insns = LEAs.find(getMemOpKey(MI, MemOpNo)); +# 521| if (Insns == LEAs.end()) +# 522| continue; +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:520: note: trimmed 1 message(s) with length over 512 + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:672: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:672: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:680: overflow: The expression "MemOpNo + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:680: overflow_sink: "MemOpNo + AddrDisp", which might have overflowed, is passed to "MI->getOperand(MemOpNo + AddrDisp)". +# 678| +# 679| // Update address disp. +# 680|-> MachineOperand &Op = MI.getOperand(MemOpNo + X86::AddrDisp); +# 681| if (Op.isImm()) +# 682| Op.setImm(Op.getImm() + AddrDispShift); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1326: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1326: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1334: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1336: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1336: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 1334| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 1335| +# 1336|-> MachineOperand &BaseMO = +# 1337| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1338| MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1408: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1410: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1410: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 1408| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 1409| +# 1410|-> MachineOperand &BaseMO = +# 1411| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1412| MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1807: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1807: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1810: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1812: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1812: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "UseMI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 1810| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 1811| +# 1812|-> MachineOperand &BaseMO = +# 1813| UseMI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1814| MachineOperand &IndexMO = + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroSplit.cpp:689: var_decl: Declaring variable "Intrinsics". +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroSplit.cpp:693: uninit_use: Using uninitialized value "Intrinsics". Field "Intrinsics.InlineElts" is uninitialized. +# 691| if (auto *DVI = dyn_cast(&I)) +# 692| Intrinsics.push_back(DVI); +# 693|-> return Intrinsics; +# 694| } +# 695| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Transforms/IPO/ForceFunctionAttrs.cpp:43: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(KV.second)". The value of "Kind" is now between 0 and 87 (inclusive). +llvm-17.0.6.src/lib/Transforms/IPO/ForceFunctionAttrs.cpp:44: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 87 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Transforms/IPO/ForceFunctionAttrs.cpp:44: overrun-call: Overrunning callee's array of size 84 by passing argument "Kind" (which evaluates to 87) in call to "canUseAsFnAttr". +# 42| return Kind; +# 43| Kind = Attribute::getAttrKindFromName(KV.second); +# 44|-> if (Kind == Attribute::None || !Attribute::canUseAsFnAttr(Kind)) { +# 45| LLVM_DEBUG(dbgs() << "ForcedAttribute: " << KV.second +# 46| << " unknown or not a function attribute!\n"); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/llvm-cov/CodeCoverage.cpp:347: move: "CoverageInfo" is moved (indicated by "std::move(CoverageInfo)"). +llvm-17.0.6.src/tools/llvm-cov/CodeCoverage.cpp:347: use_after_move: "CoverageInfo" is used after it has been already moved. +# 345| +# 346| if (!ViewBranches.empty()) { +# 347|-> auto SubView = SourceCoverageView::create(SourceName, File, ViewOpts, +# 348| std::move(CoverageInfo)); +# 349| View.addBranch(CurrentLine, ViewBranches, std::move(SubView)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/llvm-exegesis/lib/PerfHelper.cpp:110: move: "E" is moved (indicated by "std::move(E)"). +llvm-17.0.6.src/tools/llvm-exegesis/lib/PerfHelper.cpp:114: use_after_move: "E" is used after it has been already moved. +# 112| IsDummyEvent = Event.name() == PerfEvent::DummyEventString; +# 113| if (!IsDummyEvent) +# 114|-> initRealEvent(E, ProcessID); +# 115| } +# 116| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:886: overflow_sink: "MemOpIdx + 0", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 0, llvm::MCOperand const(llvm::MCOperand::createReg(Reg)))". +# 884| // getMemoryOperandNo() ignores tied operands, so we have to add them back. +# 885| MemOpIdx += X86II::getOperandBias(IT.getInstr().Description); +# 886|-> setMemOp(IT, MemOpIdx + 0, MCOperand::createReg(Reg)); // BaseReg +# 887| setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:887: overflow: The expression "MemOpIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:887: overflow_sink: "MemOpIdx + 1", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 1, llvm::MCOperand const(llvm::MCOperand::createImm(1L)))". +# 885| MemOpIdx += X86II::getOperandBias(IT.getInstr().Description); +# 886| setMemOp(IT, MemOpIdx + 0, MCOperand::createReg(Reg)); // BaseReg +# 887|-> setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889| setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:888: overflow: The expression "MemOpIdx + 2" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:888: overflow_sink: "MemOpIdx + 2", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 2, llvm::MCOperand const(llvm::MCOperand::createReg(0U)))". +# 886| setMemOp(IT, MemOpIdx + 0, MCOperand::createReg(Reg)); // BaseReg +# 887| setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888|-> setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889| setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp +# 890| setMemOp(IT, MemOpIdx + 4, MCOperand::createReg(0)); // Segment + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:889: overflow: The expression "MemOpIdx + 3" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:889: overflow_sink: "MemOpIdx + 3", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 3, llvm::MCOperand const(llvm::MCOperand::createImm(Offset)))". +# 887| setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889|-> setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp +# 890| setMemOp(IT, MemOpIdx + 4, MCOperand::createReg(0)); // Segment +# 891| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:890: overflow: The expression "MemOpIdx + 4" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:890: overflow_sink: "MemOpIdx + 4", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 4, llvm::MCOperand const(llvm::MCOperand::createReg(0U)))". +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889| setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp +# 890|-> setMemOp(IT, MemOpIdx + 4, MCOperand::createReg(0)); // Segment +# 891| } +# 892| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/tools/llvm-profdata/llvm-profdata.cpp:3112: extract: Calling "c_str" which extracts wrapped state from local "Invocation". +llvm-17.0.6.src/tools/llvm-profdata/llvm-profdata.cpp:3112: escape: The internal representation of local "Invocation" escapes into "argv[1]", but is destroyed when it exits scope. +# 3110| if (func) { +# 3111| std::string Invocation(ProgName.str() + " " + argv[1]); +# 3112|-> argv[1] = Invocation.c_str(); +# 3113| return func(argc - 1, argv + 1); +# 3114| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/MappedIteratorTest.cpp:175: move: "I2" is moved (indicated by "std::move(I2)"). +llvm-17.0.6.src/unittests/ADT/MappedIteratorTest.cpp:177: use_after_move: "I2" is used after it has been already moved. +# 175| I3 = std::move(I2); +# 176| +# 177|-> EXPECT_EQ(I2, I1) << "move assigned iterator is a different position"; +# 178| } +# 179| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/MLRegallocDevelopmentFeatures.cpp:50: var_decl: Declaring variable "PositionsToReturn". +llvm-17.0.6.src/unittests/CodeGen/MLRegallocDevelopmentFeatures.cpp:80: uninit_use: Using uninitialized value "PositionsToReturn". Field "PositionsToReturn.InlineElts" is uninitialized. +# 78| CurrentIndex += SlotIndex::InstrDist; +# 79| } +# 80|-> return PositionsToReturn; +# 81| } +# 82| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/unittests/DebugInfo/LogicalView/ELFReaderTest.cpp:323: extract: Calling "get" which extracts wrapped state from local "Reference". +llvm-17.0.6.src/unittests/DebugInfo/LogicalView/ELFReaderTest.cpp:323: escape: The internal representation of local "Reference" escapes, but is destroyed when it exits scope. +# 321| std::unique_ptr Target = +# 322| createReader(ReaderHandler, InputsDir, DwarfGcc); +# 323|-> checkElementComparison(Reference.get(), Target.get()); +# 324| } +# 325| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:645: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyEmitted". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:645: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyEmitted(MR)" leaks it. +# 643| LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1); +# 644| +# 645|-> LLVMOrcMaterializationResponsibilityNotifyEmitted(MR); +# 646| LLVMOrcDisposeMaterializationResponsibility(MR); +# 647| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: alloc_fn: Storage is returned from allocation function "LLVMCreatePassBuilderOptions". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: var_assign: Assigning: "Options" = storage returned from "LLVMCreatePassBuilderOptions()". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:74: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:75: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:76: leaked_storage: Variable "Options" going out of scope leaks the storage it points to. +# 74| LLVMErrorRef E1 = LLVMRunPasses(Module, "", TM, Options); +# 75| LLVMErrorRef E2 = LLVMRunPasses(Module, "does-not-exist-pass", TM, Options); +# 76|-> ASSERT_TRUE(E1); +# 77| ASSERT_TRUE(E2); +# 78| LLVMConsumeError(E1); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: alloc_fn: Storage is returned from allocation function "LLVMCreatePassBuilderOptions". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: var_assign: Assigning: "Options" = storage returned from "LLVMCreatePassBuilderOptions()". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:74: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:75: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:77: leaked_storage: Variable "Options" going out of scope leaks the storage it points to. +# 75| LLVMErrorRef E2 = LLVMRunPasses(Module, "does-not-exist-pass", TM, Options); +# 76| ASSERT_TRUE(E1); +# 77|-> ASSERT_TRUE(E2); +# 78| LLVMConsumeError(E1); +# 79| LLVMConsumeError(E2); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ProfileData/CoverageMappingTest.cpp:27: var_decl: Declaring variable "Found" without initializer. +llvm-17.0.6.src/unittests/ProfileData/CoverageMappingTest.cpp:33: uninit_use: Using uninitialized value "Found". +# 31| FoundMsg = CME.message(); +# 32| }); +# 33|-> if (Expected == Found) +# 34| return ::testing::AssertionSuccess(); +# 35| return ::testing::AssertionFailure() << "error: " << FoundMsg << "\n"; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ProfileData/MemProfTest.cpp:121: var_decl: Declaring variable "Schema". +llvm-17.0.6.src/unittests/ProfileData/MemProfTest.cpp:125: uninit_use: Using uninitialized value "Schema". Field "Schema.InlineElts" is uninitialized. +# 123| #include "llvm/ProfileData/MIBEntryDef.inc" +# 124| #undef MIBEntryDef +# 125|-> return Schema; +# 126| } +# 127| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/utils/TableGen/CodeGenRegisters.cpp:491: var_decl: Declaring variable "Parts". +llvm-17.0.6.src/utils/TableGen/CodeGenRegisters.cpp:515: uninit_use_in_call: Using uninitialized value "Parts". Field "Parts.InlineElts" is uninitialized when calling "getConcatSubRegIndex". +# 513| // Each part of Cand is a sub-register of this. Make the full Cand also +# 514| // a sub-register with a concatenated sub-register index. +# 515|-> CodeGenSubRegIndex *Concat = RegBank.getConcatSubRegIndex(Parts); +# 516| std::pair NewSubReg = +# 517| std::make_pair(Concat, Cand); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/utils/TableGen/GlobalISel/GIMatchTree.cpp:352: extract: Calling "get" which extracts wrapped state from local "TreeRoot". +llvm-17.0.6.src/utils/TableGen/GlobalISel/GIMatchTree.cpp:352: escape: The internal representation of local "TreeRoot" escapes into "this->TreeNode", but is destroyed when it exits scope. +# 350| +# 351| std::unique_ptr TreeRoot = std::make_unique(); +# 352|-> TreeNode = TreeRoot.get(); +# 353| runStep(); +# 354| + +Error: SNYK_CODE_WARNING (CWE-125): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:350:15: error[cpp/SizeAsIndex]: The size of the buffer from size is used as an array index. This value could be one larger than the last possible index of the array, causing a buffer overread or overwrite. +# 348| CreateGlobalSet().Globals.set(GI); +# 349| } else { +# 350|-> ++UsedGlobalSets[CurGVOnlySetIdx].UsageCount; +# 351| } +# 352| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:3454: original: "llvm::BinaryOperator::CreateOr(Op0, A, llvm::Twine const(""))" looks like the original copy. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:3432: copy_paste_error: "Op0" in "llvm::BinaryOperator::CreateOr(Op0, C, llvm::Twine const(""))" looks like a copy-paste error. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:3432: remediation: Should it say "Op1" instead? +# 3430| // B | ((A & B) ^ C) -> B | C +# 3431| if (match(Op1, m_c_Xor(m_c_And(m_Value(A), m_Specific(Op0)), m_Value(C)))) +# 3432|-> return BinaryOperator::CreateOr(Op0, C); +# 3433| +# 3434| // ((B | C) & A) | B -> B | (A & C) diff --git a/tests/csdiff/diff-misc/25-llvm-17-path-filter-fix.err b/tests/csdiff/diff-misc/25-llvm-17-path-filter-fix.err new file mode 100644 index 00000000..a635b7b7 --- /dev/null +++ b/tests/csdiff/diff-misc/25-llvm-17-path-filter-fix.err @@ -0,0 +1,9584 @@ +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/examples/Bye/Bye.cpp:11: constructor_uses_global_object: The constructor of global object "Wave" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Wave" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 9| using namespace llvm; +# 10| +# 11|-> static cl::opt Wave("wave-goodbye", cl::init(false), +# 12| cl::desc("wave good bye")); +# 13| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/examples/IRTransforms/SimplifyCFG.cpp:49: constructor_uses_global_object: The constructor of global object "Version" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Version" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| enum TutorialVersion { V1, V2, V3 }; +# 48| static cl::opt +# 49|-> Version("tut-simplifycfg-version", cl::desc("Select tutorial version"), +# 50| cl::Hidden, cl::ValueOptional, cl::init(V1), +# 51| cl::values(clEnumValN(V1, "v1", "version 1"), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/iterator_range.h:56: move: "c" is moved (indicated by "std::forward(c)"). +llvm-17.0.6.src/include/llvm/ADT/iterator_range.h:57: use_after_move: "c" is used after it has been already moved. +# 55| iterator_range(Container &&c) +# 56| : begin_iterator(adl_begin(std::forward(c))), +# 57|-> end_iterator(adl_end(std::forward(c))) { +# 58| } +# 59| iterator_range(IteratorT begin_iterator, IteratorT end_iterator) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:235: var_decl: Declaring variable "Res". +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:237: uninit_use: Using uninitialized value "Res". Field "Res" is uninitialized. +# 235| ValueLatticeElement Res; +# 236| Res.markOverdefined(); +# 237|-> return Res; +# 238| } +# 239| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1199: constructor_uses_global_object: The constructor of global object "::DumpDebugAbbrev" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugAbbrev" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1197| // TODO: Add Mach-O and COFF names. +# 1198| // Official DWARF sections. +# 1199|-> HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +# 1200| HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +# 1201| HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1200: constructor_uses_global_object: The constructor of global object "::DumpDebugAddr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugAddr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1198| // Official DWARF sections. +# 1199| HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +# 1200|-> HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +# 1201| HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", +# 1202| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1201: constructor_uses_global_object: The constructor of global object "::DumpDebugAranges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugAranges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1199| HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +# 1200| HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +# 1201|-> HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", +# 1202| BoolOption) +# 1203| HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1203: constructor_uses_global_object: The constructor of global object "::DumpDebugInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1201| HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", +# 1202| BoolOption) +# 1203|-> HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +# 1204| HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205| HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1204: constructor_uses_global_object: The constructor of global object "::DumpDebugTypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugTypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1202| BoolOption) +# 1203| HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +# 1204|-> HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205| HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +# 1206| HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1205: constructor_uses_global_object: The constructor of global object "::DumpDebugLine" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLine" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1203| HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +# 1204| HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205|-> HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +# 1206| HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", +# 1207| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1206: constructor_uses_global_object: The constructor of global object "::DumpDebugLineStr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLineStr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1204| HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205| HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +# 1206|-> HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", +# 1207| BoolOption) +# 1208| HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1208: constructor_uses_global_object: The constructor of global object "::DumpDebugLoc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLoc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1206| HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", +# 1207| BoolOption) +# 1208|-> HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) +# 1209| HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", +# 1210| OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1209: constructor_uses_global_object: The constructor of global object "::DumpDebugLoclists" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLoclists" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1207| BoolOption) +# 1208| HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) +# 1209|-> HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", +# 1210| OffsetOption) +# 1211| HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1211: constructor_uses_global_object: The constructor of global object "::DumpDebugFrame" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugFrame" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1209| HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", +# 1210| OffsetOption) +# 1211|-> HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +# 1212| HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213| HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1212: constructor_uses_global_object: The constructor of global object "::DumpDebugMacro" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugMacro" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1210| OffsetOption) +# 1211| HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +# 1212|-> HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213| HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +# 1214| HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1213: constructor_uses_global_object: The constructor of global object "::DumpDebugNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1211| HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +# 1212| HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213|-> HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +# 1214| HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", +# 1215| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1214: constructor_uses_global_object: The constructor of global object "::DumpDebugPubnames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugPubnames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1212| HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213| HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +# 1214|-> HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", +# 1215| BoolOption) +# 1216| HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1216: constructor_uses_global_object: The constructor of global object "::DumpDebugPubtypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugPubtypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1214| HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", +# 1215| BoolOption) +# 1216|-> HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", +# 1217| BoolOption) +# 1218| HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1218: constructor_uses_global_object: The constructor of global object "::DumpDebugGnuPubnames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugGnuPubnames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1216| HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", +# 1217| BoolOption) +# 1218|-> HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", +# 1219| "debug-gnu-pubnames", BoolOption) +# 1220| HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1220: constructor_uses_global_object: The constructor of global object "::DumpDebugGnuPubtypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugGnuPubtypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1218| HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", +# 1219| "debug-gnu-pubnames", BoolOption) +# 1220|-> HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", +# 1221| "debug-gnu-pubtypes", BoolOption) +# 1222| HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1222: constructor_uses_global_object: The constructor of global object "::DumpDebugRanges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugRanges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1220| HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", +# 1221| "debug-gnu-pubtypes", BoolOption) +# 1222|-> HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) +# 1223| HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", +# 1224| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1223: constructor_uses_global_object: The constructor of global object "::DumpDebugRnglists" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugRnglists" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1221| "debug-gnu-pubtypes", BoolOption) +# 1222| HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) +# 1223|-> HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", +# 1224| BoolOption) +# 1225| HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1225: constructor_uses_global_object: The constructor of global object "::DumpDebugStr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugStr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1223| HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", +# 1224| BoolOption) +# 1225|-> HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) +# 1226| HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", +# 1227| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1226: constructor_uses_global_object: The constructor of global object "::DumpDebugStrOffsets" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugStrOffsets" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1224| BoolOption) +# 1225| HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) +# 1226|-> HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", +# 1227| BoolOption) +# 1228| HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1228: constructor_uses_global_object: The constructor of global object "::DumpDebugCUIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugCUIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1226| HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", +# 1227| BoolOption) +# 1228|-> HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", +# 1229| BoolOption) +# 1230| HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1230: constructor_uses_global_object: The constructor of global object "::DumpDebugTUIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugTUIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1228| HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", +# 1229| BoolOption) +# 1230|-> HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index", +# 1231| BoolOption) +# 1232| // Vendor extensions. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1233: constructor_uses_global_object: The constructor of global object "::DumpAppleNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1231| BoolOption) +# 1232| // Vendor extensions. +# 1233|-> HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +# 1234| HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +# 1235| HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1234: constructor_uses_global_object: The constructor of global object "::DumpAppleTypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleTypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1232| // Vendor extensions. +# 1233| HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +# 1234|-> HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +# 1235| HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", +# 1236| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1235: constructor_uses_global_object: The constructor of global object "::DumpAppleNamespaces" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleNamespaces" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1233| HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +# 1234| HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +# 1235|-> HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", +# 1236| BoolOption) +# 1237| HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1237: constructor_uses_global_object: The constructor of global object "::DumpAppleObjC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleObjC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1235| HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", +# 1236| BoolOption) +# 1237|-> HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) +# 1238| HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index", BoolOption) +# 1239| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1238: constructor_uses_global_object: The constructor of global object "::DumpGdbIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpGdbIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1236| BoolOption) +# 1237| HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) +# 1238|-> HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index", BoolOption) +# 1239| +# 1240| HANDLE_DW_IDX(0x01, compile_unit) + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:46: alloc_fn: Storage is returned from allocation function "createFastDAGScheduler". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:46: leaked_storage: Failing to save or free storage allocated by "llvm::createFastDAGScheduler(NULL, Default)" leaks it. +# 44| (void) llvm::createHybridListDAGScheduler(nullptr, +# 45| llvm::CodeGenOpt::Default); +# 46|-> (void) llvm::createFastDAGScheduler(nullptr, llvm::CodeGenOpt::Default); +# 47| (void) llvm::createDefaultScheduler(nullptr, llvm::CodeGenOpt::Default); +# 48| (void) llvm::createVLIWDAGScheduler(nullptr, llvm::CodeGenOpt::Default); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:47: alloc_fn: Storage is returned from allocation function "createDefaultScheduler". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:47: leaked_storage: Failing to save or free storage allocated by "llvm::createDefaultScheduler(NULL, Default)" leaks it. +# 45| llvm::CodeGenOpt::Default); +# 46| (void) llvm::createFastDAGScheduler(nullptr, llvm::CodeGenOpt::Default); +# 47|-> (void) llvm::createDefaultScheduler(nullptr, llvm::CodeGenOpt::Default); +# 48| (void) llvm::createVLIWDAGScheduler(nullptr, llvm::CodeGenOpt::Default); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:51: constructor_uses_global_object: The constructor of global object "::ForceCodegenLinking" itself makes use of global object "DisableSchedCycles" defined in another compilation unit. The order of construction is unspecified, so "::ForceCodegenLinking" might be created before "DisableSchedCycles" is available. +# 49| +# 50| } +# 51|-> } ForceCodegenLinking; // Force link by creating a global definition. +# 52| } +# 53| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineInstr.h:573: var_decl: Declaring variable "UsedRegs". +llvm-17.0.6.src/include/llvm/CodeGen/MachineInstr.h:577: uninit_use: Using uninitialized value "UsedRegs". Field "UsedRegs.Vector.InlineElts" is uninitialized. +# 575| if (MO.isReg() && MO.getReg()) +# 576| UsedRegs.insert(MO.getReg()); +# 577|-> return UsedRegs; +# 578| } +# 579| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllIR.h:51: constructor_uses_global_object: The constructor of global object "::ForceVMCoreLinking" itself makes use of global object "DisableI2pP2iOpt" defined in another compilation unit. The order of construction is unspecified, so "::ForceVMCoreLinking" might be created before "DisableI2pP2iOpt" is available. +# 49| (void) llvm::createVerifierPass(); +# 50| } +# 51|-> } ForceVMCoreLinking; +# 52| } +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllIR.h:51: constructor_uses_global_object: The constructor of global object "::ForceVMCoreLinking" itself makes use of global object "ScalableErrorAsWarning" defined in another compilation unit. The order of construction is unspecified, so "::ForceVMCoreLinking" might be created before "ScalableErrorAsWarning" is available. +# 49| (void) llvm::createVerifierPass(); +# 50| } +# 51|-> } ForceVMCoreLinking; +# 52| } +# 53| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:71: alloc_fn: Storage is returned from allocation function "createAAEvalPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:71: leaked_storage: Failing to save or free storage allocated by "llvm::createAAEvalPass()" leaks it. +# 69| return; +# 70| +# 71|-> (void) llvm::createAAEvalPass(); +# 72| (void) llvm::createBasicAAWrapperPass(); +# 73| (void) llvm::createSCEVAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:81: alloc_fn: Storage is returned from allocation function "createCostModelAnalysisPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:81: leaked_storage: Failing to save or free storage allocated by "llvm::createCostModelAnalysisPass()" leaks it. +# 79| (void) llvm::createCFGSimplificationPass(); +# 80| (void) llvm::createStructurizeCFGPass(); +# 81|-> (void) llvm::createCostModelAnalysisPass(); +# 82| (void) llvm::createDeadArgEliminationPass(); +# 83| (void) llvm::createDeadCodeEliminationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:91: alloc_fn: Storage is returned from allocation function "createGuardWideningPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:91: leaked_storage: Failing to save or free storage allocated by "llvm::createGuardWideningPass()" leaks it. +# 89| (void) llvm::createAlwaysInlinerLegacyPass(); +# 90| (void) llvm::createGlobalsAAWrapperPass(); +# 91|-> (void) llvm::createGuardWideningPass(); +# 92| (void) llvm::createLoopGuardWideningPass(); +# 93| (void) llvm::createInstSimplifyLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:92: alloc_fn: Storage is returned from allocation function "createLoopGuardWideningPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:92: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopGuardWideningPass()" leaks it. +# 90| (void) llvm::createGlobalsAAWrapperPass(); +# 91| (void) llvm::createGuardWideningPass(); +# 92|-> (void) llvm::createLoopGuardWideningPass(); +# 93| (void) llvm::createInstSimplifyLegacyPass(); +# 94| (void) llvm::createInstructionCombiningPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:99: alloc_fn: Storage is returned from allocation function "createLoopSinkPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:99: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopSinkPass()" leaks it. +# 97| (void) llvm::createLCSSAPass(); +# 98| (void) llvm::createLICMPass(); +# 99|-> (void) llvm::createLoopSinkPass(); +# 100| (void) llvm::createLazyValueInfoPass(); +# 101| (void) llvm::createLoopExtractorPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:102: alloc_fn: Storage is returned from allocation function "createLoopPredicationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:102: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopPredicationPass()" leaks it. +# 100| (void) llvm::createLazyValueInfoPass(); +# 101| (void) llvm::createLoopExtractorPass(); +# 102|-> (void) llvm::createLoopPredicationPass(); +# 103| (void) llvm::createLoopSimplifyPass(); +# 104| (void) llvm::createLoopSimplifyCFGPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:104: alloc_fn: Storage is returned from allocation function "createLoopSimplifyCFGPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:104: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopSimplifyCFGPass()" leaks it. +# 102| (void) llvm::createLoopPredicationPass(); +# 103| (void) llvm::createLoopSimplifyPass(); +# 104|-> (void) llvm::createLoopSimplifyCFGPass(); +# 105| (void) llvm::createLoopStrengthReducePass(); +# 106| (void) llvm::createLoopUnrollPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:107: alloc_fn: Storage is returned from allocation function "createLoopRotatePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:107: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopRotatePass(-1, false)" leaks it. +# 105| (void) llvm::createLoopStrengthReducePass(); +# 106| (void) llvm::createLoopUnrollPass(); +# 107|-> (void) llvm::createLoopRotatePass(); +# 108| (void) llvm::createLowerConstantIntrinsicsPass(); +# 109| (void) llvm::createLowerExpectIntrinsicPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:109: alloc_fn: Storage is returned from allocation function "createLowerExpectIntrinsicPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:109: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerExpectIntrinsicPass()" leaks it. +# 107| (void) llvm::createLoopRotatePass(); +# 108| (void) llvm::createLowerConstantIntrinsicsPass(); +# 109|-> (void) llvm::createLowerExpectIntrinsicPass(); +# 110| (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 111| (void) llvm::createLowerInvokePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:115: alloc_fn: Storage is returned from allocation function "createPromoteMemoryToRegisterPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:115: leaked_storage: Failing to save or free storage allocated by "llvm::createPromoteMemoryToRegisterPass(false)" leaks it. +# 113| (void) llvm::createNaryReassociatePass(); +# 114| (void) llvm::createObjCARCContractPass(); +# 115|-> (void) llvm::createPromoteMemoryToRegisterPass(); +# 116| (void) llvm::createDemoteRegisterToMemoryPass(); +# 117| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:116: alloc_fn: Storage is returned from allocation function "createDemoteRegisterToMemoryPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:116: leaked_storage: Failing to save or free storage allocated by "llvm::createDemoteRegisterToMemoryPass()" leaks it. +# 114| (void) llvm::createObjCARCContractPass(); +# 115| (void) llvm::createPromoteMemoryToRegisterPass(); +# 116|-> (void) llvm::createDemoteRegisterToMemoryPass(); +# 117| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 118| (void)llvm::createPostDomPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:122: alloc_fn: Storage is returned from allocation function "createRedundantDbgInstEliminationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:122: leaked_storage: Failing to save or free storage allocated by "llvm::createRedundantDbgInstEliminationPass()" leaks it. +# 120| (void)llvm::createPostDomViewerWrapperPassPass(); +# 121| (void) llvm::createReassociatePass(); +# 122|-> (void) llvm::createRedundantDbgInstEliminationPass(); +# 123| (void) llvm::createRegionInfoPass(); +# 124| (void) llvm::createRegionOnlyPrinterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:133: alloc_fn: Storage is returned from allocation function "createUnifyFunctionExitNodesPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:133: leaked_storage: Failing to save or free storage allocated by "llvm::createUnifyFunctionExitNodesPass()" leaks it. +# 131| (void) llvm::createTailCallEliminationPass(); +# 132| (void)llvm::createTLSVariableHoistPass(); +# 133|-> (void) llvm::createUnifyFunctionExitNodesPass(); +# 134| (void) llvm::createInstCountPass(); +# 135| (void) llvm::createConstantHoistingPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:134: alloc_fn: Storage is returned from allocation function "createInstCountPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:134: leaked_storage: Failing to save or free storage allocated by "llvm::createInstCountPass()" leaks it. +# 132| (void)llvm::createTLSVariableHoistPass(); +# 133| (void) llvm::createUnifyFunctionExitNodesPass(); +# 134|-> (void) llvm::createInstCountPass(); +# 135| (void) llvm::createConstantHoistingPass(); +# 136| (void) llvm::createCodeGenPreparePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:136: alloc_fn: Storage is returned from allocation function "createCodeGenPreparePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:136: leaked_storage: Failing to save or free storage allocated by "llvm::createCodeGenPreparePass()" leaks it. +# 134| (void) llvm::createInstCountPass(); +# 135| (void) llvm::createConstantHoistingPass(); +# 136|-> (void) llvm::createCodeGenPreparePass(); +# 137| (void) llvm::createEarlyCSEPass(); +# 138| (void) llvm::createMergedLoadStoreMotionPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:138: alloc_fn: Storage is returned from allocation function "createMergedLoadStoreMotionPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:138: leaked_storage: Failing to save or free storage allocated by "llvm::createMergedLoadStoreMotionPass(false)" leaks it. +# 136| (void) llvm::createCodeGenPreparePass(); +# 137| (void) llvm::createEarlyCSEPass(); +# 138|-> (void) llvm::createMergedLoadStoreMotionPass(); +# 139| (void) llvm::createGVNPass(); +# 140| (void) llvm::createPostDomTree(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:143: alloc_fn: Storage is returned from allocation function "createExpandMemCmpPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:143: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandMemCmpPass()" leaks it. +# 141| (void) llvm::createMergeICmpsLegacyPass(); +# 142| (void) llvm::createExpandLargeDivRemPass(); +# 143|-> (void) llvm::createExpandMemCmpPass(); +# 144| (void) llvm::createExpandVectorPredicationPass(); +# 145| std::string buf; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:153: alloc_fn: Storage is returned from allocation function "createScalarizerPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:153: leaked_storage: Failing to save or free storage allocated by "llvm::createScalarizerPass()" leaks it. +# 151| (void) llvm::createLoadStoreVectorizerPass(); +# 152| (void) llvm::createPartiallyInlineLibCallsPass(); +# 153|-> (void) llvm::createScalarizerPass(); +# 154| (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 155| (void) llvm::createSpeculativeExecutionPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:164: alloc_fn: Storage is returned from allocation function "operator new". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:164: leaked_storage: Failing to save or free storage allocated by "new llvm::IntervalPartition" leaks it. +# 162| (void)llvm::createSelectOptimizePass(); +# 163| +# 164|-> (void)new llvm::IntervalPartition(); +# 165| (void)new llvm::ScalarEvolutionWrapperPass(); +# 166| llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "::ForceSkipUniformRegions" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "::ForceSkipUniformRegions" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "CFGFuncName[abi:cxx11]" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "CFGFuncName[abi:cxx11]" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "DefaultRotationThreshold" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "DefaultRotationThreshold" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "UserBonusInstThreshold" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "UserBonusInstThreshold" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "llvm::SetLicmMssaOptCap" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "llvm::SetLicmMssaOptCap" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ProfileData/MemProf.h:103: var_decl: Declaring variable "List". +llvm-17.0.6.src/include/llvm/ProfileData/MemProf.h:107: uninit_use: Using uninitialized value "List". Field "List.InlineElts" is uninitialized. +# 105| #include "llvm/ProfileData/MIBEntryDef.inc" +# 106| #undef MIBEntryDef +# 107|-> return List; +# 108| } +# 109| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/Support/PluginLoader.h:35: constructor_uses_global_object: The constructor of global object "llvm::LoadOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LoadOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| // This causes operator= above to be invoked for every -load option. +# 34| static cl::opt> +# 35|-> LoadOpt("load", cl::value_desc("pluginfilename"), +# 36| cl::desc("Load the specified plugin")); +# 37| #endif + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysis.cpp:66: constructor_uses_global_object: The constructor of global object "llvm::DisableBasicAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableBasicAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| /// Allow disabling BasicAA from the AA results. This is particularly useful +# 65| /// when testing to isolate a single AA implementation. +# 66|-> cl::opt DisableBasicAA("disable-basic-aa", cl::Hidden, cl::init(false)); +# 67| } // namespace llvm +# 68| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:23: constructor_uses_global_object: The constructor of global object "PrintAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| using namespace llvm; +# 22| +# 23|-> static cl::opt PrintAll("print-all-alias-modref-info", cl::ReallyHidden); +# 24| +# 25| static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:25: constructor_uses_global_object: The constructor of global object "PrintNoAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintNoAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| static cl::opt PrintAll("print-all-alias-modref-info", cl::ReallyHidden); +# 24| +# 25|-> static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); +# 26| static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27| static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:26: constructor_uses_global_object: The constructor of global object "PrintMayAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMayAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); +# 26|-> static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27| static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); +# 28| static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:27: constructor_uses_global_object: The constructor of global object "PrintPartialAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintPartialAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); +# 26| static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27|-> static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); +# 28| static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); +# 29| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:28: constructor_uses_global_object: The constructor of global object "PrintMustAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMustAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27| static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); +# 28|-> static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); +# 29| +# 30| static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:30: constructor_uses_global_object: The constructor of global object "PrintNoModRef" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintNoModRef" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); +# 29| +# 30|-> static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); +# 31| static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32| static cl::opt PrintMod("print-mod", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:31: constructor_uses_global_object: The constructor of global object "PrintRef" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintRef" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); +# 31|-> static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32| static cl::opt PrintMod("print-mod", cl::ReallyHidden); +# 33| static cl::opt PrintModRef("print-modref", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:32: constructor_uses_global_object: The constructor of global object "PrintMod" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMod" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); +# 31| static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32|-> static cl::opt PrintMod("print-mod", cl::ReallyHidden); +# 33| static cl::opt PrintModRef("print-modref", cl::ReallyHidden); +# 34| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:33: constructor_uses_global_object: The constructor of global object "PrintModRef" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintModRef" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32| static cl::opt PrintMod("print-mod", cl::ReallyHidden); +# 33|-> static cl::opt PrintModRef("print-modref", cl::ReallyHidden); +# 34| +# 35| static cl::opt EvalAAMD("evaluate-aa-metadata", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:35: constructor_uses_global_object: The constructor of global object "EvalAAMD" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EvalAAMD" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| static cl::opt PrintModRef("print-modref", cl::ReallyHidden); +# 34| +# 35|-> static cl::opt EvalAAMD("evaluate-aa-metadata", cl::ReallyHidden); +# 36| +# 37| static void PrintResults(AliasResult AR, bool P, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasSetTracker.cpp:38: constructor_uses_global_object: The constructor of global object "SaturationThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SaturationThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| +# 37| static cl::opt +# 38|-> SaturationThreshold("alias-set-saturation-threshold", cl::Hidden, +# 39| cl::init(250), +# 40| cl::desc("The maximum number of pointers may-alias " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AssumptionCache.cpp:40: constructor_uses_global_object: The constructor of global object "VerifyAssumptionCache" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyAssumptionCache" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| +# 39| static cl::opt +# 40|-> VerifyAssumptionCache("verify-assumption-cache", cl::Hidden, +# 41| cl::desc("Enable verification of assumption cache"), +# 42| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:68: constructor_uses_global_object: The constructor of global object "EnableRecPhiAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRecPhiAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| +# 67| /// Enable analysis of recursive PHI nodes. +# 68|-> static cl::opt EnableRecPhiAnalysis("basic-aa-recphi", cl::Hidden, +# 69| cl::init(true)); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:71: constructor_uses_global_object: The constructor of global object "EnableSeparateStorageAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSeparateStorageAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::init(true)); +# 70| +# 71|-> static cl::opt EnableSeparateStorageAnalysis("basic-aa-separate-storage", +# 72| cl::Hidden, cl::init(false)); +# 73| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:1058: tainted_data_return: Called function "V2Size.getValue()", and a possible return value is known to be less than zero. +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:1058: underflow: The cast of "V2Size.getValue()" to a signed type could result in a negative number. +# 1056| // If an inbounds GEP would have to start from an out of bounds address +# 1057| // for the two to alias, then we can assume noalias. +# 1058|-> if (*DecompGEP1.InBounds && DecompGEP1.VarIndices.empty() && +# 1059| V2Size.hasValue() && DecompGEP1.Offset.sge(V2Size.getValue()) && +# 1060| isBaseOfObject(DecompGEP2.Base)) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:35: constructor_uses_global_object: The constructor of global object "ViewBlockFreqPropagationDAG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewBlockFreqPropagationDAG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| #define DEBUG_TYPE "block-freq" +# 34| +# 35|-> static cl::opt ViewBlockFreqPropagationDAG( +# 36| "view-block-freq-propagation-dags", cl::Hidden, +# 37| cl::desc("Pop up a window to show a dag displaying how block " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:51: constructor_uses_global_object: The constructor of global object "llvm::ViewBlockFreqFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewBlockFreqFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| namespace llvm { +# 50| cl::opt +# 51|-> ViewBlockFreqFuncName("view-bfi-func-name", cl::Hidden, +# 52| cl::desc("The option to specify " +# 53| "the name of the function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:57: constructor_uses_global_object: The constructor of global object "llvm::ViewHotFreqPercent" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewHotFreqPercent" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| cl::opt +# 57|-> ViewHotFreqPercent("view-hot-freq-percent", cl::init(10), cl::Hidden, +# 58| cl::desc("An integer in percent used to specify " +# 59| "the hot blocks/edges to be displayed " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:65: constructor_uses_global_object: The constructor of global object "llvm::PGOViewCounts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PGOViewCounts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| // Command line option to turn on CFG dot or text dump after profile annotation. +# 65|-> cl::opt PGOViewCounts( +# 66| "pgo-view-counts", cl::Hidden, +# 67| cl::desc("A boolean option to show CFG dag or text with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:81: constructor_uses_global_object: The constructor of global object "llvm::PrintBlockFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintBlockFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| clEnumValN(PGOVCT_Text, "text", "show in text."))); +# 80| +# 81|-> static cl::opt PrintBlockFreq( +# 82| "print-bfi", cl::init(false), cl::Hidden, +# 83| cl::desc("Print the block frequency info.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:85: constructor_uses_global_object: The constructor of global object "llvm::PrintBlockFreqFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintBlockFreqFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("Print the block frequency info.")); +# 84| +# 85|-> cl::opt PrintBlockFreqFuncName( +# 86| "print-bfi-func-name", cl::Hidden, +# 87| cl::desc("The option to specify the name of the function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:44: constructor_uses_global_object: The constructor of global object "llvm::CheckBFIUnknownBlockQueries" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::CheckBFIUnknownBlockQueries" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| namespace llvm { +# 44|-> cl::opt CheckBFIUnknownBlockQueries( +# 45| "check-bfi-unknown-block-queries", +# 46| cl::init(false), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:50: constructor_uses_global_object: The constructor of global object "llvm::UseIterativeBFIInference" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseIterativeBFIInference" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| "for debugging missed BFI updates")); +# 49| +# 50|-> cl::opt UseIterativeBFIInference( +# 51| "use-iterative-bfi-inference", cl::Hidden, +# 52| cl::desc("Apply an iterative post-processing to infer correct BFI counts")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:54: constructor_uses_global_object: The constructor of global object "llvm::IterativeBFIMaxIterationsPerBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::IterativeBFIMaxIterationsPerBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::desc("Apply an iterative post-processing to infer correct BFI counts")); +# 53| +# 54|-> cl::opt IterativeBFIMaxIterationsPerBlock( +# 55| "iterative-bfi-max-iterations-per-block", cl::init(1000), cl::Hidden, +# 56| cl::desc("Iterative inference: maximum number of update iterations " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:59: constructor_uses_global_object: The constructor of global object "llvm::IterativeBFIPrecision" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::IterativeBFIPrecision" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| "per block")); +# 58| +# 59|-> cl::opt IterativeBFIPrecision( +# 60| "iterative-bfi-precision", cl::init(1e-12), cl::Hidden, +# 61| cl::desc("Iterative inference: delta convergence precision; smaller values " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BranchProbabilityInfo.cpp:54: constructor_uses_global_object: The constructor of global object "PrintBranchProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBranchProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| #define DEBUG_TYPE "branch-prob" +# 53| +# 54|-> static cl::opt PrintBranchProb( +# 55| "print-bpi", cl::init(false), cl::Hidden, +# 56| cl::desc("Print the branch probability info.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BranchProbabilityInfo.cpp:58: constructor_uses_global_object: The constructor of global object "PrintBranchProbFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBranchProbFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::desc("Print the branch probability info.")); +# 57| +# 58|-> cl::opt PrintBranchProbFuncName( +# 59| "print-bpi-func-name", cl::Hidden, +# 60| cl::desc("The option to specify the name of the function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFG.cpp:24: constructor_uses_global_object: The constructor of global object "DefaultMaxBBsToExplore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultMaxBBsToExplore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| // two basic blocks. This is kept reasonably small to limit compile time when +# 23| // repeatedly used by clients of this analysis (such as captureTracking). +# 24|-> static cl::opt DefaultMaxBBsToExplore( +# 25| "dom-tree-reachability-max-bbs-to-explore", cl::Hidden, +# 26| cl::desc("Max number of BBs to explore for reachability analysis"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:31: constructor_uses_global_object: The constructor of global object "CFGFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CFGFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt +# 31|-> CFGFuncName("cfg-func-name", cl::Hidden, +# 32| cl::desc("The name of a function (or its substring)" +# 33| " whose CFG is viewed/printed.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:35: constructor_uses_global_object: The constructor of global object "CFGDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CFGDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| " whose CFG is viewed/printed.")); +# 34| +# 35|-> static cl::opt CFGDotFilenamePrefix( +# 36| "cfg-dot-filename-prefix", cl::Hidden, +# 37| cl::desc("The prefix used for the CFG dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:39: constructor_uses_global_object: The constructor of global object "HideUnreachablePaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HideUnreachablePaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::desc("The prefix used for the CFG dot file names.")); +# 38| +# 39|-> static cl::opt HideUnreachablePaths("cfg-hide-unreachable-paths", +# 40| cl::init(false)); +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:42: constructor_uses_global_object: The constructor of global object "HideDeoptimizePaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HideDeoptimizePaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::init(false)); +# 41| +# 42|-> static cl::opt HideDeoptimizePaths("cfg-hide-deoptimize-paths", +# 43| cl::init(false)); +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:45: constructor_uses_global_object: The constructor of global object "HideColdPaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HideColdPaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::init(false)); +# 44| +# 45|-> static cl::opt HideColdPaths( +# 46| "cfg-hide-cold-paths", cl::init(0.0), +# 47| cl::desc("Hide blocks with relative frequency below the given value")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:49: constructor_uses_global_object: The constructor of global object "ShowHeatColors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowHeatColors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::desc("Hide blocks with relative frequency below the given value")); +# 48| +# 49|-> static cl::opt ShowHeatColors("cfg-heat-colors", cl::init(true), +# 50| cl::Hidden, +# 51| cl::desc("Show heat colors in CFG")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:53: constructor_uses_global_object: The constructor of global object "UseRawEdgeWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseRawEdgeWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| cl::desc("Show heat colors in CFG")); +# 52| +# 53|-> static cl::opt UseRawEdgeWeight("cfg-raw-weights", cl::init(false), +# 54| cl::Hidden, +# 55| cl::desc("Use raw weights for labels. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:59: constructor_uses_global_object: The constructor of global object "ShowEdgeWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowEdgeWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| +# 58| static cl::opt +# 59|-> ShowEdgeWeight("cfg-weights", cl::init(false), cl::Hidden, +# 60| cl::desc("Show edges labeled with weights")); +# 61| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CGSCCPassManager.cpp:41: constructor_uses_global_object: The constructor of global object "llvm::AbortOnMaxDevirtIterationsReached" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::AbortOnMaxDevirtIterationsReached" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| // template typedefs. +# 40| namespace llvm { +# 41|-> static cl::opt AbortOnMaxDevirtIterationsReached( +# 42| "abort-on-max-devirt-iterations-reached", +# 43| cl::desc("Abort when the max iterations for devirtualization CGSCC repeat " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallGraphSCCPass.cpp:47: constructor_uses_global_object: The constructor of global object "llvm::MaxDevirtIterations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::MaxDevirtIterations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| namespace llvm { +# 47|-> cl::opt MaxDevirtIterations("max-devirt-iterations", cl::ReallyHidden, +# 48| cl::init(4)); +# 49| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:37: constructor_uses_global_object: The constructor of global object "ShowHeatColors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowHeatColors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| // FIXME: +# 36| // Need to show real counts when profile data is available +# 37|-> static cl::opt ShowHeatColors("callgraph-heat-colors", cl::init(false), +# 38| cl::Hidden, +# 39| cl::desc("Show heat colors in call-graph")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:42: constructor_uses_global_object: The constructor of global object "ShowEdgeWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowEdgeWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> ShowEdgeWeight("callgraph-show-weights", cl::init(false), cl::Hidden, +# 43| cl::desc("Show edges labeled with weights")); +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:46: constructor_uses_global_object: The constructor of global object "CallMultiGraph" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CallMultiGraph" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| +# 45| static cl::opt +# 46|-> CallMultiGraph("callgraph-multigraph", cl::init(false), cl::Hidden, +# 47| cl::desc("Show call-multigraph (do not remove parallel edges)")); +# 48| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:49: constructor_uses_global_object: The constructor of global object "CallGraphDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CallGraphDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::desc("Show call-multigraph (do not remove parallel edges)")); +# 48| +# 49|-> static cl::opt CallGraphDotFilenamePrefix( +# 50| "callgraph-dot-filename-prefix", cl::Hidden, +# 51| cl::desc("The prefix used for the CallGraph dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CaptureTracking.cpp:48: constructor_uses_global_object: The constructor of global object "DefaultMaxUsesToExplore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultMaxUsesToExplore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| /// don't have this cap at all. +# 47| static cl::opt +# 48|-> DefaultMaxUsesToExplore("capture-tracking-max-uses-to-explore", cl::Hidden, +# 49| cl::desc("Maximal number of uses to explore."), +# 50| cl::init(100)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CostModel.cpp:31: constructor_uses_global_object: The constructor of global object "CostKind" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CostKind" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt CostKind( +# 32| "cost-kind", cl::desc("Target cost kind"), +# 33| cl::init(TargetTransformInfo::TCK_RecipThroughput), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CostModel.cpp:43: constructor_uses_global_object: The constructor of global object "TypeBasedIntrinsicCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TypeBasedIntrinsicCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| "size-latency", "Code size and latency"))); +# 42| +# 43|-> static cl::opt TypeBasedIntrinsicCost("type-based-intrinsic-cost", +# 44| cl::desc("Calculate intrinsics cost based only on argument types"), +# 45| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDG.cpp:19: constructor_uses_global_object: The constructor of global object "SimplifyDDG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SimplifyDDG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| using namespace llvm; +# 18| +# 19|-> static cl::opt SimplifyDDG( +# 20| "ddg-simplify", cl::init(true), cl::Hidden, +# 21| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDG.cpp:24: constructor_uses_global_object: The constructor of global object "CreatePiBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CreatePiBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| "Simplify DDG by merging nodes that have less interesting edges.")); +# 23| +# 24|-> static cl::opt CreatePiBlocks("ddg-pi-blocks", cl::init(true), cl::Hidden, +# 25| cl::desc("Create pi-block nodes.")); +# 26| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDGPrinter.cpp:21: constructor_uses_global_object: The constructor of global object "DotOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 19| using namespace llvm; +# 20| +# 21|-> static cl::opt DotOnly("dot-ddg-only", cl::Hidden, +# 22| cl::desc("simple ddg dot graph")); +# 23| static cl::opt DDGDotFilenamePrefix( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDGPrinter.cpp:23: constructor_uses_global_object: The constructor of global object "DDGDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DDGDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| static cl::opt DotOnly("dot-ddg-only", cl::Hidden, +# 22| cl::desc("simple ddg dot graph")); +# 23|-> static cl::opt DDGDotFilenamePrefix( +# 24| "dot-ddg-filename-prefix", cl::init("ddg"), cl::Hidden, +# 25| cl::desc("The prefix used for the DDG dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DependenceAnalysis.cpp:109: constructor_uses_global_object: The constructor of global object "Delinearize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Delinearize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 107| +# 108| static cl::opt +# 109|-> Delinearize("da-delinearize", cl::init(true), cl::Hidden, +# 110| cl::desc("Try to delinearize array references.")); +# 111| static cl::opt DisableDelinearizationChecks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DependenceAnalysis.cpp:111: constructor_uses_global_object: The constructor of global object "DisableDelinearizationChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDelinearizationChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| Delinearize("da-delinearize", cl::init(true), cl::Hidden, +# 110| cl::desc("Try to delinearize array references.")); +# 111|-> static cl::opt DisableDelinearizationChecks( +# 112| "da-disable-delinearization-checks", cl::Hidden, +# 113| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DependenceAnalysis.cpp:119: constructor_uses_global_object: The constructor of global object "MIVMaxLevelThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MIVMaxLevelThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| "dimension to underflow or overflow into another dimension.")); +# 118| +# 119|-> static cl::opt MIVMaxLevelThreshold( +# 120| "da-miv-max-level-threshold", cl::init(7), cl::Hidden, +# 121| cl::desc("Maximum depth allowed for the recursive algorithm used to " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/GlobalsModRef.cpp:54: constructor_uses_global_object: The constructor of global object "EnableUnsafeGlobalsModRefAliasResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableUnsafeGlobalsModRefAliasResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // sensitivity and no known issues. The option also makes it easy to evaluate +# 53| // the performance impact of these results. +# 54|-> static cl::opt EnableUnsafeGlobalsModRefAliasResults( +# 55| "enable-unsafe-globalsmodref-alias-results", cl::init(false), cl::Hidden); +# 56| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:29: constructor_uses_global_object: The constructor of global object "llvm::DisableBranches" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableBranches" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| namespace llvm { +# 28| cl::opt +# 29|-> DisableBranches("no-ir-sim-branch-matching", cl::init(false), +# 30| cl::ReallyHidden, +# 31| cl::desc("disable similarity matching, and outlining, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:35: constructor_uses_global_object: The constructor of global object "llvm::DisableIndirectCalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableIndirectCalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| cl::opt +# 35|-> DisableIndirectCalls("no-ir-sim-indirect-calls", cl::init(false), +# 36| cl::ReallyHidden, +# 37| cl::desc("disable outlining indirect calls.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:40: constructor_uses_global_object: The constructor of global object "llvm::MatchCallsByName" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::MatchCallsByName" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| +# 39| cl::opt +# 40|-> MatchCallsByName("ir-sim-calls-by-name", cl::init(false), cl::ReallyHidden, +# 41| cl::desc("only allow matching call instructions if the " +# 42| "name and type signature match.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:45: constructor_uses_global_object: The constructor of global object "llvm::DisableIntrinsics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableIntrinsics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| cl::opt +# 45|-> DisableIntrinsics("no-ir-sim-intrinsics", cl::init(false), cl::ReallyHidden, +# 46| cl::desc("Don't match or outline intrinsics")); +# 47| } // namespace llvm + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ImportedFunctionsInliningStatistics.cpp:27: constructor_uses_global_object: The constructor of global object "llvm::InlinerFunctionImportStats" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::InlinerFunctionImportStats" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| +# 26| namespace llvm { +# 27|-> cl::opt InlinerFunctionImportStats( +# 28| "inliner-function-import-stats", +# 29| cl::init(InlinerFunctionImportStatsOpts::No), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IndirectCallPromotionAnalysis.cpp:28: constructor_uses_global_object: The constructor of global object "ICPRemainingPercentThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ICPRemainingPercentThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| // The percent threshold for the direct-call target (this call site vs the +# 27| // remaining call count) for it to be considered as the promotion target. +# 28|-> static cl::opt ICPRemainingPercentThreshold( +# 29| "icp-remaining-percent-threshold", cl::init(30), cl::Hidden, +# 30| cl::desc("The percentage threshold against remaining unpromoted indirect " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IndirectCallPromotionAnalysis.cpp:36: constructor_uses_global_object: The constructor of global object "ICPTotalPercentThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ICPTotalPercentThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| // total call count) for it to be considered as the promotion target. +# 35| static cl::opt +# 36|-> ICPTotalPercentThreshold("icp-total-percent-threshold", cl::init(5), +# 37| cl::Hidden, +# 38| cl::desc("The percentage threshold against total " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IndirectCallPromotionAnalysis.cpp:44: constructor_uses_global_object: The constructor of global object "MaxNumPromotions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxNumPromotions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| // callsite. +# 43| static cl::opt +# 44|-> MaxNumPromotions("icp-max-prom", cl::init(3), cl::Hidden, +# 45| cl::desc("Max number of promotions for a single indirect " +# 46| "call callsite")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:43: constructor_uses_global_object: The constructor of global object "InlineRemarkAttribute" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineRemarkAttribute" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| /// Flag to add inline messages as callsite attributes 'inline-remark'. +# 42| static cl::opt +# 43|-> InlineRemarkAttribute("inline-remark-attribute", cl::init(false), +# 44| cl::Hidden, +# 45| cl::desc("Enable adding inline-remark attribute to" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:49: constructor_uses_global_object: The constructor of global object "EnableInlineDeferral" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableInlineDeferral" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| " to be not inlined")); +# 48| +# 49|-> static cl::opt EnableInlineDeferral("inline-deferral", cl::init(false), +# 50| cl::Hidden, +# 51| cl::desc("Enable deferred inlining")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:56: constructor_uses_global_object: The constructor of global object "InlineDeferralScale" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineDeferralScale" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| // number tells shouldBeDeferred to only take the secondary cost into account. +# 55| static cl::opt +# 56|-> InlineDeferralScale("inline-deferral-scale", +# 57| cl::desc("Scale to limit the cost of inline deferral"), +# 58| cl::init(2), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:61: constructor_uses_global_object: The constructor of global object "AnnotateInlinePhase" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AnnotateInlinePhase" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| +# 60| static cl::opt +# 61|-> AnnotateInlinePhase("annotate-inline-phase", cl::Hidden, cl::init(false), +# 62| cl::desc("If true, annotate inline advisor remarks " +# 63| "with LTO and pass information.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:57: constructor_uses_global_object: The constructor of global object "DefaultThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| static cl::opt +# 57|-> DefaultThreshold("inlinedefault-threshold", cl::Hidden, cl::init(225), +# 58| cl::desc("Default amount of inlining to perform")); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:65: constructor_uses_global_object: The constructor of global object "IgnoreTTIInlineCompatible" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreTTIInlineCompatible" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| // some use cases. If we avoid adding the attribute, we need an option to avoid +# 64| // checking these attributes. +# 65|-> static cl::opt IgnoreTTIInlineCompatible( +# 66| "ignore-tti-inline-compatible", cl::Hidden, cl::init(false), +# 67| cl::desc("Ignore TTI attributes compatibility check between callee/caller " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:70: constructor_uses_global_object: The constructor of global object "PrintInstructionComments" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintInstructionComments" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| "during inline cost calculation")); +# 69| +# 70|-> static cl::opt PrintInstructionComments( +# 71| "print-instruction-comments", cl::Hidden, cl::init(false), +# 72| cl::desc("Prints comments for instruction based on inline cost analysis")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:74: constructor_uses_global_object: The constructor of global object "InlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| cl::desc("Prints comments for instruction based on inline cost analysis")); +# 73| +# 74|-> static cl::opt InlineThreshold( +# 75| "inline-threshold", cl::Hidden, cl::init(225), +# 76| cl::desc("Control the amount of inlining to perform (default = 225)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:78: constructor_uses_global_object: The constructor of global object "HintThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HintThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| cl::desc("Control the amount of inlining to perform (default = 225)")); +# 77| +# 78|-> static cl::opt HintThreshold( +# 79| "inlinehint-threshold", cl::Hidden, cl::init(325), +# 80| cl::desc("Threshold for inlining functions with inline hint")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:83: constructor_uses_global_object: The constructor of global object "ColdCallSiteThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdCallSiteThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| +# 82| static cl::opt +# 83|-> ColdCallSiteThreshold("inline-cold-callsite-threshold", cl::Hidden, +# 84| cl::init(45), +# 85| cl::desc("Threshold for inlining cold callsites")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:87: constructor_uses_global_object: The constructor of global object "InlineEnableCostBenefitAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineEnableCostBenefitAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| cl::desc("Threshold for inlining cold callsites")); +# 86| +# 87|-> static cl::opt InlineEnableCostBenefitAnalysis( +# 88| "inline-enable-cost-benefit-analysis", cl::Hidden, cl::init(false), +# 89| cl::desc("Enable the cost-benefit analysis for the inliner")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:91: constructor_uses_global_object: The constructor of global object "InlineSavingsMultiplier" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineSavingsMultiplier" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| cl::desc("Enable the cost-benefit analysis for the inliner")); +# 90| +# 91|-> static cl::opt InlineSavingsMultiplier( +# 92| "inline-savings-multiplier", cl::Hidden, cl::init(8), +# 93| cl::desc("Multiplier to multiply cycle savings by during inlining")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:96: constructor_uses_global_object: The constructor of global object "InlineSizeAllowance" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineSizeAllowance" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| +# 95| static cl::opt +# 96|-> InlineSizeAllowance("inline-size-allowance", cl::Hidden, cl::init(100), +# 97| cl::desc("The maximum size of a callee that get's " +# 98| "inlined without sufficient cycle savings")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:103: constructor_uses_global_object: The constructor of global object "ColdThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| // PGO before we actually hook up inliner with analysis passes such as BPI and +# 102| // BFI. +# 103|-> static cl::opt ColdThreshold( +# 104| "inlinecold-threshold", cl::Hidden, cl::init(45), +# 105| cl::desc("Threshold for inlining functions with cold attribute")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:108: constructor_uses_global_object: The constructor of global object "HotCallSiteThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HotCallSiteThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| +# 107| static cl::opt +# 108|-> HotCallSiteThreshold("hot-callsite-threshold", cl::Hidden, cl::init(3000), +# 109| cl::desc("Threshold for hot callsites ")); +# 110| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:111: constructor_uses_global_object: The constructor of global object "LocallyHotCallSiteThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LocallyHotCallSiteThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| cl::desc("Threshold for hot callsites ")); +# 110| +# 111|-> static cl::opt LocallyHotCallSiteThreshold( +# 112| "locally-hot-callsite-threshold", cl::Hidden, cl::init(525), +# 113| cl::desc("Threshold for locally hot callsites ")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:115: constructor_uses_global_object: The constructor of global object "ColdCallSiteRelFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdCallSiteRelFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 113| cl::desc("Threshold for locally hot callsites ")); +# 114| +# 115|-> static cl::opt ColdCallSiteRelFreq( +# 116| "cold-callsite-rel-freq", cl::Hidden, cl::init(2), +# 117| cl::desc("Maximum block frequency, expressed as a percentage of caller's " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:121: constructor_uses_global_object: The constructor of global object "HotCallSiteRelFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HotCallSiteRelFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| "profile information.")); +# 120| +# 121|-> static cl::opt HotCallSiteRelFreq( +# 122| "hot-callsite-rel-freq", cl::Hidden, cl::init(60), +# 123| cl::desc("Minimum block frequency, expressed as a multiple of caller's " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:128: constructor_uses_global_object: The constructor of global object "InstrCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InstrCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| +# 127| static cl::opt +# 128|-> InstrCost("inline-instr-cost", cl::Hidden, cl::init(5), +# 129| cl::desc("Cost of a single instruction when inlining")); +# 130| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:132: constructor_uses_global_object: The constructor of global object "MemAccessCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemAccessCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 130| +# 131| static cl::opt +# 132|-> MemAccessCost("inline-memaccess-cost", cl::Hidden, cl::init(0), +# 133| cl::desc("Cost of load/store instruction when inlining")); +# 134| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:135: constructor_uses_global_object: The constructor of global object "CallPenalty" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CallPenalty" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::desc("Cost of load/store instruction when inlining")); +# 134| +# 135|-> static cl::opt CallPenalty( +# 136| "inline-call-penalty", cl::Hidden, cl::init(25), +# 137| cl::desc("Call penalty that is applied per callsite when inlining")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:140: constructor_uses_global_object: The constructor of global object "StackSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> StackSizeThreshold("inline-max-stacksize", cl::Hidden, +# 141| cl::init(std::numeric_limits::max()), +# 142| cl::desc("Do not inline functions with a stack size " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:145: constructor_uses_global_object: The constructor of global object "RecurStackSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RecurStackSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 143| "that exceeds the specified limit")); +# 144| +# 145|-> static cl::opt RecurStackSizeThreshold( +# 146| "recursive-inline-max-stacksize", cl::Hidden, +# 147| cl::init(InlineConstants::TotalAllocaSizeRecursiveCaller), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:151: constructor_uses_global_object: The constructor of global object "OptComputeFullInlineCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptComputeFullInlineCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 149| "size that exceeds the specified limit")); +# 150| +# 151|-> static cl::opt OptComputeFullInlineCost( +# 152| "inline-cost-full", cl::Hidden, +# 153| cl::desc("Compute the full inline cost of a call site even when the cost " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:156: constructor_uses_global_object: The constructor of global object "InlineCallerSupersetNoBuiltin" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineCallerSupersetNoBuiltin" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 154| "exceeds the threshold.")); +# 155| +# 156|-> static cl::opt InlineCallerSupersetNoBuiltin( +# 157| "inline-caller-superset-nobuiltin", cl::Hidden, cl::init(true), +# 158| cl::desc("Allow inlining when caller has a superset of callee's nobuiltin " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:161: constructor_uses_global_object: The constructor of global object "DisableGEPConstOperand" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableGEPConstOperand" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 159| "attributes.")); +# 160| +# 161|-> static cl::opt DisableGEPConstOperand( +# 162| "disable-gep-const-evaluation", cl::Hidden, cl::init(false), +# 163| cl::desc("Disables evaluation of GetElementPtr with constant operands")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineOrder.cpp:27: constructor_uses_global_object: The constructor of global object "UseInlinePriority" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseInlinePriority" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| enum class InlinePriorityMode : int { Size, Cost, CostBenefit, ML }; +# 26| +# 27|-> static cl::opt UseInlinePriority( +# 28| "inline-priority-mode", cl::init(InlinePriorityMode::Size), cl::Hidden, +# 29| cl::desc("Choose the priority mode to use in module inline"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineOrder.cpp:38: constructor_uses_global_object: The constructor of global object "ModuleInlinerTopPriorityThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ModuleInlinerTopPriorityThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| clEnumValN(InlinePriorityMode::ML, "ml", "Use ML."))); +# 37| +# 38|-> static cl::opt ModuleInlinerTopPriorityThreshold( +# 39| "moudle-inliner-top-priority-threshold", cl::Hidden, cl::init(0), +# 40| cl::desc("The cost threshold for call sites that get inlined without the " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InteractiveModelRunner.cpp:21: constructor_uses_global_object: The constructor of global object "DebugReply" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugReply" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 19| using namespace llvm; +# 20| +# 21|-> static cl::opt DebugReply( +# 22| "interactive-model-runner-echo-reply", cl::init(false), cl::Hidden, +# 23| cl::desc("The InteractiveModelRunner will echo back to stderr " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/Loads.cpp:448: constructor_uses_global_object: The constructor of global object "llvm::DefMaxInstsToScan" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DefMaxInstsToScan" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 446| /// without documented explanation. +# 447| cl::opt +# 448|-> llvm::DefMaxInstsToScan("available-load-scan-limit", cl::init(6), cl::Hidden, +# 449| cl::desc("Use this to specify the default maximum number of instructions " +# 450| "to scan backward from a given instruction, when searching for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:76: constructor_uses_global_object: The constructor of global object "VectorizationFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VectorizationFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| +# 75| static cl::opt +# 76|-> VectorizationFactor("force-vector-width", cl::Hidden, +# 77| cl::desc("Sets the SIMD width. Zero is autoselect."), +# 78| cl::location(VectorizerParams::VectorizationFactor)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:82: constructor_uses_global_object: The constructor of global object "VectorizationInterleave" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VectorizationInterleave" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| +# 81| static cl::opt +# 82|-> VectorizationInterleave("force-vector-interleave", cl::Hidden, +# 83| cl::desc("Sets the vectorization interleave count. " +# 84| "Zero is autoselect."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:89: constructor_uses_global_object: The constructor of global object "RuntimeMemoryCheckThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RuntimeMemoryCheckThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| unsigned VectorizerParams::VectorizationInterleave; +# 88| +# 89|-> static cl::opt RuntimeMemoryCheckThreshold( +# 90| "runtime-memory-check-threshold", cl::Hidden, +# 91| cl::desc("When performing memory disambiguation checks at runtime do not " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:97: constructor_uses_global_object: The constructor of global object "MemoryCheckMergeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemoryCheckMergeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| +# 96| /// The maximum iterations used to merge memory checks +# 97|-> static cl::opt MemoryCheckMergeThreshold( +# 98| "memory-check-merge-threshold", cl::Hidden, +# 99| cl::desc("Maximum number of comparisons done when trying to merge " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:108: constructor_uses_global_object: The constructor of global object "MaxDependences" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxDependences" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| /// We collect dependences up to this threshold. +# 107| static cl::opt +# 108|-> MaxDependences("max-dependences", cl::Hidden, +# 109| cl::desc("Maximum number of dependences collected by " +# 110| "loop-access analysis (default = 100)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:124: constructor_uses_global_object: The constructor of global object "EnableMemAccessVersioning" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemAccessVersioning" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| /// } else +# 123| /// ... +# 124|-> static cl::opt EnableMemAccessVersioning( +# 125| "enable-mem-access-versioning", cl::init(true), cl::Hidden, +# 126| cl::desc("Enable symbolic stride memory access versioning")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:130: constructor_uses_global_object: The constructor of global object "EnableForwardingConflictDetection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableForwardingConflictDetection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| /// Enable store-to-load forwarding conflict detection. This option can +# 129| /// be disabled for correctness testing. +# 130|-> static cl::opt EnableForwardingConflictDetection( +# 131| "store-to-load-forwarding-conflict-detection", cl::Hidden, +# 132| cl::desc("Enable conflict detection in loop-access analysis"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:135: constructor_uses_global_object: The constructor of global object "MaxForkedSCEVDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxForkedSCEVDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::init(true)); +# 134| +# 135|-> static cl::opt MaxForkedSCEVDepth( +# 136| "max-forked-scev-depth", cl::Hidden, +# 137| cl::desc("Maximum recursion depth when finding forked SCEVs (default = 5)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:140: constructor_uses_global_object: The constructor of global object "SpeculateUnitStride" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SpeculateUnitStride" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| cl::init(5)); +# 139| +# 140|-> static cl::opt SpeculateUnitStride( +# 141| "laa-speculate-unit-stride", cl::Hidden, +# 142| cl::desc("Speculate that non-constant strides are unit in LAA"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopCacheAnalysis.cpp:45: constructor_uses_global_object: The constructor of global object "DefaultTripCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultTripCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| #define DEBUG_TYPE "loop-cache-cost" +# 44| +# 45|-> static cl::opt DefaultTripCount( +# 46| "default-trip-count", cl::init(100), cl::Hidden, +# 47| cl::desc("Use this to specify the default trip count of a loop")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopCacheAnalysis.cpp:52: constructor_uses_global_object: The constructor of global object "TemporalReuseThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TemporalReuseThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| // reuse if they access either the same memory location, or a memory location +# 51| // with distance smaller than a configurable threshold. +# 52|-> static cl::opt TemporalReuseThreshold( +# 53| "temporal-reuse-threshold", cl::init(2), cl::Hidden, +# 54| cl::desc("Use this to specify the max. distance between array elements " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopInfo.cpp:53: constructor_uses_global_object: The constructor of global object "VerifyLoopInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyLoopInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| #endif +# 52| static cl::opt +# 53|-> VerifyLoopInfoX("verify-loop-info", cl::location(VerifyLoopInfo), +# 54| cl::Hidden, cl::desc("Verify loop info (time consuming)")); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:35: constructor_uses_global_object: The constructor of global object "InteractiveChannelBaseName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveChannelBaseName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| using namespace llvm; +# 34| +# 35|-> static cl::opt InteractiveChannelBaseName( +# 36| "inliner-interactive-channel-base", cl::Hidden, +# 37| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:46: constructor_uses_global_object: The constructor of global object "InteractiveIncludeDefault" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveIncludeDefault" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| .str(); +# 45| static cl::opt +# 46|-> InteractiveIncludeDefault("inliner-interactive-include-default", cl::Hidden, +# 47| cl::desc(InclDefaultMsg)); +# 48| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:82: constructor_uses_global_object: The constructor of global object "SizeIncreaseThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SizeIncreaseThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| #define DEBUG_TYPE "inline-ml" +# 81| +# 82|-> static cl::opt SizeIncreaseThreshold( +# 83| "ml-advisor-size-increase-threshold", cl::Hidden, +# 84| cl::desc("Maximum factor by which expected native size may increase before " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:88: constructor_uses_global_object: The constructor of global object "KeepFPICache" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "KeepFPICache" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| cl::init(2.0)); +# 87| +# 88|-> static cl::opt KeepFPICache( +# 89| "ml-advisor-keep-fpi-cache", cl::Hidden, +# 90| cl::desc( + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).slt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: return_local_addr_alias: Returning pointer "" which points to local variable "LHS". +# 978| switch (Options.EvalMode) { +# 979| case ObjectSizeOpts::Mode::Min: +# 980|-> return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982| return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).slt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: return_local_addr_alias: Returning pointer "" which points to local variable "RHS". +# 978| switch (Options.EvalMode) { +# 979| case ObjectSizeOpts::Mode::Min: +# 980|-> return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982| return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).sgt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: return_local_addr_alias: Returning pointer "" which points to local variable "LHS". +# 980| return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982|-> return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 983| case ObjectSizeOpts::Mode::ExactSizeFromOffset: +# 984| return (getSizeWithOverflow(LHS).eq(getSizeWithOverflow(RHS))) ? LHS + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).sgt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: return_local_addr_alias: Returning pointer "" which points to local variable "RHS". +# 980| return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982|-> return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 983| case ObjectSizeOpts::Mode::ExactSizeFromOffset: +# 984| return (getSizeWithOverflow(LHS).eq(getSizeWithOverflow(RHS))) ? LHS + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryDependenceAnalysis.cpp:73: constructor_uses_global_object: The constructor of global object "BlockScanLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockScanLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| // Limit for the number of instructions to scan in a block. +# 72| +# 73|-> static cl::opt BlockScanLimit( +# 74| "memdep-block-scan-limit", cl::Hidden, cl::init(100), +# 75| cl::desc("The number of instructions to scan in a block in memory " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryDependenceAnalysis.cpp:79: constructor_uses_global_object: The constructor of global object "BlockNumberLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockNumberLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> BlockNumberLimit("memdep-block-number-limit", cl::Hidden, cl::init(200), +# 80| cl::desc("The number of blocks to scan during memory " +# 81| "dependency analysis (default = 200)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryProfileInfo.cpp:23: constructor_uses_global_object: The constructor of global object "MemProfLifetimeAccessDensityColdThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemProfLifetimeAccessDensityColdThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| // Upper bound on lifetime access density (accesses per byte per lifetime sec) +# 22| // for marking an allocation cold. +# 23|-> cl::opt MemProfLifetimeAccessDensityColdThreshold( +# 24| "memprof-lifetime-access-density-cold-threshold", cl::init(0.05), +# 25| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryProfileInfo.cpp:31: constructor_uses_global_object: The constructor of global object "MemProfAveLifetimeColdThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemProfAveLifetimeColdThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| // Lower bound on lifetime to mark an allocation cold (in addition to accesses +# 30| // per byte per sec above). This is to avoid pessimizing short lived objects. +# 31|-> cl::opt MemProfAveLifetimeColdThreshold( +# 32| "memprof-ave-lifetime-cold-threshold", cl::init(200), cl::Hidden, +# 33| cl::desc("The average lifetime (s) for an allocation to be considered " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryProfileInfo.cpp:38: constructor_uses_global_object: The constructor of global object "MemProfMinAveLifetimeAccessDensityHotThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemProfMinAveLifetimeAccessDensityHotThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| // Lower bound on average lifetime accesses density (total life time access +# 37| // density / alloc count) for marking an allocation hot. +# 38|-> cl::opt MemProfMinAveLifetimeAccessDensityHotThreshold( +# 39| "memprof-min-ave-lifetime-access-density-hot-threshold", cl::init(1000), +# 40| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemorySSA.cpp:63: constructor_uses_global_object: The constructor of global object "DotCFGMSSA[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotCFGMSSA[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| +# 62| static cl::opt +# 63|-> DotCFGMSSA("dot-cfg-mssa", +# 64| cl::value_desc("file name for generated dot file"), +# 65| cl::desc("file name for generated dot file"), cl::init("")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemorySSA.cpp:74: constructor_uses_global_object: The constructor of global object "MaxCheckLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxCheckLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| true) +# 73| +# 74|-> static cl::opt MaxCheckLimit( +# 75| "memssa-check-limit", cl::Hidden, cl::init(100), +# 76| cl::desc("The maximum number of stores/phis MemorySSA" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemorySSA.cpp:87: constructor_uses_global_object: The constructor of global object "VerifyMemorySSAX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyMemorySSAX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| +# 86| static cl::opt +# 87|-> VerifyMemorySSAX("verify-memoryssa", cl::location(VerifyMemorySSA), +# 88| cl::Hidden, cl::desc("Enable verification of MemorySSA.")); +# 89| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ModuleSummaryAnalysis.cpp:71: constructor_uses_global_object: The constructor of global object "FSEC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSEC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| } // namespace llvm +# 70| +# 71|-> static cl::opt FSEC( +# 72| "force-summary-edges-cold", cl::Hidden, cl::location(ForceSummaryEdgesCold), +# 73| cl::desc("Force all edges in the function summary to cold"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ModuleSummaryAnalysis.cpp:79: constructor_uses_global_object: The constructor of global object "ModuleSummaryDotFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ModuleSummaryDotFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| clEnumValN(FunctionSummary::FSHT_All, "all", "All edges."))); +# 78| +# 79|-> static cl::opt ModuleSummaryDotFile( +# 80| "module-summary-dot-file", cl::Hidden, cl::value_desc("filename"), +# 81| cl::desc("File to emit dot graph of new summary into")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ObjCARCAnalysisUtils.cpp:24: constructor_uses_global_object: The constructor of global object "EnableARCOptimizations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableARCOptimizations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| /// A handy option to enable/disable all ARC Optimizations. +# 23| bool llvm::objcarc::EnableARCOpts; +# 24|-> static cl::opt EnableARCOptimizations( +# 25| "enable-objc-arc-opts", cl::desc("enable/disable all ARC Optimizations"), +# 26| cl::location(EnableARCOpts), cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/PHITransAddr.cpp:24: constructor_uses_global_object: The constructor of global object "EnableAddPhiTranslation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAddPhiTranslation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| using namespace llvm; +# 23| +# 24|-> static cl::opt EnableAddPhiTranslation( +# 25| "gvn-add-phi-translation", cl::init(false), cl::Hidden, +# 26| cl::desc("Enable phi-translation of add instructions")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ProfileSummaryInfo.cpp:36: constructor_uses_global_object: The constructor of global object "PartialProfile" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PartialProfile" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| } // namespace llvm +# 35| +# 36|-> static cl::opt PartialProfile( +# 37| "partial-profile", cl::Hidden, cl::init(false), +# 38| cl::desc("Specify the current profile is used as a partial profile.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ProfileSummaryInfo.cpp:40: constructor_uses_global_object: The constructor of global object "ScalePartialSampleProfileWorkingSetSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ScalePartialSampleProfileWorkingSetSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| cl::desc("Specify the current profile is used as a partial profile.")); +# 39| +# 40|-> cl::opt ScalePartialSampleProfileWorkingSetSize( +# 41| "scale-partial-sample-profile-working-set-size", cl::Hidden, cl::init(true), +# 42| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ProfileSummaryInfo.cpp:47: constructor_uses_global_object: The constructor of global object "PartialSampleProfileWorkingSetSizeScaleFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PartialSampleProfileWorkingSetSizeScaleFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| "being compiled.")); +# 46| +# 47|-> static cl::opt PartialSampleProfileWorkingSetSizeScaleFactor( +# 48| "partial-sample-profile-working-set-size-scale-factor", cl::Hidden, +# 49| cl::init(0.008), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/RegionInfo.cpp:42: constructor_uses_global_object: The constructor of global object "VerifyRegionInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyRegionInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> VerifyRegionInfoX( +# 43| "verify-region-info", +# 44| cl::location(RegionInfoBase>::VerifyRegionInfo), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/RegionInfo.cpp:47: constructor_uses_global_object: The constructor of global object "printStyleX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "printStyleX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| cl::desc("Verify region info (time consuming)")); +# 46| +# 47|-> static cl::opt printStyleX("print-region-style", +# 48| cl::location(RegionInfo::printStyle), +# 49| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/RegionPrinter.cpp:28: constructor_uses_global_object: The constructor of global object "onlySimpleRegions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "onlySimpleRegions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| /// onlySimpleRegion - Show only the simple regions in the RegionViewer. +# 27| static cl::opt +# 28|-> onlySimpleRegions("only-simple-regions", +# 29| cl::desc("Show only simple regions in the graphviz viewer"), +# 30| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:153: constructor_uses_global_object: The constructor of global object "MaxBruteForceIterations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxBruteForceIterations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| +# 152| static cl::opt +# 153|-> MaxBruteForceIterations("scalar-evolution-max-iterations", cl::ReallyHidden, +# 154| cl::desc("Maximum number of iterations SCEV will " +# 155| "symbolically execute a constant " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:159: constructor_uses_global_object: The constructor of global object "VerifySCEVOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifySCEVOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 157| cl::init(100)); +# 158| +# 159|-> static cl::opt VerifySCEVOpt( +# 160| "verify-scev", cl::Hidden, cl::location(VerifySCEV), +# 161| cl::desc("Verify ScalarEvolution's backedge taken counts (slow)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:162: constructor_uses_global_object: The constructor of global object "VerifySCEVStrict" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifySCEVStrict" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 160| "verify-scev", cl::Hidden, cl::location(VerifySCEV), +# 161| cl::desc("Verify ScalarEvolution's backedge taken counts (slow)")); +# 162|-> static cl::opt VerifySCEVStrict( +# 163| "verify-scev-strict", cl::Hidden, +# 164| cl::desc("Enable stricter verification with -verify-scev is passed")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:166: constructor_uses_global_object: The constructor of global object "VerifyIR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyIR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 164| cl::desc("Enable stricter verification with -verify-scev is passed")); +# 165| +# 166|-> static cl::opt VerifyIR( +# 167| "scev-verify-ir", cl::Hidden, +# 168| cl::desc("Verify IR correctness when making sensitive SCEV queries (slow)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:171: constructor_uses_global_object: The constructor of global object "MulOpsInlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MulOpsInlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 169| cl::init(false)); +# 170| +# 171|-> static cl::opt MulOpsInlineThreshold( +# 172| "scev-mulops-inline-threshold", cl::Hidden, +# 173| cl::desc("Threshold for inlining multiplication operands into a SCEV"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:176: constructor_uses_global_object: The constructor of global object "AddOpsInlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddOpsInlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 174| cl::init(32)); +# 175| +# 176|-> static cl::opt AddOpsInlineThreshold( +# 177| "scev-addops-inline-threshold", cl::Hidden, +# 178| cl::desc("Threshold for inlining addition operands into a SCEV"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:181: constructor_uses_global_object: The constructor of global object "MaxSCEVCompareDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxSCEVCompareDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 179| cl::init(500)); +# 180| +# 181|-> static cl::opt MaxSCEVCompareDepth( +# 182| "scalar-evolution-max-scev-compare-depth", cl::Hidden, +# 183| cl::desc("Maximum depth of recursive SCEV complexity comparisons"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:186: constructor_uses_global_object: The constructor of global object "MaxSCEVOperationsImplicationDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxSCEVOperationsImplicationDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 184| cl::init(32)); +# 185| +# 186|-> static cl::opt MaxSCEVOperationsImplicationDepth( +# 187| "scalar-evolution-max-scev-operations-implication-depth", cl::Hidden, +# 188| cl::desc("Maximum depth of recursive SCEV operations implication analysis"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:191: constructor_uses_global_object: The constructor of global object "MaxValueCompareDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxValueCompareDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 189| cl::init(2)); +# 190| +# 191|-> static cl::opt MaxValueCompareDepth( +# 192| "scalar-evolution-max-value-compare-depth", cl::Hidden, +# 193| cl::desc("Maximum depth of recursive value complexity comparisons"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:197: constructor_uses_global_object: The constructor of global object "MaxArithDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxArithDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 195| +# 196| static cl::opt +# 197|-> MaxArithDepth("scalar-evolution-max-arith-depth", cl::Hidden, +# 198| cl::desc("Maximum depth of recursive arithmetics"), +# 199| cl::init(32)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:201: constructor_uses_global_object: The constructor of global object "MaxConstantEvolvingDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxConstantEvolvingDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 199| cl::init(32)); +# 200| +# 201|-> static cl::opt MaxConstantEvolvingDepth( +# 202| "scalar-evolution-max-constant-evolving-depth", cl::Hidden, +# 203| cl::desc("Maximum depth of recursive constant evolving"), cl::init(32)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:206: constructor_uses_global_object: The constructor of global object "MaxCastDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxCastDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 204| +# 205| static cl::opt +# 206|-> MaxCastDepth("scalar-evolution-max-cast-depth", cl::Hidden, +# 207| cl::desc("Maximum depth of recursive SExt/ZExt/Trunc"), +# 208| cl::init(8)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:211: constructor_uses_global_object: The constructor of global object "MaxAddRecSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxAddRecSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 209| +# 210| static cl::opt +# 211|-> MaxAddRecSize("scalar-evolution-max-add-rec-size", cl::Hidden, +# 212| cl::desc("Max coefficients in AddRec during evolving"), +# 213| cl::init(8)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:216: constructor_uses_global_object: The constructor of global object "HugeExprThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeExprThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 214| +# 215| static cl::opt +# 216|-> HugeExprThreshold("scalar-evolution-huge-expr-threshold", cl::Hidden, +# 217| cl::desc("Size of the expression which is considered huge"), +# 218| cl::init(4096)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:220: constructor_uses_global_object: The constructor of global object "RangeIterThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RangeIterThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 218| cl::init(4096)); +# 219| +# 220|-> static cl::opt RangeIterThreshold( +# 221| "scev-range-iter-threshold", cl::Hidden, +# 222| cl::desc("Threshold for switching to iteratively computing SCEV ranges"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:226: constructor_uses_global_object: The constructor of global object "ClassifyExpressions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClassifyExpressions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 224| +# 225| static cl::opt +# 226|-> ClassifyExpressions("scalar-evolution-classify-expressions", +# 227| cl::Hidden, cl::init(true), +# 228| cl::desc("When printing analysis, include information on every instruction")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:230: constructor_uses_global_object: The constructor of global object "UseExpensiveRangeSharpening" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseExpensiveRangeSharpening" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 228| cl::desc("When printing analysis, include information on every instruction")); +# 229| +# 230|-> static cl::opt UseExpensiveRangeSharpening( +# 231| "scalar-evolution-use-expensive-range-sharpening", cl::Hidden, +# 232| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:236: constructor_uses_global_object: The constructor of global object "MaxPhiSCCAnalysisSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxPhiSCCAnalysisSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 234| "be costly in terms of compile time")); +# 235| +# 236|-> static cl::opt MaxPhiSCCAnalysisSize( +# 237| "scalar-evolution-max-scc-analysis-depth", cl::Hidden, +# 238| cl::desc("Maximum amount of nodes to process while searching SCEVUnknown " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:243: constructor_uses_global_object: The constructor of global object "EnableFiniteLoopControl" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFiniteLoopControl" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 241| +# 242| static cl::opt +# 243|-> EnableFiniteLoopControl("scalar-evolution-finite-loop", cl::Hidden, +# 244| cl::desc("Handle <= and >= in finite loops"), +# 245| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:247: constructor_uses_global_object: The constructor of global object "UseContextForNoWrapFlagInference" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseContextForNoWrapFlagInference" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 245| cl::init(true)); +# 246| +# 247|-> static cl::opt UseContextForNoWrapFlagInference( +# 248| "scalar-evolution-use-context-for-no-wrap-flag-strenghening", cl::Hidden, +# 249| cl::desc("Infer nuw/nsw flags using context where suitable"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScopedNoAliasAA.cpp:51: constructor_uses_global_object: The constructor of global object "EnableScopedNoAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableScopedNoAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| // can also be achieved by stripping the associated metadata tags from IR, but +# 50| // this option is sometimes more convenient. +# 51|-> static cl::opt EnableScopedNoAlias("enable-scoped-noalias", +# 52| cl::init(true), cl::Hidden); +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/StackSafetyAnalysis.cpp:62: constructor_uses_global_object: The constructor of global object "StackSafetyMaxIterations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSafetyMaxIterations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| +# 62|-> static cl::opt StackSafetyMaxIterations("stack-safety-max-iterations", +# 63| cl::init(20), cl::Hidden); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/StackSafetyAnalysis.cpp:65: constructor_uses_global_object: The constructor of global object "StackSafetyPrint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSafetyPrint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::init(20), cl::Hidden); +# 64| +# 65|-> static cl::opt StackSafetyPrint("stack-safety-print", cl::init(false), +# 66| cl::Hidden); +# 67| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/StackSafetyAnalysis.cpp:68: constructor_uses_global_object: The constructor of global object "StackSafetyRun" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSafetyRun" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| cl::Hidden); +# 67| +# 68|-> static cl::opt StackSafetyRun("stack-safety-run", cl::init(false), +# 69| cl::Hidden); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetLibraryInfo.cpp:20: constructor_uses_global_object: The constructor of global object "ClVectorLibrary" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClVectorLibrary" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 18| using namespace llvm; +# 19| +# 20|-> static cl::opt ClVectorLibrary( +# 21| "vector-library", cl::Hidden, cl::desc("Vector functions library"), +# 22| cl::init(TargetLibraryInfoImpl::NoLibrary), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetTransformInfo.cpp:31: constructor_uses_global_object: The constructor of global object "EnableReduxCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableReduxCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| #define DEBUG_TYPE "tti" +# 30| +# 31|-> static cl::opt EnableReduxCost("costmodel-reduxcost", cl::init(false), +# 32| cl::Hidden, +# 33| cl::desc("Recognize reduction patterns.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetTransformInfo.cpp:35: constructor_uses_global_object: The constructor of global object "CacheLineSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CacheLineSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| cl::desc("Recognize reduction patterns.")); +# 34| +# 35|-> static cl::opt CacheLineSize( +# 36| "cache-line-size", cl::init(0), cl::Hidden, +# 37| cl::desc("Use this to override the target cache line size when " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetTransformInfo.cpp:40: constructor_uses_global_object: The constructor of global object "PredictableBranchThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PredictableBranchThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| "specified by the user.")); +# 39| +# 40|-> static cl::opt PredictableBranchThreshold( +# 41| "predictable-branch-threshold", cl::init(99), cl::Hidden, +# 42| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TrainingLogger.cpp:32: constructor_uses_global_object: The constructor of global object "UseSimpleLogger" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseSimpleLogger" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| // FIXME(mtrofin): remove the flag altogether +# 31| static cl::opt +# 32|-> UseSimpleLogger("tfutils-use-simplelogger", cl::init(true), cl::Hidden, +# 33| cl::desc("Output simple (non-protobuf) log.")); +# 34| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TypeBasedAliasAnalysis.cpp:130: constructor_uses_global_object: The constructor of global object "EnableTBAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTBAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| // achieved by stripping the !tbaa tags from IR, but this option is sometimes +# 129| // more convenient. +# 130|-> static cl::opt EnableTBAA("enable-tbaa", cl::init(true), cl::Hidden); +# 131| +# 132| namespace { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ValueTracking.cpp:85: constructor_uses_global_object: The constructor of global object "DomConditionsMaxUses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DomConditionsMaxUses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| // Controls the number of uses of the value searched for possible +# 84| // dominating comparisons. +# 85|-> static cl::opt DomConditionsMaxUses("dom-conditions-max-uses", +# 86| cl::Hidden, cl::init(20)); +# 87| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:35: constructor_uses_global_object: The constructor of global object "MaxInterleaveGroupFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxInterleaveGroupFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| /// Maximum factor for an interleaved memory access. +# 35|-> static cl::opt MaxInterleaveGroupFactor( +# 36| "max-interleave-group-factor", cl::Hidden, +# 37| cl::desc("Maximum factor for an interleaved access group (default = 8)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:93: constructor_uses_global_object: The constructor of global object "PrintSummaryGUIDs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintSummaryGUIDs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| using namespace llvm; +# 92| +# 93|-> static cl::opt PrintSummaryGUIDs( +# 94| "print-summary-global-ids", cl::init(false), cl::Hidden, +# 95| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:98: constructor_uses_global_object: The constructor of global object "ExpandConstantExprs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandConstantExprs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| "Print the global id for each value when reading the module summary")); +# 97| +# 98|-> static cl::opt ExpandConstantExprs( +# 99| "expand-constant-exprs", cl::Hidden, +# 100| cl::desc( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3042: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), llvm::APInt(16U, (uint16_t)Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3042: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3040| return error("Invalid float const record"); +# 3041| if (CurTy->isHalfTy()) +# 3042|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEhalf(), +# 3043| APInt(16, (uint16_t)Record[0]))); +# 3044| else if (CurTy->isBFloatTy()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3045: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::BFloat(), llvm::APInt(16U, (uint32_t)Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3045: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3043| APInt(16, (uint16_t)Record[0]))); +# 3044| else if (CurTy->isBFloatTy()) +# 3045|-> V = ConstantFP::get(Context, APFloat(APFloat::BFloat(), +# 3046| APInt(16, (uint32_t)Record[0]))); +# 3047| else if (CurTy->isFloatTy()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3048: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, (uint32_t)Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3048: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3046| APInt(16, (uint32_t)Record[0]))); +# 3047| else if (CurTy->isFloatTy()) +# 3048|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEsingle(), +# 3049| APInt(32, (uint32_t)Record[0]))); +# 3050| else if (CurTy->isDoubleTy()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3051: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3051: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3049| APInt(32, (uint32_t)Record[0]))); +# 3050| else if (CurTy->isDoubleTy()) +# 3051|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEdouble(), +# 3052| APInt(64, Record[0]))); +# 3053| else if (CurTy->isX86_FP80Ty()) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3058: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), llvm::APInt(80U, llvm::ArrayRef(Rearrange)))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3058: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3056| Rearrange[0] = (Record[1] & 0xffffLL) | (Record[0] << 16); +# 3057| Rearrange[1] = Record[0] >> 48; +# 3058|-> V = ConstantFP::get(Context, APFloat(APFloat::x87DoubleExtended(), +# 3059| APInt(80, Rearrange))); +# 3060| } else if (CurTy->isFP128Ty()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3061: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3061: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3059| APInt(80, Rearrange))); +# 3060| } else if (CurTy->isFP128Ty()) +# 3061|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEquad(), +# 3062| APInt(128, Record))); +# 3063| else if (CurTy->isPPC_FP128Ty()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3064: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3064: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3062| APInt(128, Record))); +# 3063| else if (CurTy->isPPC_FP128Ty()) +# 3064|-> V = ConstantFP::get(Context, APFloat(APFloat::PPCDoubleDouble(), +# 3065| APInt(128, Record))); +# 3066| else + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/MetadataLoader.cpp:78: constructor_uses_global_object: The constructor of global object "ImportFullTypeDefinitions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ImportFullTypeDefinitions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| /// Flag whether we need to import full type definitions for ThinLTO. +# 77| /// Currently needed for Darwin and LLDB. +# 78|-> static cl::opt ImportFullTypeDefinitions( +# 79| "import-full-type-definitions", cl::init(false), cl::Hidden, +# 80| cl::desc("Import full type definitions for ThinLTO.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/MetadataLoader.cpp:82: constructor_uses_global_object: The constructor of global object "DisableLazyLoading" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLazyLoading" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| cl::desc("Import full type definitions for ThinLTO.")); +# 81| +# 82|-> static cl::opt DisableLazyLoading( +# 83| "disable-ondemand-mds-loading", cl::init(false), cl::Hidden, +# 84| cl::desc("Force disable the lazy-loading on-demand of metadata when " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Writer/BitcodeWriter.cpp:87: constructor_uses_global_object: The constructor of global object "IndexThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IndexThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| +# 86| static cl::opt +# 87|-> IndexThreshold("bitcode-mdindex-threshold", cl::Hidden, cl::init(25), +# 88| cl::desc("Number of metadatas above which we emit an index " +# 89| "to enable lazy-loading")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Writer/BitcodeWriter.cpp:90: constructor_uses_global_object: The constructor of global object "FlushThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FlushThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| cl::desc("Number of metadatas above which we emit an index " +# 89| "to enable lazy-loading")); +# 90|-> static cl::opt FlushThreshold( +# 91| "bitcode-flush-threshold", cl::Hidden, cl::init(512), +# 92| cl::desc("The threshold (unit M) for flushing LLVM bitcode.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Writer/BitcodeWriter.cpp:94: constructor_uses_global_object: The constructor of global object "WriteRelBFToSummary" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WriteRelBFToSummary" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| cl::desc("The threshold (unit M) for flushing LLVM bitcode.")); +# 93| +# 94|-> static cl::opt WriteRelBFToSummary( +# 95| "write-relbf-to-summary", cl::Hidden, cl::init(false), +# 96| cl::desc("Write relative block frequency to function summary ")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AggressiveAntiDepBreaker.cpp:45: constructor_uses_global_object: The constructor of global object "DebugDiv" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugDiv" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| // If DebugDiv > 0 then only break antidep with (ID % DebugDiv) == DebugMod +# 44| static cl::opt +# 45|-> DebugDiv("agg-antidep-debugdiv", +# 46| cl::desc("Debug control for aggressive anti-dep breaker"), +# 47| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AggressiveAntiDepBreaker.cpp:50: constructor_uses_global_object: The constructor of global object "DebugMod" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugMod" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> DebugMod("agg-antidep-debugmod", +# 51| cl::desc("Debug control for aggressive anti-dep breaker"), +# 52| cl::init(0), cl::Hidden); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/AccelTable.cpp:408: var_decl: Declaring variable "UA". +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/AccelTable.cpp:415: uninit_use: Using uninitialized value "UA". Field "UA.InlineElts" is uninitialized. +# 413| } +# 414| UA.push_back({dwarf::DW_IDX_die_offset, dwarf::DW_FORM_ref4}); +# 415|-> return UA; +# 416| } +# 417| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:134: constructor_uses_global_object: The constructor of global object "BasicBlockProfileDump[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BasicBlockProfileDump[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| #define DEBUG_TYPE "asm-printer" +# 133| +# 134|-> static cl::opt BasicBlockProfileDump( +# 135| "mbb-profile-dump", cl::Hidden, +# 136| cl::desc("Basic block profile dump for external cost modelling. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp:30: constructor_uses_global_object: The constructor of global object "TrimVarLocs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TrimVarLocs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| /// If true, we drop variable location ranges which exist entirely outside the +# 29| /// variable's lexical scope instruction ranges. +# 30|-> static cl::opt TrimVarLocs("trim-var-locs", cl::Hidden, cl::init(true)); +# 31| +# 32| std::optional + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:69: constructor_uses_global_object: The constructor of global object "UseDwarfRangesBaseAddressSpecifier" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseDwarfRangesBaseAddressSpecifier" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| STATISTIC(NumCSParams, "Number of dbg call site params created"); +# 68| +# 69|-> static cl::opt UseDwarfRangesBaseAddressSpecifier( +# 70| "use-dwarf-ranges-base-address-specifier", cl::Hidden, +# 71| cl::desc("Use base address specifiers in debug_ranges"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:73: constructor_uses_global_object: The constructor of global object "GenerateARangeSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateARangeSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::desc("Use base address specifiers in debug_ranges"), cl::init(false)); +# 72| +# 73|-> static cl::opt GenerateARangeSection("generate-arange-section", +# 74| cl::Hidden, +# 75| cl::desc("Generate dwarf aranges"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:79: constructor_uses_global_object: The constructor of global object "GenerateDwarfTypeUnits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateDwarfTypeUnits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> GenerateDwarfTypeUnits("generate-type-units", cl::Hidden, +# 80| cl::desc("Generate DWARF4 type units."), +# 81| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:83: constructor_uses_global_object: The constructor of global object "SplitDwarfCrossCuReferences" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitDwarfCrossCuReferences" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| cl::init(false)); +# 82| +# 83|-> static cl::opt SplitDwarfCrossCuReferences( +# 84| "split-dwarf-cross-cu-references", cl::Hidden, +# 85| cl::desc("Enable cross-cu references in DWO files"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:89: constructor_uses_global_object: The constructor of global object "UnknownLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnknownLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| enum DefaultOnOff { Default, Enable, Disable }; +# 88| +# 89|-> static cl::opt UnknownLocations( +# 90| "use-unknown-locations", cl::Hidden, +# 91| cl::desc("Make an absence of debug location information explicit."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:96: constructor_uses_global_object: The constructor of global object "AccelTables" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AccelTables" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| cl::init(Default)); +# 95| +# 96|-> static cl::opt AccelTables( +# 97| "accel-tables", cl::Hidden, cl::desc("Output dwarf accelerator tables."), +# 98| cl::values(clEnumValN(AccelTableKind::Default, "Default", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:106: constructor_uses_global_object: The constructor of global object "DwarfInlinedStrings" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfInlinedStrings" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| +# 105| static cl::opt +# 106|-> DwarfInlinedStrings("dwarf-inlined-strings", cl::Hidden, +# 107| cl::desc("Use inlined strings rather than string section."), +# 108| cl::values(clEnumVal(Default, "Default for platform"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:114: constructor_uses_global_object: The constructor of global object "NoDwarfRangesSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoDwarfRangesSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| +# 113| static cl::opt +# 114|-> NoDwarfRangesSection("no-dwarf-ranges-section", cl::Hidden, +# 115| cl::desc("Disable emission .debug_ranges section."), +# 116| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:118: constructor_uses_global_object: The constructor of global object "DwarfSectionsAsReferences" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfSectionsAsReferences" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| cl::init(false)); +# 117| +# 118|-> static cl::opt DwarfSectionsAsReferences( +# 119| "dwarf-sections-as-references", cl::Hidden, +# 120| cl::desc("Use sections+offset as references rather than labels."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:126: constructor_uses_global_object: The constructor of global object "UseGNUDebugMacro" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseGNUDebugMacro" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| +# 125| static cl::opt +# 126|-> UseGNUDebugMacro("use-gnu-debug-macro", cl::Hidden, +# 127| cl::desc("Emit the GNU .debug_macro format with DWARF <5"), +# 128| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:130: constructor_uses_global_object: The constructor of global object "DwarfOpConvert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfOpConvert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| cl::init(false)); +# 129| +# 130|-> static cl::opt DwarfOpConvert( +# 131| "dwarf-op-convert", cl::Hidden, +# 132| cl::desc("Enable use of the DWARFv5 DW_OP_convert operator"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:144: constructor_uses_global_object: The constructor of global object "DwarfLinkageNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfLinkageNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 142| +# 143| static cl::opt +# 144|-> DwarfLinkageNames("dwarf-linkage-names", cl::Hidden, +# 145| cl::desc("Which DWARF linkage-name attributes to emit."), +# 146| cl::values(clEnumValN(DefaultLinkageNames, "Default", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:153: constructor_uses_global_object: The constructor of global object "MinimizeAddrInV5Option" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MinimizeAddrInV5Option" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| cl::init(DefaultLinkageNames)); +# 152| +# 153|-> static cl::opt MinimizeAddrInV5Option( +# 154| "minimize-addr-in-v5", cl::Hidden, +# 155| cl::desc("Always use DW_AT_ranges in DWARFv5 whenever it could allow more " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1569: var_decl: Declaring variable "LocEntry". +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1570: uninit_use_in_call: Using uninitialized value "LocEntry". Field "LocEntry.Constant" is uninitialized when calling "DbgValueLoc". +# 1568| MachineLocation MLoc(VI.getEntryValueRegister(), /*IsIndirect*/ true); +# 1569| auto LocEntry = DbgValueLocEntry(MLoc); +# 1570|-> RegVar->initializeDbgValue(DbgValueLoc(VI.Expr, LocEntry)); +# 1571| } +# 1572| LLVM_DEBUG(dbgs() << "Created DbgVariable for " << VI.Var->getName() + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:41: constructor_uses_global_object: The constructor of global object "MaxNumBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxNumBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> MaxNumBlocks("debug-ata-max-blocks", cl::init(10000), +# 42| cl::desc("Maximum num basic blocks before debug info dropped"), +# 43| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:46: constructor_uses_global_object: The constructor of global object "EnableMemLocFragFill" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemLocFragFill" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| /// Option for debugging the pass, determines if the memory location fragment +# 45| /// filling happens after generating the variable locations. +# 46|-> static cl::opt EnableMemLocFragFill("mem-loc-frag-fill", cl::init(true), +# 47| cl::Hidden); +# 48| /// Print the results of the analysis. Respects -filter-print-funcs. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:49: constructor_uses_global_object: The constructor of global object "PrintResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::Hidden); +# 48| /// Print the results of the analysis. Respects -filter-print-funcs. +# 49|-> static cl::opt PrintResults("print-debug-ata", cl::init(false), +# 50| cl::Hidden); +# 51| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:56: constructor_uses_global_object: The constructor of global object "CoalesceAdjacentFragmentsOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CoalesceAdjacentFragmentsOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| /// construction for each explicitly stated variable fragment. +# 55| static cl::opt +# 56|-> CoalesceAdjacentFragmentsOpt("debug-ata-coalesce-frags", cl::Hidden); +# 57| +# 58| // Implicit conversions are disabled for enum class types, so unfortunately we + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BasicBlockSections.cpp:89: constructor_uses_global_object: The constructor of global object "llvm::BBSectionsColdTextPrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::BBSectionsColdTextPrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| // section granularity. Defaults to ".text.split." which is recognized by lld +# 88| // via the `-z keep-text-section-prefix` flag. +# 89|-> cl::opt llvm::BBSectionsColdTextPrefix( +# 90| "bbsections-cold-text-prefix", +# 91| cl::desc("The text prefix to use for cold basic block clusters"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BasicBlockSections.cpp:94: constructor_uses_global_object: The constructor of global object "BBSectionsDetectSourceDrift" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BBSectionsDetectSourceDrift" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| cl::init(".text.split."), cl::Hidden); +# 93| +# 94|-> static cl::opt BBSectionsDetectSourceDrift( +# 95| "bbsections-detect-source-drift", +# 96| cl::desc("This checks if there is a fdo instr. profile hash " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BasicTargetTransformInfo.cpp:28: constructor_uses_global_object: The constructor of global object "llvm::PartialUnrollingThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PartialUnrollingThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| // provide a definition. +# 27| cl::opt +# 28|-> llvm::PartialUnrollingThreshold("partial-unrolling-threshold", cl::init(0), +# 29| cl::desc("Threshold for partial unrolling"), +# 30| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BranchFolding.cpp:73: constructor_uses_global_object: The constructor of global object "FlagEnableTailMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FlagEnableTailMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| STATISTIC(NumTailCalls, "Number of tail calls optimized"); +# 72| +# 73|-> static cl::opt FlagEnableTailMerge("enable-tail-merge", +# 74| cl::init(cl::BOU_UNSET), cl::Hidden); +# 75| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BranchFolding.cpp:78: constructor_uses_global_object: The constructor of global object "TailMergeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailMergeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| // Throttle for huge numbers of predecessors (compile speed problems) +# 77| static cl::opt +# 78|-> TailMergeThreshold("tail-merge-threshold", +# 79| cl::desc("Max number of predecessors to consider tail merging"), +# 80| cl::init(150), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BranchFolding.cpp:85: constructor_uses_global_object: The constructor of global object "TailMergeSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailMergeSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| // TODO: This should be replaced with a target query. +# 84| static cl::opt +# 85|-> TailMergeSize("tail-merge-size", +# 86| cl::desc("Min number of instructions to consider tail merging"), +# 87| cl::init(3), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CFIInstrInserter.cpp:31: constructor_uses_global_object: The constructor of global object "VerifyCFI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyCFI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt VerifyCFI("verify-cfiinstrs", +# 32| cl::desc("Verify Call Frame Information instructions"), +# 33| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:135: constructor_uses_global_object: The constructor of global object "DisableBranchOpts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBranchOpts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| STATISTIC(NumStoreExtractExposed, "Number of store(extractelement) exposed"); +# 134| +# 135|-> static cl::opt DisableBranchOpts( +# 136| "disable-cgp-branch-opts", cl::Hidden, cl::init(false), +# 137| cl::desc("Disable branch optimizations in CodeGenPrepare")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:140: constructor_uses_global_object: The constructor of global object "DisableGCOpts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableGCOpts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> DisableGCOpts("disable-cgp-gc-opts", cl::Hidden, cl::init(false), +# 141| cl::desc("Disable GC optimizations in CodeGenPrepare")); +# 142| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:144: constructor_uses_global_object: The constructor of global object "DisableSelectToBranch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSelectToBranch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 142| +# 143| static cl::opt +# 144|-> DisableSelectToBranch("disable-cgp-select2branch", cl::Hidden, +# 145| cl::init(false), +# 146| cl::desc("Disable select to branch conversion.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:149: constructor_uses_global_object: The constructor of global object "AddrSinkUsingGEPs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkUsingGEPs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| +# 148| static cl::opt +# 149|-> AddrSinkUsingGEPs("addr-sink-using-gep", cl::Hidden, cl::init(true), +# 150| cl::desc("Address sinking in CGP using GEPs.")); +# 151| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:153: constructor_uses_global_object: The constructor of global object "EnableAndCmpSinking" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAndCmpSinking" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| +# 152| static cl::opt +# 153|-> EnableAndCmpSinking("enable-andcmp-sinking", cl::Hidden, cl::init(true), +# 154| cl::desc("Enable sinkinig and/cmp into branches.")); +# 155| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:156: constructor_uses_global_object: The constructor of global object "DisableStoreExtract" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableStoreExtract" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 154| cl::desc("Enable sinkinig and/cmp into branches.")); +# 155| +# 156|-> static cl::opt DisableStoreExtract( +# 157| "disable-cgp-store-extract", cl::Hidden, cl::init(false), +# 158| cl::desc("Disable store(extract) optimizations in CodeGenPrepare")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:160: constructor_uses_global_object: The constructor of global object "StressStoreExtract" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressStoreExtract" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 158| cl::desc("Disable store(extract) optimizations in CodeGenPrepare")); +# 159| +# 160|-> static cl::opt StressStoreExtract( +# 161| "stress-cgp-store-extract", cl::Hidden, cl::init(false), +# 162| cl::desc("Stress test store(extract) optimizations in CodeGenPrepare")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:164: constructor_uses_global_object: The constructor of global object "DisableExtLdPromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableExtLdPromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 162| cl::desc("Stress test store(extract) optimizations in CodeGenPrepare")); +# 163| +# 164|-> static cl::opt DisableExtLdPromotion( +# 165| "disable-cgp-ext-ld-promotion", cl::Hidden, cl::init(false), +# 166| cl::desc("Disable ext(promotable(ld)) -> promoted(ext(ld)) optimization in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:169: constructor_uses_global_object: The constructor of global object "StressExtLdPromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressExtLdPromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 167| "CodeGenPrepare")); +# 168| +# 169|-> static cl::opt StressExtLdPromotion( +# 170| "stress-cgp-ext-ld-promotion", cl::Hidden, cl::init(false), +# 171| cl::desc("Stress test ext(promotable(ld)) -> promoted(ext(ld)) " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:174: constructor_uses_global_object: The constructor of global object "DisablePreheaderProtect" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePreheaderProtect" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 172| "optimization in CodeGenPrepare")); +# 173| +# 174|-> static cl::opt DisablePreheaderProtect( +# 175| "disable-preheader-prot", cl::Hidden, cl::init(false), +# 176| cl::desc("Disable protection against removing loop preheaders")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:178: constructor_uses_global_object: The constructor of global object "ProfileGuidedSectionPrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileGuidedSectionPrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 176| cl::desc("Disable protection against removing loop preheaders")); +# 177| +# 178|-> static cl::opt ProfileGuidedSectionPrefix( +# 179| "profile-guided-section-prefix", cl::Hidden, cl::init(true), +# 180| cl::desc("Use profile info to add section prefix for hot/cold functions")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:182: constructor_uses_global_object: The constructor of global object "ProfileUnknownInSpecialSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileUnknownInSpecialSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 180| cl::desc("Use profile info to add section prefix for hot/cold functions")); +# 181| +# 182|-> static cl::opt ProfileUnknownInSpecialSection( +# 183| "profile-unknown-in-special-section", cl::Hidden, +# 184| cl::desc("In profiling mode like sampleFDO, if a function doesn't have " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:192: constructor_uses_global_object: The constructor of global object "BBSectionsGuidedSectionPrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BBSectionsGuidedSectionPrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 190| "RAM for example. ")); +# 191| +# 192|-> static cl::opt BBSectionsGuidedSectionPrefix( +# 193| "bbsections-guided-section-prefix", cl::Hidden, cl::init(true), +# 194| cl::desc("Use the basic-block-sections profile to determine the text " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:201: constructor_uses_global_object: The constructor of global object "FreqRatioToSkipMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FreqRatioToSkipMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 199| "profiles.")); +# 200| +# 201|-> static cl::opt FreqRatioToSkipMerge( +# 202| "cgp-freq-ratio-to-skip-merge", cl::Hidden, cl::init(2), +# 203| cl::desc("Skip merging empty blocks if (frequency of empty block) / " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:206: constructor_uses_global_object: The constructor of global object "ForceSplitStore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceSplitStore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 204| "(frequency of destination block) is greater than this ratio")); +# 205| +# 206|-> static cl::opt ForceSplitStore( +# 207| "force-split-store", cl::Hidden, cl::init(false), +# 208| cl::desc("Force store splitting no matter what the target query says.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:210: constructor_uses_global_object: The constructor of global object "EnableTypePromotionMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTypePromotionMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 208| cl::desc("Force store splitting no matter what the target query says.")); +# 209| +# 210|-> static cl::opt EnableTypePromotionMerge( +# 211| "cgp-type-promotion-merge", cl::Hidden, +# 212| cl::desc("Enable merging of redundant sexts when one is dominating" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:216: constructor_uses_global_object: The constructor of global object "DisableComplexAddrModes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableComplexAddrModes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 214| cl::init(true)); +# 215| +# 216|-> static cl::opt DisableComplexAddrModes( +# 217| "disable-complex-addr-modes", cl::Hidden, cl::init(false), +# 218| cl::desc("Disables combining addressing modes with different parts " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:222: constructor_uses_global_object: The constructor of global object "AddrSinkNewPhis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkNewPhis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 220| +# 221| static cl::opt +# 222|-> AddrSinkNewPhis("addr-sink-new-phis", cl::Hidden, cl::init(false), +# 223| cl::desc("Allow creation of Phis in Address sinking.")); +# 224| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:225: constructor_uses_global_object: The constructor of global object "AddrSinkNewSelects" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkNewSelects" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 223| cl::desc("Allow creation of Phis in Address sinking.")); +# 224| +# 225|-> static cl::opt AddrSinkNewSelects( +# 226| "addr-sink-new-select", cl::Hidden, cl::init(true), +# 227| cl::desc("Allow creation of selects in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:229: constructor_uses_global_object: The constructor of global object "AddrSinkCombineBaseReg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineBaseReg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 227| cl::desc("Allow creation of selects in Address sinking.")); +# 228| +# 229|-> static cl::opt AddrSinkCombineBaseReg( +# 230| "addr-sink-combine-base-reg", cl::Hidden, cl::init(true), +# 231| cl::desc("Allow combining of BaseReg field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:233: constructor_uses_global_object: The constructor of global object "AddrSinkCombineBaseGV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineBaseGV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 231| cl::desc("Allow combining of BaseReg field in Address sinking.")); +# 232| +# 233|-> static cl::opt AddrSinkCombineBaseGV( +# 234| "addr-sink-combine-base-gv", cl::Hidden, cl::init(true), +# 235| cl::desc("Allow combining of BaseGV field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:237: constructor_uses_global_object: The constructor of global object "AddrSinkCombineBaseOffs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineBaseOffs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 235| cl::desc("Allow combining of BaseGV field in Address sinking.")); +# 236| +# 237|-> static cl::opt AddrSinkCombineBaseOffs( +# 238| "addr-sink-combine-base-offs", cl::Hidden, cl::init(true), +# 239| cl::desc("Allow combining of BaseOffs field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:241: constructor_uses_global_object: The constructor of global object "AddrSinkCombineScaledReg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineScaledReg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 239| cl::desc("Allow combining of BaseOffs field in Address sinking.")); +# 240| +# 241|-> static cl::opt AddrSinkCombineScaledReg( +# 242| "addr-sink-combine-scaled-reg", cl::Hidden, cl::init(true), +# 243| cl::desc("Allow combining of ScaledReg field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:246: constructor_uses_global_object: The constructor of global object "EnableGEPOffsetSplit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGEPOffsetSplit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 244| +# 245| static cl::opt +# 246|-> EnableGEPOffsetSplit("cgp-split-large-offset-gep", cl::Hidden, +# 247| cl::init(true), +# 248| cl::desc("Enable splitting large offset of GEP.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:250: constructor_uses_global_object: The constructor of global object "EnableICMP_EQToICMP_ST" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableICMP_EQToICMP_ST" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 248| cl::desc("Enable splitting large offset of GEP.")); +# 249| +# 250|-> static cl::opt EnableICMP_EQToICMP_ST( +# 251| "cgp-icmp-eq2icmp-st", cl::Hidden, cl::init(false), +# 252| cl::desc("Enable ICMP_EQ to ICMP_S(L|G)T conversion.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:255: constructor_uses_global_object: The constructor of global object "VerifyBFIUpdates" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyBFIUpdates" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 253| +# 254| static cl::opt +# 255|-> VerifyBFIUpdates("cgp-verify-bfi-updates", cl::Hidden, cl::init(false), +# 256| cl::desc("Enable BFI update verification for " +# 257| "CodeGenPrepare.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:260: constructor_uses_global_object: The constructor of global object "OptimizePhiTypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptimizePhiTypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 258| +# 259| static cl::opt +# 260|-> OptimizePhiTypes("cgp-optimize-phi-types", cl::Hidden, cl::init(true), +# 261| cl::desc("Enable converting phi types in CodeGenPrepare")); +# 262| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:264: constructor_uses_global_object: The constructor of global object "HugeFuncThresholdInCGPP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeFuncThresholdInCGPP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 262| +# 263| static cl::opt +# 264|-> HugeFuncThresholdInCGPP("cgpp-huge-func", cl::init(10000), cl::Hidden, +# 265| cl::desc("Least BB number of huge function.")); +# 266| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:268: constructor_uses_global_object: The constructor of global object "MaxAddressUsersToScan" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxAddressUsersToScan" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 266| +# 267| static cl::opt +# 268|-> MaxAddressUsersToScan("cgp-max-address-users-to-scan", cl::init(100), +# 269| cl::Hidden, +# 270| cl::desc("Max number of address users to look at")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ComplexDeinterleavingPass.cpp:83: constructor_uses_global_object: The constructor of global object "ComplexDeinterleavingEnabled" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ComplexDeinterleavingEnabled" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| STATISTIC(NumComplexTransformations, "Amount of complex patterns transformed"); +# 82| +# 83|-> static cl::opt ComplexDeinterleavingEnabled( +# 84| "enable-complex-deinterleaving", +# 85| cl::desc("Enable generation of complex instructions"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/DFAPacketizer.cpp:48: constructor_uses_global_object: The constructor of global object "InstrLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InstrLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| #define DEBUG_TYPE "packets" +# 47| +# 48|-> static cl::opt InstrLimit("dfa-instr-limit", cl::Hidden, +# 49| cl::init(0), cl::desc("If present, stops packetizing after N instructions")); +# 50| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/EarlyIfConversion.cpp:48: constructor_uses_global_object: The constructor of global object "BlockInstrLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockInstrLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| // This bypasses all other heuristics, so it should be set fairly high. +# 47| static cl::opt +# 48|-> BlockInstrLimit("early-ifcvt-limit", cl::init(30), cl::Hidden, +# 49| cl::desc("Maximum number of instructions per speculated block.")); +# 50| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/EarlyIfConversion.cpp:52: constructor_uses_global_object: The constructor of global object "Stress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Stress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| +# 51| // Stress testing mode - disable heuristics. +# 52|-> static cl::opt Stress("stress-early-ifcvt", cl::Hidden, +# 53| cl::desc("Turn all knobs to 11")); +# 54| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/EdgeBundles.cpp:26: constructor_uses_global_object: The constructor of global object "ViewEdgeBundles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewEdgeBundles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> ViewEdgeBundles("view-edge-bundles", cl::Hidden, +# 27| cl::desc("Pop up a window to show edge bundle graphs")); +# 28| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandLargeDivRem.cpp:36: constructor_uses_global_object: The constructor of global object "ExpandDivRemBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandDivRemBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> ExpandDivRemBits("expand-div-rem-bits", cl::Hidden, +# 37| cl::init(llvm::IntegerType::MAX_INT_BITS), +# 38| cl::desc("div and rem instructions on integers with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandLargeFpConvert.cpp:35: constructor_uses_global_object: The constructor of global object "ExpandFpConvertBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandFpConvertBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> ExpandFpConvertBits("expand-fp-convert-bits", cl::Hidden, +# 36| cl::init(llvm::IntegerType::MAX_INT_BITS), +# 37| cl::desc("fp convert instructions on integers with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:47: constructor_uses_global_object: The constructor of global object "MemCmpEqZeroNumLoadsPerBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemCmpEqZeroNumLoadsPerBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| STATISTIC(NumMemCmpInlined, "Number of inlined memcmp calls"); +# 46| +# 47|-> static cl::opt MemCmpEqZeroNumLoadsPerBlock( +# 48| "memcmp-num-loads-per-block", cl::Hidden, cl::init(1), +# 49| cl::desc("The number of loads per basic block for inline expansion of " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:52: constructor_uses_global_object: The constructor of global object "MaxLoadsPerMemcmp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxLoadsPerMemcmp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| "memcmp that is only being compared against zero.")); +# 51| +# 52|-> static cl::opt MaxLoadsPerMemcmp( +# 53| "max-loads-per-memcmp", cl::Hidden, +# 54| cl::desc("Set maximum number of loads used in expanded memcmp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:56: constructor_uses_global_object: The constructor of global object "MaxLoadsPerMemcmpOptSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxLoadsPerMemcmpOptSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| cl::desc("Set maximum number of loads used in expanded memcmp")); +# 55| +# 56|-> static cl::opt MaxLoadsPerMemcmpOptSize( +# 57| "max-loads-per-memcmp-opt-size", cl::Hidden, +# 58| cl::desc("Set maximum number of loads used in expanded memcmp for -Os/Oz")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandVectorPredication.cpp:48: constructor_uses_global_object: The constructor of global object "EVLTransformOverride[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EVLTransformOverride[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| // Override options. +# 48|-> static cl::opt EVLTransformOverride( +# 49| "expandvp-override-evl-transform", cl::init(""), cl::Hidden, +# 50| cl::desc("Options: " VPINTERNAL_VPLEGAL_CASES + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandVectorPredication.cpp:56: constructor_uses_global_object: The constructor of global object "MaskTransformOverride[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaskTransformOverride[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| "testing).")); +# 55| +# 56|-> static cl::opt MaskTransformOverride( +# 57| "expandvp-override-mask-transform", cl::init(""), cl::Hidden, +# 58| cl::desc("Options: " VPINTERNAL_VPLEGAL_CASES + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:40: constructor_uses_global_object: The constructor of global object "FixupSCSExtendSlotSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixupSCSExtendSlotSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| STATISTIC(NumSpillSlotsExtended, "Number of spill slots extended"); +# 39| +# 40|-> static cl::opt FixupSCSExtendSlotSize( +# 41| "fixup-scs-extend-slot-size", cl::Hidden, cl::init(false), +# 42| cl::desc("Allow spill in spill slot of greater size than register size"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:45: constructor_uses_global_object: The constructor of global object "PassGCPtrInCSR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PassGCPtrInCSR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::Hidden); +# 44| +# 45|-> static cl::opt PassGCPtrInCSR( +# 46| "fixup-allow-gcptr-in-csr", cl::Hidden, cl::init(false), +# 47| cl::desc("Allow passing GC Pointer arguments in callee saved registers")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:49: constructor_uses_global_object: The constructor of global object "EnableCopyProp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCopyProp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::desc("Allow passing GC Pointer arguments in callee saved registers")); +# 48| +# 49|-> static cl::opt EnableCopyProp( +# 50| "fixup-scs-enable-copy-propagation", cl::Hidden, cl::init(true), +# 51| cl::desc("Enable simple copy propagation during register reloading")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:55: constructor_uses_global_object: The constructor of global object "MaxStatepointsWithRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxStatepointsWithRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| // This is purely debugging option. +# 54| // It may be handy for investigating statepoint spilling issues. +# 55|-> static cl::opt MaxStatepointsWithRegs( +# 56| "fixup-max-csr-statepoints", cl::Hidden, +# 57| cl::desc("Max number of statepoints allowed to pass GC Ptrs in registers")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Combiner.cpp:31: constructor_uses_global_object: The constructor of global object "llvm::GICombinerOptionCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "llvm::GICombinerOptionCategory" might be created before "GlobalParser" is available. +# 29| +# 30| namespace llvm { +# 31|-> cl::OptionCategory GICombinerOptionCategory( +# 32| "GlobalISel Combiner", +# 33| "Control the rules which are enabled. These options all take a comma " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp:47: constructor_uses_global_object: The constructor of global object "ForceLegalIndexing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceLegalIndexing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| // addressing. +# 46| static cl::opt +# 47|-> ForceLegalIndexing("force-legal-indexing", cl::Hidden, cl::init(false), +# 48| cl::desc("Force all indexed operations to be " +# 49| "legal for the GlobalISel combiner")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/IRTranslator.cpp:98: constructor_uses_global_object: The constructor of global object "EnableCSEInIRTranslator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCSEInIRTranslator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| +# 97| static cl::opt +# 98|-> EnableCSEInIRTranslator("enable-cse-in-irtranslator", +# 99| cl::desc("Should enable CSE in irtranslator"), +# 100| cl::Optional, cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Legalizer.cpp:39: constructor_uses_global_object: The constructor of global object "EnableCSEInLegalizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCSEInLegalizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> EnableCSEInLegalizer("enable-cse-in-legalizer", +# 40| cl::desc("Should enable CSE in Legalizer"), +# 41| cl::Optional, cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Legalizer.cpp:44: constructor_uses_global_object: The constructor of global object "AllowGInsertAsArtifact" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowGInsertAsArtifact" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| // This is a temporary hack, should be removed soon. +# 44|-> static cl::opt AllowGInsertAsArtifact( +# 45| "allow-ginsert-as-artifact", +# 46| cl::desc("Allow G_INSERT to be considered an artifact. Hack around AMDGPU " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/LegalizerInfo.cpp:32: constructor_uses_global_object: The constructor of global object "llvm::DisableGISelLegalityCheck" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableGISelLegalityCheck" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| #define DEBUG_TYPE "legalizer-info" +# 31| +# 32|-> cl::opt llvm::DisableGISelLegalityCheck( +# 33| "disable-gisel-legality-check", +# 34| cl::desc("Don't verify that MIR is fully legal between GlobalISel passes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/RegBankSelect.cpp:53: constructor_uses_global_object: The constructor of global object "RegBankSelectMode" itself makes use of global object "llvm::cl::AllSubCommands" defined in another compilation unit. The order of construction is unspecified, so "RegBankSelectMode" might be created before "llvm::cl::AllSubCommands" is available. +# 51| using namespace llvm; +# 52| +# 53|-> static cl::opt RegBankSelectMode( +# 54| cl::desc("Mode of the RegBankSelect pass"), cl::Hidden, cl::Optional, +# 55| cl::values(clEnumValN(RegBankSelect::Mode::Fast, "regbankselect-fast", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:108: constructor_uses_global_object: The constructor of global object "EnableGlobalMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| // FIXME: This is only useful as a last-resort way to disable the pass. +# 107| static cl::opt +# 108|-> EnableGlobalMerge("enable-global-merge", cl::Hidden, +# 109| cl::desc("Enable the global merge pass"), +# 110| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:113: constructor_uses_global_object: The constructor of global object "GlobalMergeMaxOffset" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalMergeMaxOffset" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| +# 112| static cl::opt +# 113|-> GlobalMergeMaxOffset("global-merge-max-offset", cl::Hidden, +# 114| cl::desc("Set maximum offset for global merge pass"), +# 115| cl::init(0)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:117: constructor_uses_global_object: The constructor of global object "GlobalMergeGroupByUse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalMergeGroupByUse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 115| cl::init(0)); +# 116| +# 117|-> static cl::opt GlobalMergeGroupByUse( +# 118| "global-merge-group-by-use", cl::Hidden, +# 119| cl::desc("Improve global merge pass to look at uses"), cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:121: constructor_uses_global_object: The constructor of global object "GlobalMergeIgnoreSingleUse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalMergeIgnoreSingleUse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| cl::desc("Improve global merge pass to look at uses"), cl::init(true)); +# 120| +# 121|-> static cl::opt GlobalMergeIgnoreSingleUse( +# 122| "global-merge-ignore-single-use", cl::Hidden, +# 123| cl::desc("Improve global merge pass to ignore globals only used alone"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:127: constructor_uses_global_object: The constructor of global object "EnableGlobalMergeOnConst" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMergeOnConst" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 125| +# 126| static cl::opt +# 127|-> EnableGlobalMergeOnConst("global-merge-on-const", cl::Hidden, +# 128| cl::desc("Enable global merge pass on constants"), +# 129| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:134: constructor_uses_global_object: The constructor of global object "EnableGlobalMergeOnExternal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMergeOnExternal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| // it if only we are sure this optimization could always benefit all targets. +# 133| static cl::opt +# 134|-> EnableGlobalMergeOnExternal("global-merge-on-external", cl::Hidden, +# 135| cl::desc("Enable global merge pass on external linkage")); +# 136| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:53: constructor_uses_global_object: The constructor of global object "ForceHardwareLoops" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceHardwareLoops" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| static cl::opt +# 53|-> ForceHardwareLoops("force-hardware-loops", cl::Hidden, cl::init(false), +# 54| cl::desc("Force hardware loops intrinsics to be inserted")); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:57: constructor_uses_global_object: The constructor of global object "ForceHardwareLoopPHI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceHardwareLoopPHI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| static cl::opt +# 57|-> ForceHardwareLoopPHI( +# 58| "force-hardware-loop-phi", cl::Hidden, cl::init(false), +# 59| cl::desc("Force hardware loop counter to be updated through a phi")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:62: constructor_uses_global_object: The constructor of global object "ForceNestedLoop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceNestedLoop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> ForceNestedLoop("force-nested-hardware-loop", cl::Hidden, cl::init(false), +# 63| cl::desc("Force allowance of nested hardware loops")); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:66: constructor_uses_global_object: The constructor of global object "LoopDecrement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoopDecrement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| static cl::opt +# 66|-> LoopDecrement("hardware-loop-decrement", cl::Hidden, cl::init(1), +# 67| cl::desc("Set the loop decrement value")); +# 68| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:70: constructor_uses_global_object: The constructor of global object "CounterBitWidth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CounterBitWidth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| +# 69| static cl::opt +# 70|-> CounterBitWidth("hardware-loop-counter-bitwidth", cl::Hidden, cl::init(32), +# 71| cl::desc("Set the loop counter bitwidth")); +# 72| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:74: constructor_uses_global_object: The constructor of global object "ForceGuardLoopEntry" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceGuardLoopEntry" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| +# 73| static cl::opt +# 74|-> ForceGuardLoopEntry( +# 75| "force-hardware-loop-guard", cl::Hidden, cl::init(false), +# 76| cl::desc("Force generation of loop guard intrinsic")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:61: constructor_uses_global_object: The constructor of global object "IfCvtFnStart" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtFnStart" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| +# 60| // Hidden options for help debugging. +# 61|-> static cl::opt IfCvtFnStart("ifcvt-fn-start", cl::init(-1), cl::Hidden); +# 62| static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63| static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:62: constructor_uses_global_object: The constructor of global object "IfCvtFnStop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtFnStop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| // Hidden options for help debugging. +# 61| static cl::opt IfCvtFnStart("ifcvt-fn-start", cl::init(-1), cl::Hidden); +# 62|-> static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63| static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); +# 64| static cl::opt DisableSimple("disable-ifcvt-simple", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:63: constructor_uses_global_object: The constructor of global object "IfCvtLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| static cl::opt IfCvtFnStart("ifcvt-fn-start", cl::init(-1), cl::Hidden); +# 62| static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63|-> static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); +# 64| static cl::opt DisableSimple("disable-ifcvt-simple", +# 65| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:64: constructor_uses_global_object: The constructor of global object "DisableSimple" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSimple" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63| static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); +# 64|-> static cl::opt DisableSimple("disable-ifcvt-simple", +# 65| cl::init(false), cl::Hidden); +# 66| static cl::opt DisableSimpleF("disable-ifcvt-simple-false", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:66: constructor_uses_global_object: The constructor of global object "DisableSimpleF" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSimpleF" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| static cl::opt DisableSimple("disable-ifcvt-simple", +# 65| cl::init(false), cl::Hidden); +# 66|-> static cl::opt DisableSimpleF("disable-ifcvt-simple-false", +# 67| cl::init(false), cl::Hidden); +# 68| static cl::opt DisableTriangle("disable-ifcvt-triangle", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:68: constructor_uses_global_object: The constructor of global object "DisableTriangle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTriangle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| static cl::opt DisableSimpleF("disable-ifcvt-simple-false", +# 67| cl::init(false), cl::Hidden); +# 68|-> static cl::opt DisableTriangle("disable-ifcvt-triangle", +# 69| cl::init(false), cl::Hidden); +# 70| static cl::opt DisableTriangleR("disable-ifcvt-triangle-rev", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:70: constructor_uses_global_object: The constructor of global object "DisableTriangleR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTriangleR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| static cl::opt DisableTriangle("disable-ifcvt-triangle", +# 69| cl::init(false), cl::Hidden); +# 70|-> static cl::opt DisableTriangleR("disable-ifcvt-triangle-rev", +# 71| cl::init(false), cl::Hidden); +# 72| static cl::opt DisableTriangleF("disable-ifcvt-triangle-false", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:72: constructor_uses_global_object: The constructor of global object "DisableTriangleF" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTriangleF" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| static cl::opt DisableTriangleR("disable-ifcvt-triangle-rev", +# 71| cl::init(false), cl::Hidden); +# 72|-> static cl::opt DisableTriangleF("disable-ifcvt-triangle-false", +# 73| cl::init(false), cl::Hidden); +# 74| static cl::opt DisableDiamond("disable-ifcvt-diamond", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:74: constructor_uses_global_object: The constructor of global object "DisableDiamond" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDiamond" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| static cl::opt DisableTriangleF("disable-ifcvt-triangle-false", +# 73| cl::init(false), cl::Hidden); +# 74|-> static cl::opt DisableDiamond("disable-ifcvt-diamond", +# 75| cl::init(false), cl::Hidden); +# 76| static cl::opt DisableForkedDiamond("disable-ifcvt-forked-diamond", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:76: constructor_uses_global_object: The constructor of global object "DisableForkedDiamond" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableForkedDiamond" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| static cl::opt DisableDiamond("disable-ifcvt-diamond", +# 75| cl::init(false), cl::Hidden); +# 76|-> static cl::opt DisableForkedDiamond("disable-ifcvt-forked-diamond", +# 77| cl::init(false), cl::Hidden); +# 78| static cl::opt IfCvtBranchFold("ifcvt-branch-fold", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:78: constructor_uses_global_object: The constructor of global object "IfCvtBranchFold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtBranchFold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| static cl::opt DisableForkedDiamond("disable-ifcvt-forked-diamond", +# 77| cl::init(false), cl::Hidden); +# 78|-> static cl::opt IfCvtBranchFold("ifcvt-branch-fold", +# 79| cl::init(true), cl::Hidden); +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ImplicitNullChecks.cpp:62: constructor_uses_global_object: The constructor of global object "PageSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PageSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| using namespace llvm; +# 61| +# 62|-> static cl::opt PageSize("imp-null-check-page-size", +# 63| cl::desc("The page size of the target in bytes"), +# 64| cl::init(4096), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ImplicitNullChecks.cpp:66: constructor_uses_global_object: The constructor of global object "MaxInstsToConsider" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxInstsToConsider" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| cl::init(4096), cl::Hidden); +# 65| +# 66|-> static cl::opt MaxInstsToConsider( +# 67| "imp-null-max-insts-to-consider", +# 68| cl::desc("The max number of instructions to consider hoisting loads over " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InlineSpiller.cpp:75: constructor_uses_global_object: The constructor of global object "DisableHoisting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableHoisting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| STATISTIC(NumRemats, "Number of rematerialized defs for spilling"); +# 74| +# 75|-> static cl::opt DisableHoisting("disable-spill-hoist", cl::Hidden, +# 76| cl::desc("Disable inline spill hoisting")); +# 77| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InlineSpiller.cpp:78: constructor_uses_global_object: The constructor of global object "RestrictStatepointRemat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RestrictStatepointRemat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| cl::desc("Disable inline spill hoisting")); +# 77| static cl::opt +# 78|-> RestrictStatepointRemat("restrict-statepoint-remat", +# 79| cl::init(false), cl::Hidden, +# 80| cl::desc("Restrict remat for statepoint operands")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InterleavedAccessPass.cpp:78: constructor_uses_global_object: The constructor of global object "LowerInterleavedAccesses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LowerInterleavedAccesses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| #define DEBUG_TYPE "interleaved-access" +# 77| +# 78|-> static cl::opt LowerInterleavedAccesses( +# 79| "lower-interleaved-accesses", +# 80| cl::desc("Enable lowering interleaved accesses to intrinsics"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InterleavedLoadCombinePass.cpp:57: constructor_uses_global_object: The constructor of global object "::DisableInterleavedLoadCombine" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisableInterleavedLoadCombine" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| /// Option to disable the pass +# 57|-> static cl::opt DisableInterleavedLoadCombine( +# 58| "disable-" DEBUG_TYPE, cl::init(false), cl::Hidden, +# 59| cl::desc("Disable combining of interleaved loads")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LLVMTargetMachine.cpp:37: constructor_uses_global_object: The constructor of global object "EnableTrapUnreachable" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTrapUnreachable" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static cl::opt +# 37|-> EnableTrapUnreachable("trap-unreachable", cl::Hidden, +# 38| cl::desc("Enable generating trap for unreachable")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp:141: constructor_uses_global_object: The constructor of global object "EmulateOldLDV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmulateOldLDV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 139| // Act more like the VarLoc implementation, by propagating some locations too +# 140| // far and ignoring some transfers. +# 141|-> static cl::opt EmulateOldLDV("emulate-old-livedebugvalues", cl::Hidden, +# 142| cl::desc("Act like old LiveDebugValues did"), +# 143| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp:155: constructor_uses_global_object: The constructor of global object "StackWorkingSetLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackWorkingSetLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| // consuming all the developer's memory. +# 154| static cl::opt +# 155|-> StackWorkingSetLimit("livedebugvalues-max-stack-slots", cl::Hidden, +# 156| cl::desc("livedebugvalues-stack-ws-limit"), +# 157| cl::init(250)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:41: constructor_uses_global_object: The constructor of global object "ForceInstrRefLDV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceInstrRefLDV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> ForceInstrRefLDV("force-instr-ref-livedebugvalues", cl::Hidden, +# 42| cl::desc("Use instruction-ref based LiveDebugValues with " +# 43| "normal DBG_VALUE inputs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:46: constructor_uses_global_object: The constructor of global object "ValueTrackingVariableLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ValueTrackingVariableLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| cl::init(false)); +# 45| +# 46|-> static cl::opt ValueTrackingVariableLocations( +# 47| "experimental-debug-variable-locations", +# 48| cl::desc("Use experimental new value-tracking variable locations")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:52: constructor_uses_global_object: The constructor of global object "InputBBLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InputBBLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| // Options to prevent pathological compile-time behavior. If InputBBLimit and +# 51| // InputDbgValueLimit are both exceeded, range extension is disabled. +# 52|-> static cl::opt InputBBLimit( +# 53| "livedebugvalues-input-bb-limit", +# 54| cl::desc("Maximum input basic blocks before DBG_VALUE limit applies"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:56: constructor_uses_global_object: The constructor of global object "InputDbgValueLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InputDbgValueLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| cl::desc("Maximum input basic blocks before DBG_VALUE limit applies"), +# 55| cl::init(10000), cl::Hidden); +# 56|-> static cl::opt InputDbgValueLimit( +# 57| "livedebugvalues-input-dbg-value-limit", +# 58| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugVariables.cpp:70: constructor_uses_global_object: The constructor of global object "EnableLDV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLDV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| +# 69| static cl::opt +# 70|-> EnableLDV("live-debug-variables", cl::init(true), +# 71| cl::desc("Enable the live debug variables pass"), cl::Hidden); +# 72| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveIntervals.cpp:79: constructor_uses_global_object: The constructor of global object "llvm::UseSegmentSetForPhysRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseSegmentSetForPhysRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| namespace llvm { +# 78| +# 79|-> cl::opt UseSegmentSetForPhysRegs( +# 80| "use-segment-set-for-physregs", cl::Hidden, cl::init(true), +# 81| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRCanonicalizerPass.cpp:41: constructor_uses_global_object: The constructor of global object "CanonicalizeFunctionNumber" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CanonicalizeFunctionNumber" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> CanonicalizeFunctionNumber("canon-nth-function", cl::Hidden, cl::init(~0u), +# 42| cl::value_desc("N"), +# 43| cl::desc("Function number to canonicalize.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRFSDiscriminator.cpp:38: constructor_uses_global_object: The constructor of global object "ImprovedFSDiscriminator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ImprovedFSDiscriminator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| // TODO(xur): Remove this option and related code once we make true as the +# 37| // default. +# 38|-> cl::opt ImprovedFSDiscriminator( +# 39| "improved-fs-discriminator", cl::Hidden, cl::init(false), +# 40| cl::desc("New FS discriminators encoding (incompatible with the original " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRPrinter.cpp:65: constructor_uses_global_object: The constructor of global object "SimplifyMIR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SimplifyMIR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| using namespace llvm; +# 64| +# 65|-> static cl::opt SimplifyMIR( +# 66| "simplify-mir", cl::Hidden, +# 67| cl::desc("Leave out unnecessary information when printing MIR")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRPrinter.cpp:69: constructor_uses_global_object: The constructor of global object "PrintLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::desc("Leave out unnecessary information when printing MIR")); +# 68| +# 69|-> static cl::opt PrintLocations("mir-debug-loc", cl::Hidden, cl::init(true), +# 70| cl::desc("Print MIR debug-locations")); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:44: constructor_uses_global_object: The constructor of global object "ShowFSBranchProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowFSBranchProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| #define DEBUG_TYPE "fs-profile-loader" +# 43| +# 44|-> static cl::opt ShowFSBranchProb( +# 45| "show-fs-branchprob", cl::Hidden, cl::init(false), +# 46| cl::desc("Print setting flow sensitive branch probabilities")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:47: constructor_uses_global_object: The constructor of global object "FSProfileDebugProbDiffThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSProfileDebugProbDiffThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| "show-fs-branchprob", cl::Hidden, cl::init(false), +# 46| cl::desc("Print setting flow sensitive branch probabilities")); +# 47|-> static cl::opt FSProfileDebugProbDiffThreshold( +# 48| "fs-profile-debug-prob-diff-threshold", cl::init(10), +# 49| cl::desc("Only show debug message if the branch probility is greater than " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:52: constructor_uses_global_object: The constructor of global object "FSProfileDebugBWThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSProfileDebugBWThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| "this value (in percentage).")); +# 51| +# 52|-> static cl::opt FSProfileDebugBWThreshold( +# 53| "fs-profile-debug-bw-threshold", cl::init(10000), +# 54| cl::desc("Only show debug message if the source branch weight is greater " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:57: constructor_uses_global_object: The constructor of global object "ViewBFIBefore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewBFIBefore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| " than this value.")); +# 56| +# 57|-> static cl::opt ViewBFIBefore("fs-viewbfi-before", cl::Hidden, +# 58| cl::init(false), +# 59| cl::desc("View BFI before MIR loader")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:60: constructor_uses_global_object: The constructor of global object "ViewBFIAfter" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewBFIAfter" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(false), +# 59| cl::desc("View BFI before MIR loader")); +# 60|-> static cl::opt ViewBFIAfter("fs-viewbfi-after", cl::Hidden, +# 61| cl::init(false), +# 62| cl::desc("View BFI after MIR loader")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRVRegNamerUtils.cpp:19: constructor_uses_global_object: The constructor of global object "UseStableNamerHash" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseStableNamerHash" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| +# 18| static cl::opt +# 19|-> UseStableNamerHash("mir-vreg-namer-use-stable-hash", cl::init(false), +# 20| cl::Hidden, +# 21| cl::desc("Use Stable Hashing for MIR VReg Renaming")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MLRegallocEvictAdvisor.cpp:57: constructor_uses_global_object: The constructor of global object "InteractiveChannelBaseName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveChannelBaseName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| #endif +# 56| +# 57|-> static cl::opt InteractiveChannelBaseName( +# 58| "regalloc-evict-interactive-channel-base", cl::Hidden, +# 59| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MLRegallocPriorityAdvisor.cpp:44: constructor_uses_global_object: The constructor of global object "InteractiveChannelBaseName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveChannelBaseName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| using namespace llvm; +# 43| +# 44|-> static cl::opt InteractiveChannelBaseName( +# 45| "regalloc-priority-interactive-channel-base", cl::Hidden, +# 46| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBasicBlock.cpp:45: constructor_uses_global_object: The constructor of global object "PrintSlotIndexes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintSlotIndexes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| #define DEBUG_TYPE "codegen" +# 44| +# 45|-> static cl::opt PrintSlotIndexes( +# 46| "print-slotindexes", +# 47| cl::desc("When printing machine IR, annotate instructions and blocks with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockFrequencyInfo.cpp:33: constructor_uses_global_object: The constructor of global object "llvm::ViewMachineBlockFreqPropagationDAG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewMachineBlockFreqPropagationDAG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| +# 32| namespace llvm { +# 33|-> static cl::opt ViewMachineBlockFreqPropagationDAG( +# 34| "view-machine-block-freq-propagation-dags", cl::Hidden, +# 35| cl::desc("Pop up a window to show a dag displaying how machine block " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockFrequencyInfo.cpp:48: constructor_uses_global_object: The constructor of global object "llvm::ViewBlockLayoutWithBFI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewBlockLayoutWithBFI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| // Similar option above, but used to control BFI display only after MBP pass +# 48|-> cl::opt ViewBlockLayoutWithBFI( +# 49| "view-block-layout-with-bfi", cl::Hidden, +# 50| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockFrequencyInfo.cpp:72: constructor_uses_global_object: The constructor of global object "llvm::PrintMachineBlockFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintMachineBlockFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| extern cl::opt ViewHotFreqPercent; +# 71| +# 72|-> static cl::opt PrintMachineBlockFreq( +# 73| "print-machine-bfi", cl::init(false), cl::Hidden, +# 74| cl::desc("Print the machine block frequency info.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:87: constructor_uses_global_object: The constructor of global object "AlignAllBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignAllBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| "Potential frequency of taking unconditional branches"); +# 86| +# 87|-> static cl::opt AlignAllBlock( +# 88| "align-all-blocks", +# 89| cl::desc("Force the alignment of all blocks in the function in log2 format " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:93: constructor_uses_global_object: The constructor of global object "AlignAllNonFallThruBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignAllNonFallThruBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| cl::init(0), cl::Hidden); +# 92| +# 93|-> static cl::opt AlignAllNonFallThruBlocks( +# 94| "align-all-nofallthru-blocks", +# 95| cl::desc("Force the alignment of all blocks that have no fall-through " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:100: constructor_uses_global_object: The constructor of global object "MaxBytesForAlignmentOverride" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxBytesForAlignmentOverride" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| cl::init(0), cl::Hidden); +# 99| +# 100|-> static cl::opt MaxBytesForAlignmentOverride( +# 101| "max-bytes-for-alignment", +# 102| cl::desc("Forces the maximum bytes allowed to be emitted when padding for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:107: constructor_uses_global_object: The constructor of global object "ExitBlockBias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExitBlockBias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| +# 106| // FIXME: Find a good default for this flag and remove the flag. +# 107|-> static cl::opt ExitBlockBias( +# 108| "block-placement-exit-block-bias", +# 109| cl::desc("Block frequency percentage a loop exit block needs " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:116: constructor_uses_global_object: The constructor of global object "LoopToColdBlockRatio" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoopToColdBlockRatio" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| // - Outlining: placement of a basic block outside the chain or hot path. +# 115| +# 116|-> static cl::opt LoopToColdBlockRatio( +# 117| "loop-to-cold-block-ratio", +# 118| cl::desc("Outline loop blocks from loop chain if (frequency of loop) / " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:122: constructor_uses_global_object: The constructor of global object "ForceLoopColdBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceLoopColdBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 120| cl::init(5), cl::Hidden); +# 121| +# 122|-> static cl::opt ForceLoopColdBlock( +# 123| "force-loop-cold-block", +# 124| cl::desc("Force outlining cold blocks from loops."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:128: constructor_uses_global_object: The constructor of global object "PreciseRotationCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreciseRotationCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| +# 127| static cl::opt +# 128|-> PreciseRotationCost("precise-rotation-cost", +# 129| cl::desc("Model the cost of loop rotation more " +# 130| "precisely by using profile data."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:134: constructor_uses_global_object: The constructor of global object "ForcePreciseRotationCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForcePreciseRotationCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| +# 133| static cl::opt +# 134|-> ForcePreciseRotationCost("force-precise-rotation-cost", +# 135| cl::desc("Force the use of precise cost " +# 136| "loop rotation strategy."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:139: constructor_uses_global_object: The constructor of global object "MisfetchCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MisfetchCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 137| cl::init(false), cl::Hidden); +# 138| +# 139|-> static cl::opt MisfetchCost( +# 140| "misfetch-cost", +# 141| cl::desc("Cost that models the probabilistic risk of an instruction " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:146: constructor_uses_global_object: The constructor of global object "JumpInstCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpInstCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 144| cl::init(1), cl::Hidden); +# 145| +# 146|-> static cl::opt JumpInstCost("jump-inst-cost", +# 147| cl::desc("Cost of jump instructions."), +# 148| cl::init(1), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:150: constructor_uses_global_object: The constructor of global object "TailDupPlacement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 148| cl::init(1), cl::Hidden); +# 149| static cl::opt +# 150|-> TailDupPlacement("tail-dup-placement", +# 151| cl::desc("Perform tail duplication during placement. " +# 152| "Creates more fallthrough opportunites in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:157: constructor_uses_global_object: The constructor of global object "BranchFoldPlacement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BranchFoldPlacement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 155| +# 156| static cl::opt +# 157|-> BranchFoldPlacement("branch-fold-placement", +# 158| cl::desc("Perform branch folding during placement. " +# 159| "Reduces code size."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:163: constructor_uses_global_object: The constructor of global object "TailDupPlacementThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacementThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| +# 162| // Heuristic for tail duplication. +# 163|-> static cl::opt TailDupPlacementThreshold( +# 164| "tail-dup-placement-threshold", +# 165| cl::desc("Instruction cutoff for tail duplication during layout. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:171: constructor_uses_global_object: The constructor of global object "TailDupPlacementAggressiveThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacementAggressiveThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 169| +# 170| // Heuristic for aggressive tail duplication. +# 171|-> static cl::opt TailDupPlacementAggressiveThreshold( +# 172| "tail-dup-placement-aggressive-threshold", +# 173| cl::desc("Instruction cutoff for aggressive tail duplication during " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:179: constructor_uses_global_object: The constructor of global object "TailDupPlacementPenalty" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacementPenalty" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 177| +# 178| // Heuristic for tail duplication. +# 179|-> static cl::opt TailDupPlacementPenalty( +# 180| "tail-dup-placement-penalty", +# 181| cl::desc("Cost penalty for blocks that can avoid breaking CFG by copying. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:189: constructor_uses_global_object: The constructor of global object "TailDupProfilePercentThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupProfilePercentThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 187| +# 188| // Heuristic for tail duplication if profile count is used in cost model. +# 189|-> static cl::opt TailDupProfilePercentThreshold( +# 190| "tail-dup-profile-percent-threshold", +# 191| cl::desc("If profile count information is used in tail duplication cost " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:197: constructor_uses_global_object: The constructor of global object "TriangleChainCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TriangleChainCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 195| +# 196| // Heuristic for triangle chains. +# 197|-> static cl::opt TriangleChainCount( +# 198| "triangle-chain-count", +# 199| cl::desc("Number of triangle-shaped-CFG's that need to be in a row for the " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:209: constructor_uses_global_object: The constructor of global object "RenumberBlocksBeforeView" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RenumberBlocksBeforeView" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 207| // With this option on, the basic blocks are renumbered in function layout +# 208| // order. For debugging only. +# 209|-> static cl::opt RenumberBlocksBeforeView( +# 210| "renumber-blocks-before-view", +# 211| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBranchProbabilityInfo.cpp:28: constructor_uses_global_object: The constructor of global object "llvm::StaticLikelyProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::StaticLikelyProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| namespace llvm { +# 27| cl::opt +# 28|-> StaticLikelyProb("static-likely-prob", +# 29| cl::desc("branch probability threshold in percentage" +# 30| "to be considered very likely"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBranchProbabilityInfo.cpp:33: constructor_uses_global_object: The constructor of global object "llvm::ProfileLikelyProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileLikelyProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| cl::init(80), cl::Hidden); +# 32| +# 33|-> cl::opt ProfileLikelyProb( +# 34| "profile-likely-prob", +# 35| cl::desc("branch probability threshold in percentage to be considered" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCFGPrinter.cpp:28: constructor_uses_global_object: The constructor of global object "MCFGFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCFGFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| +# 27| static cl::opt +# 28|-> MCFGFuncName("mcfg-func-name", cl::Hidden, +# 29| cl::desc("The name of a function (or its substring)" +# 30| " whose CFG is viewed/printed.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCFGPrinter.cpp:32: constructor_uses_global_object: The constructor of global object "MCFGDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCFGDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| " whose CFG is viewed/printed.")); +# 31| +# 32|-> static cl::opt MCFGDotFilenamePrefix( +# 33| "mcfg-dot-filename-prefix", cl::Hidden, +# 34| cl::desc("The prefix used for the Machine CFG dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCFGPrinter.cpp:37: constructor_uses_global_object: The constructor of global object "CFGOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CFGOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static cl::opt +# 37|-> CFGOnly("dot-mcfg-only", cl::init(false), cl::Hidden, +# 38| cl::desc("Print only the CFG without blocks body")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCSE.cpp:65: constructor_uses_global_object: The constructor of global object "CSUsesThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CSUsesThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| // Threshold to avoid excessive cost to compute isProfitableToCSE. +# 64| static cl::opt +# 65|-> CSUsesThreshold("csuses-threshold", cl::Hidden, cl::init(1024), +# 66| cl::desc("Threshold for the size of CSUses")); +# 67| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCombiner.cpp:42: constructor_uses_global_object: The constructor of global object "inc_threshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "inc_threshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> inc_threshold("machine-combiner-inc-threshold", cl::Hidden, +# 43| cl::desc("Incremental depth computation will be used for basic " +# 44| "blocks with more instructions."), cl::init(500)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCombiner.cpp:46: constructor_uses_global_object: The constructor of global object "dump_intrs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "dump_intrs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| "blocks with more instructions."), cl::init(500)); +# 45| +# 46|-> static cl::opt dump_intrs("machine-combiner-dump-subst-intrs", cl::Hidden, +# 47| cl::desc("Dump all substituted intrs"), +# 48| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCombiner.cpp:57: constructor_uses_global_object: The constructor of global object "VerifyPatternOrder" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyPatternOrder" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::init(true)); +# 56| #else +# 57|-> static cl::opt VerifyPatternOrder( +# 58| "machine-combiner-verify-pattern-order", cl::Hidden, +# 59| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCopyPropagation.cpp:88: constructor_uses_global_object: The constructor of global object "MCPUseCopyInstr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCPUseCopyInstr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| "Controls which register COPYs are forwarded"); +# 87| +# 88|-> static cl::opt MCPUseCopyInstr("mcp-use-is-copy-instr", cl::init(false), +# 89| cl::Hidden); +# 90| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCopyPropagation.cpp:91: constructor_uses_global_object: The constructor of global object "EnableSpillageCopyElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSpillageCopyElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| cl::Hidden); +# 90| static cl::opt +# 91|-> EnableSpillageCopyElimination("enable-spill-copy-elim", cl::Hidden); +# 92| +# 93| namespace { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineDominators.cpp:33: constructor_uses_global_object: The constructor of global object "VerifyMachineDomInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyMachineDomInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| } // namespace llvm +# 32| +# 33|-> static cl::opt VerifyMachineDomInfoX( +# 34| "verify-machine-dom-info", cl::location(VerifyMachineDomInfo), cl::Hidden, +# 35| cl::desc("Verify machine dominator info (time consuming)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunction.cpp:84: constructor_uses_global_object: The constructor of global object "AlignAllFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignAllFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| #define DEBUG_TYPE "codegen" +# 83| +# 84|-> static cl::opt AlignAllFunctions( +# 85| "align-all-functions", +# 86| cl::desc("Force the alignment of all functions in log2 format (e.g. 4 " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunctionSplitter.cpp:53: constructor_uses_global_object: The constructor of global object "PercentileCutoff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PercentileCutoff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| // Intel CPUs. +# 52| static cl::opt +# 53|-> PercentileCutoff("mfs-psi-cutoff", +# 54| cl::desc("Percentile profile summary cutoff used to " +# 55| "determine cold blocks. Unused if set to zero."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunctionSplitter.cpp:58: constructor_uses_global_object: The constructor of global object "ColdCountThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdCountThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::init(999950), cl::Hidden); +# 57| +# 58|-> static cl::opt ColdCountThreshold( +# 59| "mfs-count-threshold", +# 60| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunctionSplitter.cpp:64: constructor_uses_global_object: The constructor of global object "SplitAllEHCode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitAllEHCode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| cl::init(1), cl::Hidden); +# 63| +# 64|-> static cl::opt SplitAllEHCode( +# 65| "mfs-split-ehcode", +# 66| cl::desc("Splits all EH code and it's descendants by default."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:62: constructor_uses_global_object: The constructor of global object "AvoidSpeculation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AvoidSpeculation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> AvoidSpeculation("avoid-speculation", +# 63| cl::desc("MachineLICM should avoid speculation"), +# 64| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:67: constructor_uses_global_object: The constructor of global object "HoistCheapInsts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HoistCheapInsts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl::opt +# 67|-> HoistCheapInsts("hoist-cheap-insts", +# 68| cl::desc("MachineLICM should hoist even cheap instructions"), +# 69| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:72: constructor_uses_global_object: The constructor of global object "HoistConstStores" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HoistConstStores" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| +# 71| static cl::opt +# 72|-> HoistConstStores("hoist-const-stores", +# 73| cl::desc("Hoist invariant stores"), +# 74| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:78: constructor_uses_global_object: The constructor of global object "BlockFrequencyRatioThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockFrequencyRatioThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| // is based on empirical data on a single target and is subject to tuning. +# 77| static cl::opt +# 78|-> BlockFrequencyRatioThreshold("block-freq-ratio-threshold", +# 79| cl::desc("Do not hoist instructions if target" +# 80| "block is N times hotter than the source."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:86: constructor_uses_global_object: The constructor of global object "DisableHoistingToHotterBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableHoistingToHotterBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> DisableHoistingToHotterBlocks("disable-hoisting-to-hotter-blocks", +# 87| cl::desc("Disable hoisting instructions to" +# 88| " hotter blocks"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineModuleInfo.cpp:35: constructor_uses_global_object: The constructor of global object "DisableDebugInfoPrinting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDebugInfoPrinting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> DisableDebugInfoPrinting("disable-debug-info-print", cl::Hidden, +# 36| cl::desc("Disable debug info printing")); +# 37| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOperand.cpp:36: constructor_uses_global_object: The constructor of global object "PrintRegMaskNumRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintRegMaskNumRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> PrintRegMaskNumRegs("print-regmask-num-regs", +# 37| cl::desc("Number of registers to limit to when " +# 38| "printing regmask operands in IR dumps. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOutliner.cpp:106: constructor_uses_global_object: The constructor of global object "EnableLinkOnceODROutlining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLinkOnceODROutlining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| // this is off by default. It should, however, be the default behaviour in +# 105| // LTO. +# 106|-> static cl::opt EnableLinkOnceODROutlining( +# 107| "enable-linkonceodr-outlining", cl::Hidden, +# 108| cl::desc("Enable the machine outliner on linkonceodr functions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOutliner.cpp:114: constructor_uses_global_object: The constructor of global object "OutlinerReruns" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutlinerReruns" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| /// as the outliner will run at least one time. The default value is set to 0, +# 113| /// meaning the outliner will run one time and rerun zero times after that. +# 114|-> static cl::opt OutlinerReruns( +# 115| "machine-outliner-reruns", cl::init(0), cl::Hidden, +# 116| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOutliner.cpp:119: constructor_uses_global_object: The constructor of global object "OutlinerBenefitThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutlinerBenefitThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| "Number of times to rerun the outliner after the initial outline")); +# 118| +# 119|-> static cl::opt OutlinerBenefitThreshold( +# 120| "outliner-benefit-threshold", cl::init(1), cl::Hidden, +# 121| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:114: constructor_uses_global_object: The constructor of global object "EnableSWP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSWP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| +# 113| /// A command line option to turn software pipelining on or off. +# 114|-> static cl::opt EnableSWP("enable-pipeliner", cl::Hidden, cl::init(true), +# 115| cl::desc("Enable Software Pipelining")); +# 116| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:118: constructor_uses_global_object: The constructor of global object "EnableSWPOptSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSWPOptSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| +# 117| /// A command line option to enable SWP at -Os. +# 118|-> static cl::opt EnableSWPOptSize("enable-pipeliner-opt-size", +# 119| cl::desc("Enable SWP at Os."), cl::Hidden, +# 120| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:123: constructor_uses_global_object: The constructor of global object "SwpMaxMii" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpMaxMii" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 121| +# 122| /// A command line argument to limit minimum initial interval for pipelining. +# 123|-> static cl::opt SwpMaxMii("pipeliner-max-mii", +# 124| cl::desc("Size limit for the MII."), +# 125| cl::Hidden, cl::init(27)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:129: constructor_uses_global_object: The constructor of global object "SwpForceII" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpForceII" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 127| /// A command line argument to force pipeliner to use specified initial +# 128| /// interval. +# 129|-> static cl::opt SwpForceII("pipeliner-force-ii", +# 130| cl::desc("Force pipeliner to use specified II."), +# 131| cl::Hidden, cl::init(-1)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:135: constructor_uses_global_object: The constructor of global object "SwpMaxStages" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpMaxStages" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| /// A command line argument to limit the number of stages in the pipeline. +# 134| static cl::opt +# 135|-> SwpMaxStages("pipeliner-max-stages", +# 136| cl::desc("Maximum stages allowed in the generated scheduled."), +# 137| cl::Hidden, cl::init(3)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:142: constructor_uses_global_object: The constructor of global object "SwpPruneDeps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpPruneDeps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 140| /// an unrelated Phi. +# 141| static cl::opt +# 142|-> SwpPruneDeps("pipeliner-prune-deps", +# 143| cl::desc("Prune dependences between unrelated Phi nodes."), +# 144| cl::Hidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:149: constructor_uses_global_object: The constructor of global object "SwpPruneLoopCarried" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpPruneLoopCarried" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| /// dependences. +# 148| static cl::opt +# 149|-> SwpPruneLoopCarried("pipeliner-prune-loop-carried", +# 150| cl::desc("Prune loop carried order dependences."), +# 151| cl::Hidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:157: constructor_uses_global_object: The constructor of global object "SwpIgnoreRecMII" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpIgnoreRecMII" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 155| #endif +# 156| +# 157|-> static cl::opt SwpIgnoreRecMII("pipeliner-ignore-recmii", +# 158| cl::ReallyHidden, +# 159| cl::desc("Ignore RecMII")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:161: constructor_uses_global_object: The constructor of global object "SwpShowResMask" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpShowResMask" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 159| cl::desc("Ignore RecMII")); +# 160| +# 161|-> static cl::opt SwpShowResMask("pipeliner-show-mask", cl::Hidden, +# 162| cl::init(false)); +# 163| static cl::opt SwpDebugResource("pipeliner-dbg-res", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:163: constructor_uses_global_object: The constructor of global object "SwpDebugResource" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpDebugResource" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| static cl::opt SwpShowResMask("pipeliner-show-mask", cl::Hidden, +# 162| cl::init(false)); +# 163|-> static cl::opt SwpDebugResource("pipeliner-dbg-res", cl::Hidden, +# 164| cl::init(false)); +# 165| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:166: constructor_uses_global_object: The constructor of global object "EmitTestAnnotations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmitTestAnnotations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 164| cl::init(false)); +# 165| +# 166|-> static cl::opt EmitTestAnnotations( +# 167| "pipeliner-annotate-for-testing", cl::Hidden, cl::init(false), +# 168| cl::desc("Instead of emitting the pipelined code, annotate instructions " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:172: constructor_uses_global_object: The constructor of global object "ExperimentalCodeGen" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExperimentalCodeGen" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 170| "-modulo-schedule-test pass")); +# 171| +# 172|-> static cl::opt ExperimentalCodeGen( +# 173| "pipeliner-experimental-cg", cl::Hidden, cl::init(false), +# 174| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:180: constructor_uses_global_object: The constructor of global object "llvm::SwpEnableCopyToPhi" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::SwpEnableCopyToPhi" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 178| +# 179| // A command line option to enable the CopyToPhi DAG mutation. +# 180|-> cl::opt SwpEnableCopyToPhi("pipeliner-enable-copytophi", cl::ReallyHidden, +# 181| cl::init(true), +# 182| cl::desc("Enable CopyToPhi DAG Mutation")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:186: constructor_uses_global_object: The constructor of global object "llvm::SwpForceIssueWidth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::SwpForceIssueWidth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 184| /// A command line argument to force pipeliner to use specified issue +# 185| /// width. +# 186|-> cl::opt SwpForceIssueWidth( +# 187| "pipeliner-force-issue-width", +# 188| cl::desc("Force pipeliner to use specified issue width."), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineRegisterInfo.cpp:37: constructor_uses_global_object: The constructor of global object "EnableSubRegLiveness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSubRegLiveness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| using namespace llvm; +# 36| +# 37|-> static cl::opt EnableSubRegLiveness("enable-subreg-liveness", cl::Hidden, +# 38| cl::init(true), cl::desc("Enable subregister liveness tracking.")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:80: constructor_uses_global_object: The constructor of global object "llvm::ForceTopDown" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ForceTopDown" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| namespace llvm { +# 79| +# 80|-> cl::opt ForceTopDown("misched-topdown", cl::Hidden, +# 81| cl::desc("Force top-down list scheduling")); +# 82| cl::opt ForceBottomUp("misched-bottomup", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:82: constructor_uses_global_object: The constructor of global object "llvm::ForceBottomUp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ForceBottomUp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| cl::opt ForceTopDown("misched-topdown", cl::Hidden, +# 81| cl::desc("Force top-down list scheduling")); +# 82|-> cl::opt ForceBottomUp("misched-bottomup", cl::Hidden, +# 83| cl::desc("Force bottom-up list scheduling")); +# 84| cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:85: constructor_uses_global_object: The constructor of global object "llvm::DumpCriticalPathLength" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DumpCriticalPathLength" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("Force bottom-up list scheduling")); +# 84| cl::opt +# 85|-> DumpCriticalPathLength("misched-dcpl", cl::Hidden, +# 86| cl::desc("Print critical path length to stdout")); +# 87| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:88: constructor_uses_global_object: The constructor of global object "llvm::VerifyScheduling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::VerifyScheduling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| cl::desc("Print critical path length to stdout")); +# 87| +# 88|-> cl::opt VerifyScheduling( +# 89| "verify-misched", cl::Hidden, +# 90| cl::desc("Verify machine instrs before and after machine scheduling")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:132: constructor_uses_global_object: The constructor of global object "ReadyListLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReadyListLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 130| /// Avoid quadratic complexity in unusually large basic blocks by limiting the +# 131| /// size of the ready lists. +# 132|-> static cl::opt ReadyListLimit("misched-limit", cl::Hidden, +# 133| cl::desc("Limit ready list to N instructions"), cl::init(256)); +# 134| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:135: constructor_uses_global_object: The constructor of global object "EnableRegPressure" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRegPressure" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::desc("Limit ready list to N instructions"), cl::init(256)); +# 134| +# 135|-> static cl::opt EnableRegPressure("misched-regpressure", cl::Hidden, +# 136| cl::desc("Enable register pressure scheduling."), cl::init(true)); +# 137| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:138: constructor_uses_global_object: The constructor of global object "EnableCyclicPath" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCyclicPath" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| cl::desc("Enable register pressure scheduling."), cl::init(true)); +# 137| +# 138|-> static cl::opt EnableCyclicPath("misched-cyclicpath", cl::Hidden, +# 139| cl::desc("Enable cyclic critical path analysis."), cl::init(true)); +# 140| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:141: constructor_uses_global_object: The constructor of global object "EnableMemOpCluster" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemOpCluster" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 139| cl::desc("Enable cyclic critical path analysis."), cl::init(true)); +# 140| +# 141|-> static cl::opt EnableMemOpCluster("misched-cluster", cl::Hidden, +# 142| cl::desc("Enable memop clustering."), +# 143| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:145: constructor_uses_global_object: The constructor of global object "ForceFastCluster" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceFastCluster" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 143| cl::init(true)); +# 144| static cl::opt +# 145|-> ForceFastCluster("force-fast-cluster", cl::Hidden, +# 146| cl::desc("Switch to fast cluster algorithm with the lost " +# 147| "of some fusion opportunities"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:150: constructor_uses_global_object: The constructor of global object "FastClusterThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FastClusterThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 148| cl::init(false)); +# 149| static cl::opt +# 150|-> FastClusterThreshold("fast-cluster-threshold", cl::Hidden, +# 151| cl::desc("The threshold for fast cluster"), +# 152| cl::init(1000)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:173: constructor_uses_global_object: The constructor of global object "MIResourceCutOff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MIResourceCutOff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 171| +# 172| static cl::opt +# 173|-> MIResourceCutOff("misched-resource-cutoff", cl::Hidden, +# 174| cl::desc("Number of intervals to track"), cl::init(10)); +# 175| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:310: constructor_uses_global_object: The constructor of global object "MachineSchedOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MachineSchedOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 308| static cl::opt> +# 310|-> MachineSchedOpt("misched", +# 311| cl::init(&useDefaultMachineSched), cl::Hidden, +# 312| cl::desc("Machine instruction scheduler to use")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:318: constructor_uses_global_object: The constructor of global object "EnableMachineSched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMachineSched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 316| useDefaultMachineSched); +# 317| +# 318|-> static cl::opt EnableMachineSched( +# 319| "enable-misched", +# 320| cl::desc("Enable the machine instruction scheduling pass."), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:323: constructor_uses_global_object: The constructor of global object "EnablePostRAMachineSched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostRAMachineSched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 321| cl::Hidden); +# 322| +# 323|-> static cl::opt EnablePostRAMachineSched( +# 324| "enable-post-misched", +# 325| cl::desc("Enable the post-ra machine instruction scheduling pass."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:68: constructor_uses_global_object: The constructor of global object "SplitEdges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitEdges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| +# 67| static cl::opt +# 68|-> SplitEdges("machine-sink-split", +# 69| cl::desc("Split critical edges during machine sinking"), +# 70| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:73: constructor_uses_global_object: The constructor of global object "UseBlockFreqInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseBlockFreqInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| static cl::opt +# 73|-> UseBlockFreqInfo("machine-sink-bfi", +# 74| cl::desc("Use block frequency info to find successors to sink"), +# 75| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:77: constructor_uses_global_object: The constructor of global object "SplitEdgeProbabilityThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitEdgeProbabilityThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::init(true), cl::Hidden); +# 76| +# 77|-> static cl::opt SplitEdgeProbabilityThreshold( +# 78| "machine-sink-split-probability-threshold", +# 79| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:86: constructor_uses_global_object: The constructor of global object "SinkLoadInstsPerBlockThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkLoadInstsPerBlockThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| cl::init(40), cl::Hidden); +# 85| +# 86|-> static cl::opt SinkLoadInstsPerBlockThreshold( +# 87| "machine-sink-load-instrs-threshold", +# 88| cl::desc("Do not try to find alias store for a load if there is a in-path " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:92: constructor_uses_global_object: The constructor of global object "SinkLoadBlocksThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkLoadBlocksThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| cl::init(2000), cl::Hidden); +# 91| +# 92|-> static cl::opt SinkLoadBlocksThreshold( +# 93| "machine-sink-load-blocks-threshold", +# 94| cl::desc("Do not try to find alias store for a load if the block number in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:99: constructor_uses_global_object: The constructor of global object "SinkInstsIntoCycle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkInstsIntoCycle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| +# 98| static cl::opt +# 99|-> SinkInstsIntoCycle("sink-insts-to-avoid-spills", +# 100| cl::desc("Sink instructions into cycles to avoid " +# 101| "register spills"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:104: constructor_uses_global_object: The constructor of global object "SinkIntoCycleLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkIntoCycleLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| cl::init(false), cl::Hidden); +# 103| +# 104|-> static cl::opt SinkIntoCycleLimit( +# 105| "machine-sink-cycle-limit", +# 106| cl::desc("The maximum number of instructions considered for cycle sinking."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineStripDebug.cpp:27: constructor_uses_global_object: The constructor of global object "::OnlyDebugifiedDefault" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OnlyDebugifiedDefault" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| namespace { +# 26| cl::opt +# 27|-> OnlyDebugifiedDefault("mir-strip-debugify-only", +# 28| cl::desc("Should mir-strip-debug only strip debug " +# 29| "info from debugified modules by default"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MacroFusion.cpp:31: constructor_uses_global_object: The constructor of global object "EnableMacroFusion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMacroFusion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt EnableMacroFusion("misched-fusion", cl::Hidden, +# 32| cl::desc("Enable scheduling for macro fusion."), cl::init(true)); +# 33| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PHIElimination.cpp:50: constructor_uses_global_object: The constructor of global object "DisableEdgeSplitting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableEdgeSplitting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> DisableEdgeSplitting("disable-phi-elim-edge-splitting", cl::init(false), +# 51| cl::Hidden, cl::desc("Disable critical edge splitting " +# 52| "during PHI elimination")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PHIElimination.cpp:55: constructor_uses_global_object: The constructor of global object "SplitAllCriticalEdges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitAllCriticalEdges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| +# 54| static cl::opt +# 55|-> SplitAllCriticalEdges("phi-elim-split-all-critical-edges", cl::init(false), +# 56| cl::Hidden, cl::desc("Split all critical edges during " +# 57| "PHI elimination")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PHIElimination.cpp:59: constructor_uses_global_object: The constructor of global object "NoPhiElimLiveOutEarlyExit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoPhiElimLiveOutEarlyExit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| "PHI elimination")); +# 58| +# 59|-> static cl::opt NoPhiElimLiveOutEarlyExit( +# 60| "no-phi-elim-live-out-early-exit", cl::init(false), cl::Hidden, +# 61| cl::desc("Do not use an early exit if isLiveOutPastPHIs returns true.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:106: constructor_uses_global_object: The constructor of global object "Aggressive" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Aggressive" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| // Optimize Extensions +# 105| static cl::opt +# 106|-> Aggressive("aggressive-ext-opt", cl::Hidden, +# 107| cl::desc("Aggressive extension optimization")); +# 108| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:110: constructor_uses_global_object: The constructor of global object "DisablePeephole" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePeephole" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| +# 109| static cl::opt +# 110|-> DisablePeephole("disable-peephole", cl::Hidden, cl::init(false), +# 111| cl::desc("Disable the peephole optimizer")); +# 112| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:117: constructor_uses_global_object: The constructor of global object "DisableAdvCopyOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAdvCopyOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 115| /// bails on everything that is not a copy or a bitcast. +# 116| static cl::opt +# 117|-> DisableAdvCopyOpt("disable-adv-copy-opt", cl::Hidden, cl::init(false), +# 118| cl::desc("Disable advanced copy optimization")); +# 119| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:120: constructor_uses_global_object: The constructor of global object "DisableNAPhysCopyOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableNAPhysCopyOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| cl::desc("Disable advanced copy optimization")); +# 119| +# 120|-> static cl::opt DisableNAPhysCopyOpt( +# 121| "disable-non-allocatable-phys-copy-opt", cl::Hidden, cl::init(false), +# 122| cl::desc("Disable non-allocatable physical register copy optimization")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:126: constructor_uses_global_object: The constructor of global object "RewritePHILimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RewritePHILimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| // Limit the number of PHI instructions to process +# 125| // in PeepholeOptimizer::getNextSource. +# 126|-> static cl::opt RewritePHILimit( +# 127| "rewrite-phi-limit", cl::Hidden, cl::init(10), +# 128| cl::desc("Limit the length of PHI chains to lookup")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:132: constructor_uses_global_object: The constructor of global object "MaxRecurrenceChain" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxRecurrenceChain" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 130| // Limit the length of recurrence chain when evaluating the benefit of +# 131| // commuting operands. +# 132|-> static cl::opt MaxRecurrenceChain( +# 133| "recurrence-chain-limit", cl::Hidden, cl::init(3), +# 134| cl::desc("Maximum length of recurrence chain when evaluating the benefit " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:54: constructor_uses_global_object: The constructor of global object "EnablePostRAScheduler" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostRAScheduler" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // override the target. +# 53| static cl::opt +# 54|-> EnablePostRAScheduler("post-RA-scheduler", +# 55| cl::desc("Enable scheduling after register allocation"), +# 56| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:58: constructor_uses_global_object: The constructor of global object "EnableAntiDepBreaking[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAntiDepBreaking[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::init(false), cl::Hidden); +# 57| static cl::opt +# 58|-> EnableAntiDepBreaking("break-anti-dependencies", +# 59| cl::desc("Break post-RA scheduling anti-dependencies: " +# 60| "\"critical\", \"all\", or \"none\""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:65: constructor_uses_global_object: The constructor of global object "DebugDiv" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugDiv" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| // If DebugDiv > 0 then only schedule MBB with (ID % DebugDiv) == DebugMod +# 64| static cl::opt +# 65|-> DebugDiv("postra-sched-debugdiv", +# 66| cl::desc("Debug control MBBs that are scheduled"), +# 67| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:69: constructor_uses_global_object: The constructor of global object "DebugMod" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugMod" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::init(0), cl::Hidden); +# 68| static cl::opt +# 69|-> DebugMod("postra-sched-debugmod", +# 70| cl::desc("Debug control MBBs that are scheduled"), +# 71| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PreISelIntrinsicLowering.cpp:38: constructor_uses_global_object: The constructor of global object "MemIntrinsicExpandSizeThresholdOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemIntrinsicExpandSizeThresholdOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| /// size larger than this will be expanded by the pass. Calls of unknown or +# 37| /// lower size will be left for expansion in codegen. +# 38|-> static cl::opt MemIntrinsicExpandSizeThresholdOpt( +# 39| "mem-intrinsic-expand-size", +# 40| cl::desc("Set minimum mem intrinsic size to expand in IR"), cl::init(-1), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RDFLiveness.cpp:55: constructor_uses_global_object: The constructor of global object "MaxRecNest" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxRecNest" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| using namespace llvm; +# 54| +# 55|-> static cl::opt MaxRecNest("rdf-liveness-max-rec", cl::init(25), +# 56| cl::Hidden, +# 57| cl::desc("Maximum recursion level")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocBase.cpp:43: constructor_uses_global_object: The constructor of global object "VerifyRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| // MachineVerifier. +# 42| static cl::opt +# 43|-> VerifyRegAlloc("verify-regalloc", cl::location(RegAllocBase::VerifyEnabled), +# 44| cl::Hidden, cl::desc("Verify during register allocation")); +# 45| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocEvictionAdvisor.cpp:28: constructor_uses_global_object: The constructor of global object "Mode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| using namespace llvm; +# 27| +# 28|-> static cl::opt Mode( +# 29| "regalloc-enable-advisor", cl::Hidden, +# 30| cl::init(RegAllocEvictionAdvisorAnalysis::AdvisorMode::Default), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocEvictionAdvisor.cpp:40: constructor_uses_global_object: The constructor of global object "EnableLocalReassignment" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLocalReassignment" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| "development", "for training"))); +# 39| +# 40|-> static cl::opt EnableLocalReassignment( +# 41| "enable-local-reassign", cl::Hidden, +# 42| cl::desc("Local reassignment can yield better allocation decisions, but " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocEvictionAdvisor.cpp:47: constructor_uses_global_object: The constructor of global object "llvm::EvictInterferenceCutoff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EvictInterferenceCutoff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| namespace llvm { +# 47|-> cl::opt EvictInterferenceCutoff( +# 48| "regalloc-eviction-max-interference-cutoff", cl::Hidden, +# 49| cl::desc("Number of interferences after which we declare " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocFast.cpp:57: constructor_uses_global_object: The constructor of global object "IgnoreMissingDefs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMissingDefs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| // FIXME: Remove this switch when all testcases are fixed! +# 57|-> static cl::opt IgnoreMissingDefs("rafast-ignore-missing-defs", +# 58| cl::Hidden); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:86: constructor_uses_global_object: The constructor of global object "SplitSpillMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitSpillMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| STATISTIC(NumEvicted, "Number of interferences evicted"); +# 85| +# 86|-> static cl::opt SplitSpillMode( +# 87| "split-spill-mode", cl::Hidden, +# 88| cl::desc("Spill mode for splitting live ranges"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:95: constructor_uses_global_object: The constructor of global object "LastChanceRecoloringMaxDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LastChanceRecoloringMaxDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> LastChanceRecoloringMaxDepth("lcr-max-depth", cl::Hidden, +# 96| cl::desc("Last chance recoloring max depth"), +# 97| cl::init(5)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:99: constructor_uses_global_object: The constructor of global object "LastChanceRecoloringMaxInterference" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LastChanceRecoloringMaxInterference" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| cl::init(5)); +# 98| +# 99|-> static cl::opt LastChanceRecoloringMaxInterference( +# 100| "lcr-max-interf", cl::Hidden, +# 101| cl::desc("Last chance recoloring maximum number of considered" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:105: constructor_uses_global_object: The constructor of global object "ExhaustiveSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExhaustiveSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 103| cl::init(8)); +# 104| +# 105|-> static cl::opt ExhaustiveSearch( +# 106| "exhaustive-register-search", cl::NotHidden, +# 107| cl::desc("Exhaustive Search for registers bypassing the depth " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:111: constructor_uses_global_object: The constructor of global object "EnableDeferredSpilling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDeferredSpilling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| cl::Hidden); +# 110| +# 111|-> static cl::opt EnableDeferredSpilling( +# 112| "enable-deferred-spilling", cl::Hidden, +# 113| cl::desc("Instead of spilling a variable right away, defer the actual " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:121: constructor_uses_global_object: The constructor of global object "CSRFirstTimeCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CSRFirstTimeCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| // FIXME: Find a good default for this flag and remove the flag. +# 120| static cl::opt +# 121|-> CSRFirstTimeCost("regalloc-csr-first-time-cost", +# 122| cl::desc("Cost for first time use of callee-saved register."), +# 123| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:125: constructor_uses_global_object: The constructor of global object "GrowRegionComplexityBudget" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GrowRegionComplexityBudget" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| cl::init(0), cl::Hidden); +# 124| +# 125|-> static cl::opt GrowRegionComplexityBudget( +# 126| "grow-region-complexity-budget", +# 127| cl::desc("growRegion() does not scale with the number of BB edges, so " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:131: constructor_uses_global_object: The constructor of global object "GreedyRegClassPriorityTrumpsGlobalness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GreedyRegClassPriorityTrumpsGlobalness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 129| cl::init(10000), cl::Hidden); +# 130| +# 131|-> static cl::opt GreedyRegClassPriorityTrumpsGlobalness( +# 132| "greedy-regclass-priority-trumps-globalness", +# 133| cl::desc("Change the greedy register allocator's live range priority " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:138: constructor_uses_global_object: The constructor of global object "GreedyReverseLocalAssignment" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GreedyReverseLocalAssignment" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| cl::Hidden); +# 137| +# 138|-> static cl::opt GreedyReverseLocalAssignment( +# 139| "greedy-reverse-local-assignment", +# 140| cl::desc("Reverse allocation order of local live ranges, such that " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocPBQP.cpp:99: constructor_uses_global_object: The constructor of global object "PBQPCoalescing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PBQPCoalescing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| +# 98| static cl::opt +# 99|-> PBQPCoalescing("pbqp-coalescing", +# 100| cl::desc("Attempt coalescing during PBQP register allocation."), +# 101| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocPriorityAdvisor.cpp:23: constructor_uses_global_object: The constructor of global object "Mode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| using namespace llvm; +# 22| +# 23|-> static cl::opt Mode( +# 24| "regalloc-enable-priority-advisor", cl::Hidden, +# 25| cl::init(RegAllocPriorityAdvisorAnalysis::AdvisorMode::Default), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:29: constructor_uses_global_object: The constructor of global object "CopyWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CopyWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| +# 28| using namespace llvm; +# 29|-> cl::opt CopyWeight("regalloc-copy-weight", cl::init(0.2), cl::Hidden); +# 30| cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31| cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:30: constructor_uses_global_object: The constructor of global object "LoadWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoadWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace llvm; +# 29| cl::opt CopyWeight("regalloc-copy-weight", cl::init(0.2), cl::Hidden); +# 30|-> cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31| cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); +# 32| cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:31: constructor_uses_global_object: The constructor of global object "StoreWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StoreWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| cl::opt CopyWeight("regalloc-copy-weight", cl::init(0.2), cl::Hidden); +# 30| cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31|-> cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); +# 32| cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), +# 33| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:32: constructor_uses_global_object: The constructor of global object "CheapRematWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CheapRematWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31| cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); +# 32|-> cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), +# 33| cl::Hidden); +# 34| cl::opt ExpensiveRematWeight("regalloc-expensive-remat-weight", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:34: constructor_uses_global_object: The constructor of global object "ExpensiveRematWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpensiveRematWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), +# 33| cl::Hidden); +# 34|-> cl::opt ExpensiveRematWeight("regalloc-expensive-remat-weight", +# 35| cl::init(1.0), cl::Hidden); +# 36| #define DEBUG_TYPE "regalloc-score" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterClassInfo.cpp:37: constructor_uses_global_object: The constructor of global object "StressRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static cl::opt +# 37|-> StressRA("stress-regalloc", cl::Hidden, cl::init(0), cl::value_desc("N"), +# 38| cl::desc("Limit all regclasses to N registers")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:75: constructor_uses_global_object: The constructor of global object "EnableJoining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableJoining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| STATISTIC(NumShrinkToUses, "Number of shrinkToUses called"); +# 74| +# 75|-> static cl::opt EnableJoining("join-liveintervals", +# 76| cl::desc("Coalesce copies (default=true)"), +# 77| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:79: constructor_uses_global_object: The constructor of global object "UseTerminalRule" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseTerminalRule" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| cl::init(true), cl::Hidden); +# 78| +# 79|-> static cl::opt UseTerminalRule("terminal-rule", +# 80| cl::desc("Apply the terminal rule"), +# 81| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:85: constructor_uses_global_object: The constructor of global object "EnableJoinSplits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableJoinSplits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| /// Temporary flag to test critical edge unsplitting. +# 84| static cl::opt +# 85|-> EnableJoinSplits("join-splitedges", +# 86| cl::desc("Coalesce copies on split edges (default=subtarget)"), cl::Hidden); +# 87| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:90: constructor_uses_global_object: The constructor of global object "EnableGlobalCopies" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalCopies" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| /// Temporary flag to test global copy optimization. +# 89| static cl::opt +# 90|-> EnableGlobalCopies("join-globalcopies", +# 91| cl::desc("Coalesce copies that span blocks (default=subtarget)"), +# 92| cl::init(cl::BOU_UNSET), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:95: constructor_uses_global_object: The constructor of global object "VerifyCoalescing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyCoalescing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> VerifyCoalescing("verify-coalescing", +# 96| cl::desc("Verify machine instrs before and after register coalescing"), +# 97| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:99: constructor_uses_global_object: The constructor of global object "LateRematUpdateThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LateRematUpdateThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| cl::Hidden); +# 98| +# 99|-> static cl::opt LateRematUpdateThreshold( +# 100| "late-remat-update-threshold", cl::Hidden, +# 101| cl::desc("During rematerialization for a copy, if the def instruction has " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:108: constructor_uses_global_object: The constructor of global object "LargeIntervalSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LargeIntervalSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| cl::init(100)); +# 107| +# 108|-> static cl::opt LargeIntervalSizeThreshold( +# 109| "large-interval-size-threshold", cl::Hidden, +# 110| cl::desc("If the valnos size of an interval is larger than the threshold, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:114: constructor_uses_global_object: The constructor of global object "LargeIntervalFreqThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LargeIntervalFreqThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| cl::init(100)); +# 113| +# 114|-> static cl::opt LargeIntervalFreqThreshold( +# 115| "large-interval-freq-threshold", cl::Hidden, +# 116| cl::desc("For a large interval, if it is coalesed with other live " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterUsageInfo.cpp:31: constructor_uses_global_object: The constructor of global object "DumpRegUsage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DumpRegUsage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt DumpRegUsage( +# 32| "print-regusage", cl::init(false), cl::Hidden, +# 33| cl::desc("print register usage details collected for analysis.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SafeStack.cpp:97: constructor_uses_global_object: The constructor of global object "SafeStackUsePointerAddress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SafeStackUsePointerAddress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| /// access safe stack pointer. +# 96| static cl::opt +# 97|-> SafeStackUsePointerAddress("safestack-use-pointer-address", +# 98| cl::init(false), cl::Hidden); +# 99| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SafeStack.cpp:100: constructor_uses_global_object: The constructor of global object "ClColoring" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClColoring" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| cl::init(false), cl::Hidden); +# 99| +# 100|-> static cl::opt ClColoring("safe-stack-coloring", +# 101| cl::desc("enable safe stack coloring"), +# 102| cl::Hidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SafeStackLayout.cpp:23: constructor_uses_global_object: The constructor of global object "ClLayout" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClLayout" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| #define DEBUG_TYPE "safestacklayout" +# 22| +# 23|-> static cl::opt ClLayout("safe-stack-layout", +# 24| cl::desc("enable safe stack layout"), cl::Hidden, +# 25| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:65: constructor_uses_global_object: The constructor of global object "EnableAASchedMI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAASchedMI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| static cl::opt +# 65|-> EnableAASchedMI("enable-aa-sched-mi", cl::Hidden, +# 66| cl::desc("Enable use of AA during MI DAG construction")); +# 67| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:68: constructor_uses_global_object: The constructor of global object "UseTBAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseTBAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| cl::desc("Enable use of AA during MI DAG construction")); +# 67| +# 68|-> static cl::opt UseTBAA("use-tbaa-in-sched-mi", cl::Hidden, +# 69| cl::init(true), cl::desc("Enable use of TBAA during MI DAG construction")); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:77: constructor_uses_global_object: The constructor of global object "HugeRegion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeRegion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| // When Stores and Loads maps (or NonAliasStores and NonAliasLoads) +# 76| // together hold this many SUs, a reduction of maps will be done. +# 77|-> static cl::opt HugeRegion("dag-maps-huge-region", cl::Hidden, +# 78| cl::init(1000), cl::desc("The limit to use while constructing the DAG " +# 79| "prior to scheduling, at which point a trade-off " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:82: constructor_uses_global_object: The constructor of global object "ReductionSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReductionSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| "is made to avoid excessive compile time.")); +# 81| +# 82|-> static cl::opt ReductionSize( +# 83| "dag-maps-reduction-size", cl::Hidden, +# 84| cl::desc("A huge scheduling region will have maps reduced by this many " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:62: constructor_uses_global_object: The constructor of global object "ColdOperandThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdOperandThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| STATISTIC(NumSelectsConverted, "Number of selects converted"); +# 61| +# 62|-> static cl::opt ColdOperandThreshold( +# 63| "cold-operand-threshold", +# 64| cl::desc("Maximum frequency of path for an operand to be considered cold."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:67: constructor_uses_global_object: The constructor of global object "ColdOperandMaxCostMultiplier" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdOperandMaxCostMultiplier" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::init(20), cl::Hidden); +# 66| +# 67|-> static cl::opt ColdOperandMaxCostMultiplier( +# 68| "cold-operand-max-cost-multiplier", +# 69| cl::desc("Maximum cost multiplier of TCC_expensive for the dependence " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:74: constructor_uses_global_object: The constructor of global object "GainGradientThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GainGradientThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| +# 73| static cl::opt +# 74|-> GainGradientThreshold("select-opti-loop-gradient-gain-threshold", +# 75| cl::desc("Gradient gain threshold (%)."), +# 76| cl::init(25), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:79: constructor_uses_global_object: The constructor of global object "GainCycleThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GainCycleThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> GainCycleThreshold("select-opti-loop-cycle-gain-threshold", +# 80| cl::desc("Minimum gain per loop (in cycles) threshold."), +# 81| cl::init(4), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:83: constructor_uses_global_object: The constructor of global object "GainRelativeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GainRelativeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| cl::init(4), cl::Hidden); +# 82| +# 83|-> static cl::opt GainRelativeThreshold( +# 84| "select-opti-loop-relative-gain-threshold", +# 85| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:89: constructor_uses_global_object: The constructor of global object "MispredictDefaultRate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MispredictDefaultRate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| cl::init(8), cl::Hidden); +# 88| +# 89|-> static cl::opt MispredictDefaultRate( +# 90| "mispredict-default-rate", cl::Hidden, cl::init(25), +# 91| cl::desc("Default mispredict rate (initialized to 25%).")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:94: constructor_uses_global_object: The constructor of global object "DisableLoopLevelHeuristics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLoopLevelHeuristics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| +# 93| static cl::opt +# 94|-> DisableLoopLevelHeuristics("disable-loop-level-heuristics", cl::Hidden, +# 95| cl::init(false), +# 96| cl::desc("Disable loop-level heuristics.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:91: constructor_uses_global_object: The constructor of global object "CombinerGlobalAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CombinerGlobalAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| +# 90| static cl::opt +# 91|-> CombinerGlobalAA("combiner-global-alias-analysis", cl::Hidden, +# 92| cl::desc("Enable DAG combiner's use of IR alias analysis")); +# 93| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:95: constructor_uses_global_object: The constructor of global object "UseTBAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseTBAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> UseTBAA("combiner-use-tbaa", cl::Hidden, cl::init(true), +# 96| cl::desc("Enable DAG combiner's use of TBAA")); +# 97| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:108: constructor_uses_global_object: The constructor of global object "StressLoadSlicing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressLoadSlicing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| /// is enabled, load slicing bypasses most of its profitability guards. +# 107| static cl::opt +# 108|-> StressLoadSlicing("combiner-stress-load-slicing", cl::Hidden, +# 109| cl::desc("Bypass the profitability model of load slicing"), +# 110| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:113: constructor_uses_global_object: The constructor of global object "MaySplitLoadIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaySplitLoadIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| +# 112| static cl::opt +# 113|-> MaySplitLoadIndex("combiner-split-load-index", cl::Hidden, cl::init(true), +# 114| cl::desc("DAG combiner may split indexing from loads")); +# 115| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:117: constructor_uses_global_object: The constructor of global object "EnableStoreMerging" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableStoreMerging" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 115| +# 116| static cl::opt +# 117|-> EnableStoreMerging("combiner-store-merging", cl::Hidden, cl::init(true), +# 118| cl::desc("DAG combiner enable merging multiple stores " +# 119| "into a wider store")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:121: constructor_uses_global_object: The constructor of global object "TokenFactorInlineLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TokenFactorInlineLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| "into a wider store")); +# 120| +# 121|-> static cl::opt TokenFactorInlineLimit( +# 122| "combiner-tokenfactor-inline-limit", cl::Hidden, cl::init(2048), +# 123| cl::desc("Limit the number of operands to inline for Token Factors")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:125: constructor_uses_global_object: The constructor of global object "StoreMergeDependenceLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StoreMergeDependenceLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| cl::desc("Limit the number of operands to inline for Token Factors")); +# 124| +# 125|-> static cl::opt StoreMergeDependenceLimit( +# 126| "combiner-store-merge-dependence-limit", cl::Hidden, cl::init(10), +# 127| cl::desc("Limit the number of times for the same StoreNode and RootNode " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:130: constructor_uses_global_object: The constructor of global object "EnableReduceLoadOpStoreWidth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableReduceLoadOpStoreWidth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| "to bail out in store merging dependence check")); +# 129| +# 130|-> static cl::opt EnableReduceLoadOpStoreWidth( +# 131| "combiner-reduce-load-op-store-width", cl::Hidden, cl::init(true), +# 132| cl::desc("DAG combiner enable reducing the width of load/op/store " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:135: constructor_uses_global_object: The constructor of global object "EnableShrinkLoadReplaceStoreWithStore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableShrinkLoadReplaceStoreWithStore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| "sequence")); +# 134| +# 135|-> static cl::opt EnableShrinkLoadReplaceStoreWithStore( +# 136| "combiner-shrink-load-replace-store-with-store", cl::Hidden, cl::init(true), +# 137| cl::desc("DAG combiner enable load//store with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:140: constructor_uses_global_object: The constructor of global object "EnableVectorFCopySignExtendRound" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableVectorFCopySignExtendRound" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| "a narrower store")); +# 139| +# 140|-> static cl::opt EnableVectorFCopySignExtendRound( +# 141| "combiner-vector-fcopysign-extend-round", cl::Hidden, cl::init(false), +# 142| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:26: constructor_uses_global_object: The constructor of global object "EnableExpensiveChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableExpensiveChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> EnableExpensiveChecks("enable-legalize-types-checking", cl::Hidden); +# 27| +# 28| /// Do extensive, expensive, basic correctness checking. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp:36: constructor_uses_global_object: The constructor of global object "DisableDFASched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDFASched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> DisableDFASched("disable-dfa-sched", cl::Hidden, +# 37| cl::desc("Disable use of DFA during scheduling")); +# 38| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp:39: constructor_uses_global_object: The constructor of global object "RegPressureThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RegPressureThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::desc("Disable use of DFA during scheduling")); +# 38| +# 39|-> static cl::opt RegPressureThreshold( +# 40| "dfa-sched-reg-pressure-threshold", cl::Hidden, cl::init(5), +# 41| cl::desc("Track reg pressure and switch priority to in-depth")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:92: constructor_uses_global_object: The constructor of global object "DisableSchedCycles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedCycles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| createILPListDAGScheduler); +# 91| +# 92|-> static cl::opt DisableSchedCycles( +# 93| "disable-sched-cycles", cl::Hidden, cl::init(false), +# 94| cl::desc("Disable cycle-level precision during preRA scheduling")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:98: constructor_uses_global_object: The constructor of global object "DisableSchedRegPressure" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedRegPressure" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| // Temporary sched=list-ilp flags until the heuristics are robust. +# 97| // Some options are also available under sched=list-hybrid. +# 98|-> static cl::opt DisableSchedRegPressure( +# 99| "disable-sched-reg-pressure", cl::Hidden, cl::init(false), +# 100| cl::desc("Disable regpressure priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:101: constructor_uses_global_object: The constructor of global object "DisableSchedLiveUses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedLiveUses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 99| "disable-sched-reg-pressure", cl::Hidden, cl::init(false), +# 100| cl::desc("Disable regpressure priority in sched=list-ilp")); +# 101|-> static cl::opt DisableSchedLiveUses( +# 102| "disable-sched-live-uses", cl::Hidden, cl::init(true), +# 103| cl::desc("Disable live use priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:104: constructor_uses_global_object: The constructor of global object "DisableSchedVRegCycle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedVRegCycle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| "disable-sched-live-uses", cl::Hidden, cl::init(true), +# 103| cl::desc("Disable live use priority in sched=list-ilp")); +# 104|-> static cl::opt DisableSchedVRegCycle( +# 105| "disable-sched-vrcycle", cl::Hidden, cl::init(false), +# 106| cl::desc("Disable virtual register cycle interference checks")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:107: constructor_uses_global_object: The constructor of global object "DisableSchedPhysRegJoin" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedPhysRegJoin" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| "disable-sched-vrcycle", cl::Hidden, cl::init(false), +# 106| cl::desc("Disable virtual register cycle interference checks")); +# 107|-> static cl::opt DisableSchedPhysRegJoin( +# 108| "disable-sched-physreg-join", cl::Hidden, cl::init(false), +# 109| cl::desc("Disable physreg def-use affinity")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:110: constructor_uses_global_object: The constructor of global object "DisableSchedStalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedStalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| "disable-sched-physreg-join", cl::Hidden, cl::init(false), +# 109| cl::desc("Disable physreg def-use affinity")); +# 110|-> static cl::opt DisableSchedStalls( +# 111| "disable-sched-stalls", cl::Hidden, cl::init(true), +# 112| cl::desc("Disable no-stall priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:113: constructor_uses_global_object: The constructor of global object "DisableSchedCriticalPath" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedCriticalPath" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| "disable-sched-stalls", cl::Hidden, cl::init(true), +# 112| cl::desc("Disable no-stall priority in sched=list-ilp")); +# 113|-> static cl::opt DisableSchedCriticalPath( +# 114| "disable-sched-critical-path", cl::Hidden, cl::init(false), +# 115| cl::desc("Disable critical path priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:116: constructor_uses_global_object: The constructor of global object "DisableSchedHeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedHeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| "disable-sched-critical-path", cl::Hidden, cl::init(false), +# 115| cl::desc("Disable critical path priority in sched=list-ilp")); +# 116|-> static cl::opt DisableSchedHeight( +# 117| "disable-sched-height", cl::Hidden, cl::init(false), +# 118| cl::desc("Disable scheduled-height priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:119: constructor_uses_global_object: The constructor of global object "Disable2AddrHack" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Disable2AddrHack" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| "disable-sched-height", cl::Hidden, cl::init(false), +# 118| cl::desc("Disable scheduled-height priority in sched=list-ilp")); +# 119|-> static cl::opt Disable2AddrHack( +# 120| "disable-2addr-hack", cl::Hidden, cl::init(true), +# 121| cl::desc("Disable scheduler's two-address hack")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:123: constructor_uses_global_object: The constructor of global object "MaxReorderWindow" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxReorderWindow" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 121| cl::desc("Disable scheduler's two-address hack")); +# 122| +# 123|-> static cl::opt MaxReorderWindow( +# 124| "max-sched-reorder", cl::Hidden, cl::init(6), +# 125| cl::desc("Number of instructions to allow ahead of the critical path " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:128: constructor_uses_global_object: The constructor of global object "AvgIPC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AvgIPC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| "in sched=list-ilp")); +# 127| +# 128|-> static cl::opt AvgIPC( +# 129| "sched-avg-ipc", cl::Hidden, cl::init(1), +# 130| cl::desc("Average inst/cycle whan no target itinerary exists.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp:44: constructor_uses_global_object: The constructor of global object "HighLatencyCycles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HighLatencyCycles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| // without a target itinerary. The choice of number here has more to do with +# 43| // balancing scheduler heuristics than with the actual machine latency. +# 44|-> static cl::opt HighLatencyCycles( +# 45| "sched-high-latency-cycles", cl::Hidden, cl::init(10), +# 46| cl::desc("Roughly estimate the number of cycles that 'long latency'" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:101: constructor_uses_global_object: The constructor of global object "EnableMemCpyDAGOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemCpyDAGOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 99| #define DEBUG_TYPE "selectiondag" +# 100| +# 101|-> static cl::opt EnableMemCpyDAGOpt("enable-memcpy-dag-opt", +# 102| cl::Hidden, cl::init(true), +# 103| cl::desc("Gang up loads and stores generated by inlining of memcpy")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:105: constructor_uses_global_object: The constructor of global object "MaxLdStGlue" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxLdStGlue" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 103| cl::desc("Gang up loads and stores generated by inlining of memcpy")); +# 104| +# 105|-> static cl::opt MaxLdStGlue("ldstmemcpy-glue-max", +# 106| cl::desc("Number limit for gluing ld/st of memcpy."), +# 107| cl::Hidden, cl::init(0)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5456: var_decl: Declaring variable "apf". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5458: uninit_use_in_call: Using uninitialized value "apf.U" when calling "convertFromAPInt". +# 5456| APFloat apf(EVTToAPFloatSemantics(VT), +# 5457| APInt::getZero(VT.getSizeInBits())); +# 5458|-> (void)apf.convertFromAPInt(Val, +# 5459| Opcode==ISD::SINT_TO_FP, +# 5460| APFloat::rmNearestTiesToEven); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:119: constructor_uses_global_object: The constructor of global object "InsertAssertAlign" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InsertAssertAlign" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| +# 118| static cl::opt +# 119|-> InsertAssertAlign("insert-assert-align", cl::init(true), +# 120| cl::desc("Insert the experimental `assertalign` node."), +# 121| cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:124: constructor_uses_global_object: The constructor of global object "LimitFPPrecision" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LimitFPPrecision" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| +# 123| static cl::opt +# 124|-> LimitFPPrecision("limit-float-precision", +# 125| cl::desc("Generate low-precision inline sequences " +# 126| "for some float libcalls"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:130: constructor_uses_global_object: The constructor of global object "SwitchPeelThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwitchPeelThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| cl::init(0)); +# 129| +# 130|-> static cl::opt SwitchPeelThreshold( +# 131| "switch-peel-threshold", cl::Hidden, cl::init(66), +# 132| cl::desc("Set the case probability threshold for peeling the case from a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp:54: constructor_uses_global_object: The constructor of global object "VerboseDAGDumping" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerboseDAGDumping" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::opt +# 54|-> VerboseDAGDumping("dag-dump-verbose", cl::Hidden, +# 55| cl::desc("Display more information when dumping selection " +# 56| "DAG nodes.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:126: constructor_uses_global_object: The constructor of global object "EnableFastISelAbort" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFastISelAbort" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| "Number of entry blocks where fast isel failed to lower arguments"); +# 125| +# 126|-> static cl::opt EnableFastISelAbort( +# 127| "fast-isel-abort", cl::Hidden, +# 128| cl::desc("Enable abort calls when \"fast\" instruction selection " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:134: constructor_uses_global_object: The constructor of global object "EnableFastISelFallbackReport" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFastISelFallbackReport" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| "to SelectionDAG.")); +# 133| +# 134|-> static cl::opt EnableFastISelFallbackReport( +# 135| "fast-isel-report-on-fallback", cl::Hidden, +# 136| cl::desc("Emit a diagnostic when \"fast\" instruction selection " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:140: constructor_uses_global_object: The constructor of global object "UseMBPI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseMBPI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> UseMBPI("use-mbpi", +# 141| cl::desc("use Machine Branch Probability Info"), +# 142| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:198: constructor_uses_global_object: The constructor of global object "ISHeuristic" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ISHeuristic" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 196| static cl::opt> +# 198|-> ISHeuristic("pre-RA-sched", +# 199| cl::init(&createDefaultScheduler), cl::Hidden, +# 200| cl::desc("Instruction schedulers available (before register" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:65: constructor_uses_global_object: The constructor of global object "UseRegistersForDeoptValues" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseRegistersForDeoptValues" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| "Maximum number of stack slots required for a singe statepoint"); +# 64| +# 65|-> cl::opt UseRegistersForDeoptValues( +# 66| "use-registers-for-deopt-values", cl::Hidden, cl::init(false), +# 67| cl::desc("Allow using registers for non pointer deopt args")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:69: constructor_uses_global_object: The constructor of global object "UseRegistersForGCPointersInLandingPad" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseRegistersForGCPointersInLandingPad" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::desc("Allow using registers for non pointer deopt args")); +# 68| +# 69|-> cl::opt UseRegistersForGCPointersInLandingPad( +# 70| "use-registers-for-gc-values-in-landing-pad", cl::Hidden, cl::init(false), +# 71| cl::desc("Allow using registers for gc pointer in landing pad")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:73: constructor_uses_global_object: The constructor of global object "MaxRegistersForGCPointers" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxRegistersForGCPointers" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::desc("Allow using registers for gc pointer in landing pad")); +# 72| +# 73|-> cl::opt MaxRegistersForGCPointers( +# 74| "max-registers-for-gc-values", cl::Hidden, cl::init(0), +# 75| cl::desc("Max number of VRegs allowed to pass GC pointer meta args in")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ShrinkWrap.cpp:99: constructor_uses_global_object: The constructor of global object "EnableShrinkWrapOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableShrinkWrapOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| +# 98| static cl::opt +# 99|-> EnableShrinkWrapOpt("enable-shrink-wrap", cl::Hidden, +# 100| cl::desc("enable the shrink-wrapping pass")); +# 101| static cl::opt EnablePostShrinkWrapOpt( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ShrinkWrap.cpp:101: constructor_uses_global_object: The constructor of global object "EnablePostShrinkWrapOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostShrinkWrapOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 99| EnableShrinkWrapOpt("enable-shrink-wrap", cl::Hidden, +# 100| cl::desc("enable the shrink-wrapping pass")); +# 101|-> static cl::opt EnablePostShrinkWrapOpt( +# 102| "enable-shrink-wrap-region-split", cl::init(true), cl::Hidden, +# 103| cl::desc("enable splitting of the restore block if possible")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackColoring.cpp:67: constructor_uses_global_object: The constructor of global object "DisableColoring" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableColoring" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl::opt +# 67|-> DisableColoring("no-stack-coloring", +# 68| cl::init(false), cl::Hidden, +# 69| cl::desc("Disable stack coloring")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackColoring.cpp:77: constructor_uses_global_object: The constructor of global object "ProtectFromEscapedAllocas" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProtectFromEscapedAllocas" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| /// is treated as overriding LifetimeStartOnFirstUse below. +# 76| static cl::opt +# 77|-> ProtectFromEscapedAllocas("protect-from-escaped-allocas", +# 78| cl::init(false), cl::Hidden, +# 79| cl::desc("Do not optimize lifetime zones that " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackColoring.cpp:87: constructor_uses_global_object: The constructor of global object "LifetimeStartOnFirstUse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LifetimeStartOnFirstUse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| /// more info. +# 86| static cl::opt +# 87|-> LifetimeStartOnFirstUse("stackcoloring-lifetime-start-on-first-use", +# 88| cl::init(true), cl::Hidden, +# 89| cl::desc("Treat stack lifetimes as starting on first use, not on START marker.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackMapLivenessAnalysis.cpp:31: constructor_uses_global_object: The constructor of global object "EnablePatchPointLiveness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePatchPointLiveness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| #define DEBUG_TYPE "stackmaps" +# 30| +# 31|-> static cl::opt EnablePatchPointLiveness( +# 32| "enable-patchpoint-liveness", cl::Hidden, cl::init(true), +# 33| cl::desc("Enable PatchPoint Liveness Analysis Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackMaps.cpp:42: constructor_uses_global_object: The constructor of global object "StackMapVersion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackMapVersion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| #define DEBUG_TYPE "stackmaps" +# 41| +# 42|-> static cl::opt StackMapVersion( +# 43| "stackmap-version", cl::init(3), cl::Hidden, +# 44| cl::desc("Specify the stackmap encoding version (default = 3)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackProtector.cpp:62: constructor_uses_global_object: The constructor of global object "EnableSelectionDAGSP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSelectionDAGSP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| " taken."); +# 61| +# 62|-> static cl::opt EnableSelectionDAGSP("enable-selectiondag-sp", +# 63| cl::init(true), cl::Hidden); +# 64| static cl::opt DisableCheckNoReturn("disable-check-noreturn-call", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackProtector.cpp:64: constructor_uses_global_object: The constructor of global object "DisableCheckNoReturn" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCheckNoReturn" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| static cl::opt EnableSelectionDAGSP("enable-selectiondag-sp", +# 63| cl::init(true), cl::Hidden); +# 64|-> static cl::opt DisableCheckNoReturn("disable-check-noreturn-call", +# 65| cl::init(false), cl::Hidden); +# 66| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackSlotColoring.cpp:50: constructor_uses_global_object: The constructor of global object "DisableSharing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSharing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> DisableSharing("no-stack-slot-sharing", +# 51| cl::init(false), cl::Hidden, +# 52| cl::desc("Suppress slot sharing during stack coloring")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackSlotColoring.cpp:54: constructor_uses_global_object: The constructor of global object "DCELimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DCELimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::desc("Suppress slot sharing during stack coloring")); +# 53| +# 54|-> static cl::opt DCELimit("ssc-dce-limit", cl::init(-1), cl::Hidden); +# 55| +# 56| STATISTIC(NumEliminated, "Number of stack slots eliminated due to coloring"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:60: constructor_uses_global_object: The constructor of global object "TailDuplicateSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDuplicateSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| +# 59| // Heuristic for tail duplication. +# 60|-> static cl::opt TailDuplicateSize( +# 61| "tail-dup-size", +# 62| cl::desc("Maximum instructions to consider tail duplicating"), cl::init(2), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:65: constructor_uses_global_object: The constructor of global object "TailDupIndirectBranchSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupIndirectBranchSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::Hidden); +# 64| +# 65|-> static cl::opt TailDupIndirectBranchSize( +# 66| "tail-dup-indirect-size", +# 67| cl::desc("Maximum instructions to consider tail duplicating blocks that " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:72: constructor_uses_global_object: The constructor of global object "TailDupVerify" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupVerify" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| +# 71| static cl::opt +# 72|-> TailDupVerify("tail-dup-verify", +# 73| cl::desc("Verify sanity of PHI instructions during taildup"), +# 74| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:76: constructor_uses_global_object: The constructor of global object "TailDupLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| cl::init(false), cl::Hidden); +# 75| +# 76|-> static cl::opt TailDupLimit("tail-dup-limit", cl::init(~0U), +# 77| cl::Hidden); +# 78| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetInstrInfo.cpp:40: constructor_uses_global_object: The constructor of global object "DisableHazardRecognizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableHazardRecognizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| using namespace llvm; +# 39| +# 40|-> static cl::opt DisableHazardRecognizer( +# 41| "disable-sched-hazard", cl::Hidden, cl::init(false), +# 42| cl::desc("Disable hazard detection during preRA scheduling")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:68: constructor_uses_global_object: The constructor of global object "JumpIsExpensiveOverride" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpIsExpensiveOverride" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| using namespace llvm; +# 67| +# 68|-> static cl::opt JumpIsExpensiveOverride( +# 69| "jump-is-expensive", cl::init(false), +# 70| cl::desc("Do not create extra branches to split comparison logic."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:73: constructor_uses_global_object: The constructor of global object "MinimumJumpTableEntries" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MinimumJumpTableEntries" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::Hidden); +# 72| +# 73|-> static cl::opt MinimumJumpTableEntries +# 74| ("min-jump-table-entries", cl::init(4), cl::Hidden, +# 75| cl::desc("Set minimum number of entries to use a jump table.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:77: constructor_uses_global_object: The constructor of global object "MaximumJumpTableSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaximumJumpTableSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::desc("Set minimum number of entries to use a jump table.")); +# 76| +# 77|-> static cl::opt MaximumJumpTableSize +# 78| ("max-jump-table-size", cl::init(UINT_MAX), cl::Hidden, +# 79| cl::desc("Set maximum size of jump tables.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:83: constructor_uses_global_object: The constructor of global object "JumpTableDensity" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpTableDensity" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| /// Minimum jump table density for normal functions. +# 82| static cl::opt +# 83|-> JumpTableDensity("jump-table-density", cl::init(10), cl::Hidden, +# 84| cl::desc("Minimum density for building a jump table in " +# 85| "a normal function")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:88: constructor_uses_global_object: The constructor of global object "OptsizeJumpTableDensity" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptsizeJumpTableDensity" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| +# 87| /// Minimum jump table density for -Os or -Oz functions. +# 88|-> static cl::opt OptsizeJumpTableDensity( +# 89| "optsize-jump-table-density", cl::init(40), cl::Hidden, +# 90| cl::desc("Minimum density for building a jump table in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:97: constructor_uses_global_object: The constructor of global object "DisableStrictNodeMutation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableStrictNodeMutation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| // during development. When the backend supports strict float operation, this +# 96| // option will be meaningless. +# 97|-> static cl::opt DisableStrictNodeMutation("disable-strictnode-mutation", +# 98| cl::desc("Don't mutate strict-float node to a legalize node"), +# 99| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp:74: constructor_uses_global_object: The constructor of global object "JumpTableInFunctionSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpTableInFunctionSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| using namespace dwarf; +# 73| +# 74|-> static cl::opt JumpTableInFunctionSection( +# 75| "jumptable-in-function-section", cl::Hidden, cl::init(false), +# 76| cl::desc("Putting Jump Table in function section")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:58: constructor_uses_global_object: The constructor of global object "EnableIPRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableIPRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| +# 57| static cl::opt +# 58|-> EnableIPRA("enable-ipra", cl::init(false), cl::Hidden, +# 59| cl::desc("Enable interprocedural register allocation " +# 60| "to reduce load/store at procedure calls.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:61: constructor_uses_global_object: The constructor of global object "DisablePostRASched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePostRASched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| cl::desc("Enable interprocedural register allocation " +# 60| "to reduce load/store at procedure calls.")); +# 61|-> static cl::opt DisablePostRASched("disable-post-ra", cl::Hidden, +# 62| cl::desc("Disable Post Regalloc Scheduler")); +# 63| static cl::opt DisableBranchFold("disable-branch-fold", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:63: constructor_uses_global_object: The constructor of global object "DisableBranchFold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBranchFold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| static cl::opt DisablePostRASched("disable-post-ra", cl::Hidden, +# 62| cl::desc("Disable Post Regalloc Scheduler")); +# 63|-> static cl::opt DisableBranchFold("disable-branch-fold", cl::Hidden, +# 64| cl::desc("Disable branch folding")); +# 65| static cl::opt DisableTailDuplicate("disable-tail-duplicate", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:65: constructor_uses_global_object: The constructor of global object "DisableTailDuplicate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTailDuplicate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| static cl::opt DisableBranchFold("disable-branch-fold", cl::Hidden, +# 64| cl::desc("Disable branch folding")); +# 65|-> static cl::opt DisableTailDuplicate("disable-tail-duplicate", cl::Hidden, +# 66| cl::desc("Disable tail duplication")); +# 67| static cl::opt DisableEarlyTailDup("disable-early-taildup", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:67: constructor_uses_global_object: The constructor of global object "DisableEarlyTailDup" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableEarlyTailDup" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| static cl::opt DisableTailDuplicate("disable-tail-duplicate", cl::Hidden, +# 66| cl::desc("Disable tail duplication")); +# 67|-> static cl::opt DisableEarlyTailDup("disable-early-taildup", cl::Hidden, +# 68| cl::desc("Disable pre-register allocation tail duplication")); +# 69| static cl::opt DisableBlockPlacement("disable-block-placement", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:69: constructor_uses_global_object: The constructor of global object "DisableBlockPlacement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBlockPlacement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| static cl::opt DisableEarlyTailDup("disable-early-taildup", cl::Hidden, +# 68| cl::desc("Disable pre-register allocation tail duplication")); +# 69|-> static cl::opt DisableBlockPlacement("disable-block-placement", +# 70| cl::Hidden, cl::desc("Disable probability-driven block placement")); +# 71| static cl::opt EnableBlockPlacementStats("enable-block-placement-stats", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:71: constructor_uses_global_object: The constructor of global object "EnableBlockPlacementStats" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableBlockPlacementStats" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| static cl::opt DisableBlockPlacement("disable-block-placement", +# 70| cl::Hidden, cl::desc("Disable probability-driven block placement")); +# 71|-> static cl::opt EnableBlockPlacementStats("enable-block-placement-stats", +# 72| cl::Hidden, cl::desc("Collect probability-driven block placement stats")); +# 73| static cl::opt DisableSSC("disable-ssc", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:73: constructor_uses_global_object: The constructor of global object "DisableSSC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSSC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| static cl::opt EnableBlockPlacementStats("enable-block-placement-stats", +# 72| cl::Hidden, cl::desc("Collect probability-driven block placement stats")); +# 73|-> static cl::opt DisableSSC("disable-ssc", cl::Hidden, +# 74| cl::desc("Disable Stack Slot Coloring")); +# 75| static cl::opt DisableMachineDCE("disable-machine-dce", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:75: constructor_uses_global_object: The constructor of global object "DisableMachineDCE" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineDCE" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| static cl::opt DisableSSC("disable-ssc", cl::Hidden, +# 74| cl::desc("Disable Stack Slot Coloring")); +# 75|-> static cl::opt DisableMachineDCE("disable-machine-dce", cl::Hidden, +# 76| cl::desc("Disable Machine Dead Code Elimination")); +# 77| static cl::opt DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:77: constructor_uses_global_object: The constructor of global object "DisableEarlyIfConversion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableEarlyIfConversion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| static cl::opt DisableMachineDCE("disable-machine-dce", cl::Hidden, +# 76| cl::desc("Disable Machine Dead Code Elimination")); +# 77|-> static cl::opt DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden, +# 78| cl::desc("Disable Early If-conversion")); +# 79| static cl::opt DisableMachineLICM("disable-machine-licm", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:79: constructor_uses_global_object: The constructor of global object "DisableMachineLICM" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineLICM" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| static cl::opt DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden, +# 78| cl::desc("Disable Early If-conversion")); +# 79|-> static cl::opt DisableMachineLICM("disable-machine-licm", cl::Hidden, +# 80| cl::desc("Disable Machine LICM")); +# 81| static cl::opt DisableMachineCSE("disable-machine-cse", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:81: constructor_uses_global_object: The constructor of global object "DisableMachineCSE" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineCSE" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| static cl::opt DisableMachineLICM("disable-machine-licm", cl::Hidden, +# 80| cl::desc("Disable Machine LICM")); +# 81|-> static cl::opt DisableMachineCSE("disable-machine-cse", cl::Hidden, +# 82| cl::desc("Disable Machine Common Subexpression Elimination")); +# 83| static cl::opt OptimizeRegAlloc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:83: constructor_uses_global_object: The constructor of global object "OptimizeRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptimizeRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| static cl::opt DisableMachineCSE("disable-machine-cse", cl::Hidden, +# 82| cl::desc("Disable Machine Common Subexpression Elimination")); +# 83|-> static cl::opt OptimizeRegAlloc( +# 84| "optimize-regalloc", cl::Hidden, +# 85| cl::desc("Enable optimized register allocation compilation path.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:86: constructor_uses_global_object: The constructor of global object "DisablePostRAMachineLICM" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePostRAMachineLICM" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| "optimize-regalloc", cl::Hidden, +# 85| cl::desc("Enable optimized register allocation compilation path.")); +# 86|-> static cl::opt DisablePostRAMachineLICM("disable-postra-machine-licm", +# 87| cl::Hidden, +# 88| cl::desc("Disable Machine LICM")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:89: constructor_uses_global_object: The constructor of global object "DisableMachineSink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineSink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| cl::Hidden, +# 88| cl::desc("Disable Machine LICM")); +# 89|-> static cl::opt DisableMachineSink("disable-machine-sink", cl::Hidden, +# 90| cl::desc("Disable Machine Sinking")); +# 91| static cl::opt DisablePostRAMachineSink("disable-postra-machine-sink", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:91: constructor_uses_global_object: The constructor of global object "DisablePostRAMachineSink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePostRAMachineSink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| static cl::opt DisableMachineSink("disable-machine-sink", cl::Hidden, +# 90| cl::desc("Disable Machine Sinking")); +# 91|-> static cl::opt DisablePostRAMachineSink("disable-postra-machine-sink", +# 92| cl::Hidden, +# 93| cl::desc("Disable PostRA Machine Sinking")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:94: constructor_uses_global_object: The constructor of global object "DisableLSR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLSR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| cl::Hidden, +# 93| cl::desc("Disable PostRA Machine Sinking")); +# 94|-> static cl::opt DisableLSR("disable-lsr", cl::Hidden, +# 95| cl::desc("Disable Loop Strength Reduction Pass")); +# 96| static cl::opt DisableConstantHoisting("disable-constant-hoisting", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:96: constructor_uses_global_object: The constructor of global object "DisableConstantHoisting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableConstantHoisting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| static cl::opt DisableLSR("disable-lsr", cl::Hidden, +# 95| cl::desc("Disable Loop Strength Reduction Pass")); +# 96|-> static cl::opt DisableConstantHoisting("disable-constant-hoisting", +# 97| cl::Hidden, cl::desc("Disable ConstantHoisting")); +# 98| static cl::opt DisableCGP("disable-cgp", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:98: constructor_uses_global_object: The constructor of global object "DisableCGP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCGP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| static cl::opt DisableConstantHoisting("disable-constant-hoisting", +# 97| cl::Hidden, cl::desc("Disable ConstantHoisting")); +# 98|-> static cl::opt DisableCGP("disable-cgp", cl::Hidden, +# 99| cl::desc("Disable Codegen Prepare")); +# 100| static cl::opt DisableCopyProp("disable-copyprop", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:100: constructor_uses_global_object: The constructor of global object "DisableCopyProp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCopyProp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| static cl::opt DisableCGP("disable-cgp", cl::Hidden, +# 99| cl::desc("Disable Codegen Prepare")); +# 100|-> static cl::opt DisableCopyProp("disable-copyprop", cl::Hidden, +# 101| cl::desc("Disable Copy Propagation pass")); +# 102| static cl::opt DisablePartialLibcallInlining("disable-partial-libcall-inlining", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:102: constructor_uses_global_object: The constructor of global object "DisablePartialLibcallInlining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePartialLibcallInlining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 100| static cl::opt DisableCopyProp("disable-copyprop", cl::Hidden, +# 101| cl::desc("Disable Copy Propagation pass")); +# 102|-> static cl::opt DisablePartialLibcallInlining("disable-partial-libcall-inlining", +# 103| cl::Hidden, cl::desc("Disable Partial Libcall Inlining")); +# 104| static cl::opt DisableAtExitBasedGlobalDtorLowering( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:104: constructor_uses_global_object: The constructor of global object "DisableAtExitBasedGlobalDtorLowering" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAtExitBasedGlobalDtorLowering" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| static cl::opt DisablePartialLibcallInlining("disable-partial-libcall-inlining", +# 103| cl::Hidden, cl::desc("Disable Partial Libcall Inlining")); +# 104|-> static cl::opt DisableAtExitBasedGlobalDtorLowering( +# 105| "disable-atexit-based-global-dtor-lowering", cl::Hidden, +# 106| cl::desc("For MachO, disable atexit()-based global destructor lowering")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:107: constructor_uses_global_object: The constructor of global object "EnableImplicitNullChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableImplicitNullChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| "disable-atexit-based-global-dtor-lowering", cl::Hidden, +# 106| cl::desc("For MachO, disable atexit()-based global destructor lowering")); +# 107|-> static cl::opt EnableImplicitNullChecks( +# 108| "enable-implicit-null-checks", +# 109| cl::desc("Fold null checks into faulting memory operations"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:111: constructor_uses_global_object: The constructor of global object "DisableMergeICmps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMergeICmps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| cl::desc("Fold null checks into faulting memory operations"), +# 110| cl::init(false), cl::Hidden); +# 111|-> static cl::opt DisableMergeICmps("disable-mergeicmps", +# 112| cl::desc("Disable MergeICmps Pass"), +# 113| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:114: constructor_uses_global_object: The constructor of global object "PrintLSR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintLSR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| cl::desc("Disable MergeICmps Pass"), +# 113| cl::init(false), cl::Hidden); +# 114|-> static cl::opt PrintLSR("print-lsr-output", cl::Hidden, +# 115| cl::desc("Print LLVM IR produced by the loop-reduce pass")); +# 116| static cl::opt PrintISelInput("print-isel-input", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:116: constructor_uses_global_object: The constructor of global object "PrintISelInput" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintISelInput" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| static cl::opt PrintLSR("print-lsr-output", cl::Hidden, +# 115| cl::desc("Print LLVM IR produced by the loop-reduce pass")); +# 116|-> static cl::opt PrintISelInput("print-isel-input", cl::Hidden, +# 117| cl::desc("Print LLVM IR input to isel pass")); +# 118| static cl::opt PrintGCInfo("print-gc", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:118: constructor_uses_global_object: The constructor of global object "PrintGCInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintGCInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| static cl::opt PrintISelInput("print-isel-input", cl::Hidden, +# 117| cl::desc("Print LLVM IR input to isel pass")); +# 118|-> static cl::opt PrintGCInfo("print-gc", cl::Hidden, +# 119| cl::desc("Dump garbage collector data")); +# 120| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:121: constructor_uses_global_object: The constructor of global object "VerifyMachineCode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyMachineCode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| cl::desc("Dump garbage collector data")); +# 120| static cl::opt +# 121|-> VerifyMachineCode("verify-machineinstrs", cl::Hidden, +# 122| cl::desc("Verify generated machine code")); +# 123| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:124: constructor_uses_global_object: The constructor of global object "DebugifyAndStripAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugifyAndStripAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| cl::desc("Verify generated machine code")); +# 123| static cl::opt +# 124|-> DebugifyAndStripAll("debugify-and-strip-all-safe", cl::Hidden, +# 125| cl::desc("Debugify MIR before and Strip debug after " +# 126| "each pass except those known to be unsafe " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:128: constructor_uses_global_object: The constructor of global object "DebugifyCheckAndStripAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugifyCheckAndStripAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| "each pass except those known to be unsafe " +# 127| "when debug info is present")); +# 128|-> static cl::opt DebugifyCheckAndStripAll( +# 129| "debugify-check-and-strip-all-safe", cl::Hidden, +# 130| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:135: constructor_uses_global_object: The constructor of global object "EnableMachineOutliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMachineOutliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| "present")); +# 134| // Enable or disable the MachineOutliner. +# 135|-> static cl::opt EnableMachineOutliner( +# 136| "enable-machine-outliner", cl::desc("Enable the machine outliner"), +# 137| cl::Hidden, cl::ValueOptional, cl::init(RunOutliner::TargetDefault), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:147: constructor_uses_global_object: The constructor of global object "DisableCFIFixup" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCFIFixup" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 145| // the pipeline is controlled via the target options, this option serves as +# 146| // manual override. +# 147|-> static cl::opt DisableCFIFixup("disable-cfi-fixup", cl::Hidden, +# 148| cl::desc("Disable the CFI fixup pass")); +# 149| // Enable or disable FastISel. Both options are needed, because + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:153: constructor_uses_global_object: The constructor of global object "EnableFastISelOption" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFastISelOption" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| // able to enable or disable fast-isel independently from -O0. +# 152| static cl::opt +# 153|-> EnableFastISelOption("fast-isel", cl::Hidden, +# 154| cl::desc("Enable the \"fast\" instruction selector")); +# 155| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:156: constructor_uses_global_object: The constructor of global object "EnableGlobalISelOption" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalISelOption" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 154| cl::desc("Enable the \"fast\" instruction selector")); +# 155| +# 156|-> static cl::opt EnableGlobalISelOption( +# 157| "global-isel", cl::Hidden, +# 158| cl::desc("Enable the \"global\" instruction selector")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:163: constructor_uses_global_object: The constructor of global object "PrintAfterISel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAfterISel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| // first... +# 162| static cl::opt +# 163|-> PrintAfterISel("print-after-isel", cl::init(false), cl::Hidden, +# 164| cl::desc("Print machine instrs after ISel")); +# 165| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:166: constructor_uses_global_object: The constructor of global object "EnableGlobalISelAbort" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalISelAbort" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 164| cl::desc("Print machine instrs after ISel")); +# 165| +# 166|-> static cl::opt EnableGlobalISelAbort( +# 167| "global-isel-abort", cl::Hidden, +# 168| cl::desc("Enable abort calls when \"global\" instruction selection " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:178: constructor_uses_global_object: The constructor of global object "DisableRAFSProfileLoader" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableRAFSProfileLoader" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 176| // Disable MIRProfileLoader before RegAlloc. This is for for debugging and +# 177| // tuning purpose. +# 178|-> static cl::opt DisableRAFSProfileLoader( +# 179| "disable-ra-fsprofile-loader", cl::init(false), cl::Hidden, +# 180| cl::desc("Disable MIRProfileLoader before RegAlloc")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:183: constructor_uses_global_object: The constructor of global object "DisableLayoutFSProfileLoader" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLayoutFSProfileLoader" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 181| // Disable MIRProfileLoader before BloackPlacement. This is for for debugging +# 182| // and tuning purpose. +# 183|-> static cl::opt DisableLayoutFSProfileLoader( +# 184| "disable-layout-fsprofile-loader", cl::init(false), cl::Hidden, +# 185| cl::desc("Disable MIRProfileLoader before BlockPlacement")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:188: constructor_uses_global_object: The constructor of global object "FSProfileFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSProfileFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 186| // Specify FSProfile file name. +# 187| static cl::opt +# 188|-> FSProfileFile("fs-profile-file", cl::init(""), cl::value_desc("filename"), +# 189| cl::desc("Flow Sensitive profile file name."), cl::Hidden); +# 190| // Specify Remapping file for FSProfile. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:191: constructor_uses_global_object: The constructor of global object "FSRemappingFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSRemappingFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 189| cl::desc("Flow Sensitive profile file name."), cl::Hidden); +# 190| // Specify Remapping file for FSProfile. +# 191|-> static cl::opt FSRemappingFile( +# 192| "fs-remapping-file", cl::init(""), cl::value_desc("filename"), +# 193| cl::desc("Flow Sensitive profile remapping file name."), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:200: constructor_uses_global_object: The constructor of global object "MISchedPostRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MISchedPostRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 198| // Targets can return true in targetSchedulesPostRAScheduling() and +# 199| // insert a PostRA scheduling pass wherever it wants. +# 200|-> static cl::opt MISchedPostRA( +# 201| "misched-postra", cl::Hidden, +# 202| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:206: constructor_uses_global_object: The constructor of global object "EarlyLiveIntervals" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EarlyLiveIntervals" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 204| +# 205| // Experimental option to run live interval analysis early. +# 206|-> static cl::opt EarlyLiveIntervals("early-live-intervals", cl::Hidden, +# 207| cl::desc("Run live interval analysis earlier in the pipeline")); +# 208| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:218: constructor_uses_global_object: The constructor of global object "StartAfterOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StartAfterOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 216| +# 217| static cl::opt +# 218|-> StartAfterOpt(StringRef(StartAfterOptName), +# 219| cl::desc("Resume compilation after a specific pass"), +# 220| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:223: constructor_uses_global_object: The constructor of global object "StartBeforeOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StartBeforeOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 221| +# 222| static cl::opt +# 223|-> StartBeforeOpt(StringRef(StartBeforeOptName), +# 224| cl::desc("Resume compilation before a specific pass"), +# 225| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:228: constructor_uses_global_object: The constructor of global object "StopAfterOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StopAfterOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 226| +# 227| static cl::opt +# 228|-> StopAfterOpt(StringRef(StopAfterOptName), +# 229| cl::desc("Stop compilation after a specific pass"), +# 230| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:233: constructor_uses_global_object: The constructor of global object "StopBeforeOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StopBeforeOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 231| +# 232| static cl::opt +# 233|-> StopBeforeOpt(StringRef(StopBeforeOptName), +# 234| cl::desc("Stop compilation before a specific pass"), +# 235| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:238: constructor_uses_global_object: The constructor of global object "EnableMachineFunctionSplitter" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMachineFunctionSplitter" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 236| +# 237| /// Enable the machine function splitter pass. +# 238|-> static cl::opt EnableMachineFunctionSplitter( +# 239| "enable-split-machine-functions", cl::Hidden, +# 240| cl::desc("Split out cold blocks from machine functions based on profile " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:244: constructor_uses_global_object: The constructor of global object "DisableExpandReductions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableExpandReductions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 242| +# 243| /// Disable the expand reductions pass for testing. +# 244|-> static cl::opt DisableExpandReductions( +# 245| "disable-expand-reductions", cl::init(false), cl::Hidden, +# 246| cl::desc("Disable the expand reduction intrinsics pass from running")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:249: constructor_uses_global_object: The constructor of global object "DisableSelectOptimize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSelectOptimize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 247| +# 248| /// Disable the select optimization pass. +# 249|-> static cl::opt DisableSelectOptimize( +# 250| "disable-select-optimize", cl::init(true), cl::Hidden, +# 251| cl::desc("Disable the select-optimization pass from running")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:1102: constructor_uses_global_object: The constructor of global object "RegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1100| static cl::opt> +# 1102|-> RegAlloc("regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), +# 1103| cl::desc("Register allocator to use")); +# 1104| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetRegisterInfo.cpp:48: constructor_uses_global_object: The constructor of global object "HugeSizeForSplit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeSizeForSplit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| static cl::opt +# 48|-> HugeSizeForSplit("huge-size-for-split", cl::Hidden, +# 49| cl::desc("A threshold of live range size which may cause " +# 50| "high compile time cost in global splitting."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetSchedule.cpp:33: constructor_uses_global_object: The constructor of global object "EnableSchedModel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSchedModel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| using namespace llvm; +# 32| +# 33|-> static cl::opt EnableSchedModel("schedmodel", cl::Hidden, cl::init(true), +# 34| cl::desc("Use TargetSchedModel for latency lookup")); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetSchedule.cpp:36: constructor_uses_global_object: The constructor of global object "EnableSchedItins" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSchedItins" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| cl::desc("Use TargetSchedModel for latency lookup")); +# 35| +# 36|-> static cl::opt EnableSchedItins("scheditins", cl::Hidden, cl::init(true), +# 37| cl::desc("Use InstrItineraryData for latency lookup")); +# 38| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TwoAddressInstructionPass.cpp:76: constructor_uses_global_object: The constructor of global object "EnableRescheduling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRescheduling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| // Temporary flag to disable rescheduling. +# 75| static cl::opt +# 76|-> EnableRescheduling("twoaddr-reschedule", +# 77| cl::desc("Coalesce copies by rescheduling (default=true)"), +# 78| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TwoAddressInstructionPass.cpp:82: constructor_uses_global_object: The constructor of global object "MaxDataFlowEdge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxDataFlowEdge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| // Limit the number of dataflow edges to traverse when evaluating the benefit +# 81| // of commuting operands. +# 82|-> static cl::opt MaxDataFlowEdge( +# 83| "dataflow-edge-limit", cl::Hidden, cl::init(3), +# 84| cl::desc("Maximum number of dataflow edges to traverse when evaluating " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TypePromotion.cpp:47: constructor_uses_global_object: The constructor of global object "DisablePromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| using namespace llvm; +# 46| +# 47|-> static cl::opt DisablePromotion("disable-type-promotion", cl::Hidden, +# 48| cl::init(false), +# 49| cl::desc("Disable type promotion pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:44: constructor_uses_global_object: The constructor of global object "IgnoreBBRegPressure" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreBBRegPressure" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| #define DEBUG_TYPE "machine-scheduler" +# 43| +# 44|-> static cl::opt IgnoreBBRegPressure("ignore-bb-reg-pressure", cl::Hidden, +# 45| cl::init(false)); +# 46| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:47: constructor_uses_global_object: The constructor of global object "UseNewerCandidate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseNewerCandidate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| cl::init(false)); +# 46| +# 47|-> static cl::opt UseNewerCandidate("use-newer-candidate", cl::Hidden, +# 48| cl::init(true)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:50: constructor_uses_global_object: The constructor of global object "SchedDebugVerboseLevel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SchedDebugVerboseLevel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::init(true)); +# 49| +# 50|-> static cl::opt SchedDebugVerboseLevel("misched-verbose-level", +# 51| cl::Hidden, cl::init(1)); +# 52| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:55: constructor_uses_global_object: The constructor of global object "CheckEarlyAvail" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CheckEarlyAvail" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| // Check if the scheduler should penalize instructions that are available to +# 54| // early due to a zero-latency dependence. +# 55|-> static cl::opt CheckEarlyAvail("check-early-avail", cl::Hidden, +# 56| cl::init(true)); +# 57| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:61: constructor_uses_global_object: The constructor of global object "RPThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RPThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| // We compute the maximum number of registers needed and divided by the total +# 60| // available. Then, we compare the result to this value. +# 61|-> static cl::opt RPThreshold("vliw-misched-reg-pressure", cl::Hidden, +# 62| cl::init(0.75f), +# 63| cl::desc("High register pressure threhold.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/WinEHPrepare.cpp:43: constructor_uses_global_object: The constructor of global object "DisableDemotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDemotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| #define DEBUG_TYPE "winehprepare" +# 42| +# 43|-> static cl::opt DisableDemotion( +# 44| "disable-demotion", cl::Hidden, +# 45| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/WinEHPrepare.cpp:49: constructor_uses_global_object: The constructor of global object "DisableCleanups" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCleanups" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::init(false)); +# 48| +# 49|-> static cl::opt DisableCleanups( +# 50| "disable-cleanups", cl::Hidden, +# 51| cl::desc("Do not remove implausible terminators or other similar cleanups"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/WinEHPrepare.cpp:54: constructor_uses_global_object: The constructor of global object "DemoteCatchSwitchPHIOnlyOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DemoteCatchSwitchPHIOnlyOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::init(false)); +# 53| +# 54|-> static cl::opt DemoteCatchSwitchPHIOnlyOpt( +# 55| "demote-catchswitch-only", cl::Hidden, +# 56| cl::desc("Demote catchswitch BBs only (for wasm EH)"), cl::init(false)); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1219: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1219: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1222: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1220| reinterpret_cast(&LinkedAddress), +# 1221| OrigAddressByteSize); +# 1222|-> OutputBuffer.append(AddressBytes.begin(), AddressBytes.end()); +# 1223| } else +# 1224| Linker.reportWarning("cannot read DW_OP_addrx operand.", File); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1253: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1253: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1256: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1254| reinterpret_cast(&LinkedAddress), +# 1255| OrigAddressByteSize); +# 1256|-> OutputBuffer.append(AddressBytes.begin(), AddressBytes.end()); +# 1257| } +# 1258| } else + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1968: var_decl: Declaring variable "LinkedExpression". +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1982: uninit_use_in_call: Using uninitialized value "LinkedExpression". Field "LinkedExpression.Expr.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1980| CurLocAttr.RelocAdjustment); +# 1981| +# 1982|-> LinkedLocationExpressions.push_back(LinkedExpression); +# 1983| } +# 1984| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/DWP/DWP.cpp:28: constructor_uses_global_object: The constructor of global object "MCTargetOptionsFlags" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCTargetOptionsFlags" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| using namespace llvm::object; +# 27| +# 28|-> static mc::RegisterMCTargetOptionsFlags MCTargetOptionsFlags; +# 29| +# 30| // Returns the size of debug_str_offsets section headers in bytes. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/GSYM/GsymCreator.cpp:482: var_decl: Declaring variable "DstFI". +llvm-17.0.6.src/lib/DebugInfo/GSYM/GsymCreator.cpp:506: uninit_use_in_call: Using uninitialized value "DstFI". Field "DstFI.EncodingCache.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 504| } +# 505| std::lock_guard Guard(Mutex); +# 506|-> Funcs.push_back(DstFI); +# 507| return Funcs.back().cacheEncoding(); +# 508| } + +Error: Y2K38_SAFETY (CWE-197): +llvm-17.0.6.src/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp:360: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "Sig.operator bool() ? *Sig : time(NULL)" is cast to "llvm::support::detail::packed_endian_specific_integral::value_type". +# 358| H->Guid = Info->getGuid(); +# 359| std::optional Sig = Info->getSignature(); +# 360|-> H->Signature = Sig ? *Sig : time(nullptr); +# 361| } +# 362| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Debuginfod/Debuginfod.cpp:67: var_decl: Declaring variable "DebuginfodUrls". +llvm-17.0.6.src/lib/Debuginfod/Debuginfod.cpp:69: uninit_use: Using uninitialized value "DebuginfodUrls". Field "DebuginfodUrls.InlineElts" is uninitialized. +# 67| SmallVector DebuginfodUrls; +# 68| StringRef(DebuginfodUrlsEnv).split(DebuginfodUrls, " "); +# 69|-> return DebuginfodUrls; +# 70| } +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/Execution.cpp:34: constructor_uses_global_object: The constructor of global object "PrintVolatile" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintVolatile" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| STATISTIC(NumDynamicInsts, "Number of dynamic instructions executed"); +# 33| +# 34|-> static cl::opt PrintVolatile("interpreter-print-volatile", cl::Hidden, +# 35| cl::desc("make the interpreter print every volatile load and store")); +# 36| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2511: extract: Calling "back" which extracts wrapped state from "IPLS->CurDefGeneratorStack". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2511: identity_transfer: Member function call "IPLS->CurDefGeneratorStack.back()->lock()" returns "IPLS->CurDefGeneratorStack.back()" ("this"). +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2511: assign: Assigning: "DG" = "IPLS->CurDefGeneratorStack.back()->lock()". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2512: invalidate: Calling "pop_back" invalidates the internal representation of "IPLS->CurDefGeneratorStack". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2514: use_after_free: Using invalidated internal representation of "IPLS->CurDefGeneratorStack". +# 2512| IPLS->CurDefGeneratorStack.pop_back(); +# 2513| +# 2514|-> if (!DG) +# 2515| return IPLS->fail(make_error( +# 2516| "DefinitionGenerator removed while lookup in progress", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:55: constructor_uses_global_object: The constructor of global object "OptimisticAttributes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptimisticAttributes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| +# 54| static cl::opt +# 55|-> OptimisticAttributes("openmp-ir-builder-optimistic-attributes", cl::Hidden, +# 56| cl::desc("Use optimistic attributes describing " +# 57| "'as-if' properties of runtime calls."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:60: constructor_uses_global_object: The constructor of global object "UnrollThresholdFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(false)); +# 59| +# 60|-> static cl::opt UnrollThresholdFactor( +# 61| "openmp-ir-builder-unroll-threshold-factor", cl::Hidden, +# 62| cl::desc("Factor for the unroll threshold to account for code " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:933: var_decl: Declaring variable "Return" without initializer. +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:960: uninit_use_in_call: Using uninitialized value "Return" when calling "CreateIsNotNull". +# 958| BasicBlock *OffloadContBlock = +# 959| BasicBlock::Create(Builder.getContext(), "omp_offload.cont"); +# 960|-> Value *Failed = Builder.CreateIsNotNull(Return); +# 961| Builder.CreateCondBr(Failed, OffloadFailedBlock, OffloadContBlock); +# 962| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/AutoUpgrade.cpp:49: constructor_uses_global_object: The constructor of global object "DisableAutoUpgradeDebugInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAutoUpgradeDebugInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> DisableAutoUpgradeDebugInfo("disable-auto-upgrade-debug-info", +# 50| cl::desc("Disable autoupgrade of debug info")); +# 51| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DebugInfoMetadata.cpp:32: constructor_uses_global_object: The constructor of global object "llvm::EnableFSDiscriminator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableFSDiscriminator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| namespace llvm { +# 31| // Use FS-AFDO discriminator. +# 32|-> cl::opt EnableFSDiscriminator( +# 33| "enable-fs-discriminator", cl::Hidden, +# 34| cl::desc("Enable adding flow sensitive discriminators")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DiagnosticHandler.cpp:46: constructor_uses_global_object: The constructor of global object "::PassRemarks[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PassRemarks[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| // -pass-remarks +# 45| // Command line flag to enable emitOptimizationRemark() +# 46|-> static cl::opt> PassRemarks( +# 47| "pass-remarks", cl::value_desc("pattern"), +# 48| cl::desc("Enable optimization remarks from passes whose name match " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DiagnosticHandler.cpp:54: constructor_uses_global_object: The constructor of global object "::PassRemarksMissed[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PassRemarksMissed[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // -pass-remarks-missed +# 53| // Command line flag to enable emitOptimizationRemarkMissed() +# 54|-> static cl::opt> PassRemarksMissed( +# 55| "pass-remarks-missed", cl::value_desc("pattern"), +# 56| cl::desc("Enable missed optimization remarks from passes whose name match " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DiagnosticHandler.cpp:63: constructor_uses_global_object: The constructor of global object "::PassRemarksAnalysis[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PassRemarksAnalysis[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| // Command line flag to enable emitOptimizationRemarkAnalysis() +# 62| static cl::opt> +# 63|-> PassRemarksAnalysis( +# 64| "pass-remarks-analysis", cl::value_desc("pattern"), +# 65| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Dominators.cpp:41: constructor_uses_global_object: The constructor of global object "VerifyDomInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyDomInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| bool llvm::VerifyDomInfo = false; +# 40| static cl::opt +# 41|-> VerifyDomInfoX("verify-dom-info", cl::location(VerifyDomInfo), cl::Hidden, +# 42| cl::desc("Verify dominator info (time consuming)")); +# 43| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Function.cpp:79: constructor_uses_global_object: The constructor of global object "NonGlobalValueMaxNameSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NonGlobalValueMaxNameSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| template class llvm::SymbolTableListTraits; +# 78| +# 79|-> static cl::opt NonGlobalValueMaxNameSize( +# 80| "non-global-value-max-name-size", cl::Hidden, cl::init(1024), +# 81| cl::desc("Maximum size for the name of non-global values.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Instructions.cpp:51: constructor_uses_global_object: The constructor of global object "DisableI2pP2iOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableI2pP2iOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| using namespace llvm; +# 50| +# 51|-> static cl::opt DisableI2pP2iOpt( +# 52| "disable-i2p-p2i-opt", cl::init(false), +# 53| cl::desc("Disables inttoptr/ptrtoint roundtrip optimization")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/LegacyPassManager.cpp:50: constructor_uses_global_object: The constructor of global object "PassDebugging" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PassDebugging" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| } // namespace +# 49| +# 50|-> static cl::opt PassDebugging( +# 51| "debug-pass", cl::Hidden, +# 52| cl::desc("Print legacy PassManager debugging information"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/ModuleSummaryIndex.cpp:29: constructor_uses_global_object: The constructor of global object "PropagateAttrs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PropagateAttrs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| "Number of live global variables marked write only"); +# 28| +# 29|-> static cl::opt PropagateAttrs("propagate-attrs", cl::init(true), +# 30| cl::Hidden, +# 31| cl::desc("Propagate attributes in index")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/ModuleSummaryIndex.cpp:33: constructor_uses_global_object: The constructor of global object "ImportConstantsWithRefs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ImportConstantsWithRefs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| cl::desc("Propagate attributes in index")); +# 32| +# 33|-> static cl::opt ImportConstantsWithRefs( +# 34| "import-constants-with-refs", cl::init(true), cl::Hidden, +# 35| cl::desc("Import constant global variables with references")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/OptBisect.cpp:28: constructor_uses_global_object: The constructor of global object "OptBisectLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptBisectLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| } +# 27| +# 28|-> static cl::opt OptBisectLimit("opt-bisect-limit", cl::Hidden, +# 29| cl::init(OptBisect::Disabled), cl::Optional, +# 30| cl::cb([](int Limit) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PassTimingInfo.cpp:40: constructor_uses_global_object: The constructor of global object "llvm::EnableTiming" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableTiming" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| bool TimePassesPerRun = false; +# 39| +# 40|-> static cl::opt EnableTiming( +# 41| "time-passes", cl::location(TimePassesIsEnabled), cl::Hidden, +# 42| cl::desc("Time each pass, printing elapsed time for each on exit")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PassTimingInfo.cpp:44: constructor_uses_global_object: The constructor of global object "llvm::EnableTimingPerRun" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableTimingPerRun" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| cl::desc("Time each pass, printing elapsed time for each on exit")); +# 43| +# 44|-> static cl::opt EnableTimingPerRun( +# 45| "time-passes-per-run", cl::location(TimePassesPerRun), cl::Hidden, +# 46| cl::desc("Time each pass run, printing elapsed time for each run on exit"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:21: constructor_uses_global_object: The constructor of global object "PrintBefore[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBefore[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 19| // Print IR out before/after specified passes. +# 20| static cl::list +# 21|-> PrintBefore("print-before", +# 22| llvm::cl::desc("Print IR before specified passes"), +# 23| cl::CommaSeparated, cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:26: constructor_uses_global_object: The constructor of global object "PrintAfter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAfter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::list +# 26|-> PrintAfter("print-after", llvm::cl::desc("Print IR after specified passes"), +# 27| cl::CommaSeparated, cl::Hidden); +# 28| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:29: constructor_uses_global_object: The constructor of global object "PrintBeforeAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBeforeAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| cl::CommaSeparated, cl::Hidden); +# 28| +# 29|-> static cl::opt PrintBeforeAll("print-before-all", +# 30| llvm::cl::desc("Print IR before each pass"), +# 31| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:32: constructor_uses_global_object: The constructor of global object "PrintAfterAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAfterAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| llvm::cl::desc("Print IR before each pass"), +# 31| cl::init(false), cl::Hidden); +# 32|-> static cl::opt PrintAfterAll("print-after-all", +# 33| llvm::cl::desc("Print IR after each pass"), +# 34| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:60: constructor_uses_global_object: The constructor of global object "llvm::PrintChanged" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintChanged" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| // have the necessary facilities, the error message will be shown in place of +# 59| // the expected output. +# 60|-> cl::opt llvm::PrintChanged( +# 61| "print-changed", cl::desc("Print changed IRs"), cl::Hidden, +# 62| cl::ValueOptional, cl::init(ChangePrinter::None), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:82: constructor_uses_global_object: The constructor of global object "DiffBinary[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DiffBinary[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| // An option for specifying the diff used by print-changed=[diff | diff-quiet] +# 81| static cl::opt +# 82|-> DiffBinary("print-changed-diff-path", cl::Hidden, cl::init("diff"), +# 83| cl::desc("system diff used by change reporters")); +# 84| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:86: constructor_uses_global_object: The constructor of global object "PrintModuleScope" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintModuleScope" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> PrintModuleScope("print-module-scope", +# 87| cl::desc("When printing IR for print-[before|after]{-all} " +# 88| "always print a module IR"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:93: constructor_uses_global_object: The constructor of global object "FilterPasses[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FilterPasses[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| // See the description for -print-changed for an explanation of the use +# 92| // of this option. +# 93|-> static cl::list FilterPasses( +# 94| "filter-passes", cl::value_desc("pass names"), +# 95| cl::desc("Only consider IR changes for passes whose names " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:100: constructor_uses_global_object: The constructor of global object "PrintFuncsList[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintFuncsList[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| +# 99| static cl::list +# 100|-> PrintFuncsList("filter-print-funcs", cl::value_desc("function names"), +# 101| cl::desc("Only print IR for functions whose name " +# 102| "match this for all print-[before|after][-all] " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/SafepointIRVerifier.cpp:58: constructor_uses_global_object: The constructor of global object "PrintOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| /// when verification fails, report a message to the console (for FileCheck +# 57| /// usage) and continue execution as if nothing happened. +# 58|-> static cl::opt PrintOnly("safepoint-ir-verifier-print-only", +# 59| cl::init(false)); +# 60| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Value.cpp:39: constructor_uses_global_object: The constructor of global object "UseDerefAtPointSemantics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseDerefAtPointSemantics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| using namespace llvm; +# 38| +# 39|-> static cl::opt UseDerefAtPointSemantics( +# 40| "use-dereferenceable-at-point-semantics", cl::Hidden, cl::init(false), +# 41| cl::desc("Deref attributes and metadata infer facts at definition only")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Verifier.cpp:128: constructor_uses_global_object: The constructor of global object "VerifyNoAliasScopeDomination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyNoAliasScopeDomination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| using namespace llvm; +# 127| +# 128|-> static cl::opt VerifyNoAliasScopeDomination( +# 129| "verify-noalias-scope-decl-dom", cl::Hidden, cl::init(false), +# 130| cl::desc("Ensure that llvm.experimental.noalias.scope.decl for identical " + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/IR/Verifier.cpp:5216: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 87 (inclusive). +llvm-17.0.6.src/lib/IR/Verifier.cpp:5231: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 87 (inclusive) on the false branch. +llvm-17.0.6.src/lib/IR/Verifier.cpp:5237: overrun-call: Overrunning callee's array of size 84 by passing argument "Kind" (which evaluates to 87) in call to "canUseAsParamAttr". +# 5235| Check(isa(Call.getOperand(Elem.Begin + 1)), +# 5236| "the second argument should be a constant integral value", Call); +# 5237|-> } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5238| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5239| } else if (Attribute::canUseAsFnAttr(Kind)) { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/IR/Verifier.cpp:5216: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 87 (inclusive). +llvm-17.0.6.src/lib/IR/Verifier.cpp:5231: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 87 (inclusive) on the false branch. +llvm-17.0.6.src/lib/IR/Verifier.cpp:5239: overrun-call: Overrunning callee's array of size 84 by passing argument "Kind" (which evaluates to 87) in call to "canUseAsFnAttr". +# 5237| } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5238| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5239|-> } else if (Attribute::canUseAsFnAttr(Kind)) { +# 5240| Check((ArgCount) == 0, "this attribute has no argument", Call); +# 5241| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTO.cpp:69: constructor_uses_global_object: The constructor of global object "DumpThinCGSCCs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DumpThinCGSCCs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| +# 68| static cl::opt +# 69|-> DumpThinCGSCCs("dump-thin-cg-sccs", cl::init(false), cl::Hidden, +# 70| cl::desc("Dump the SCCs in the ThinLTO index's callgraph")); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTO.cpp:74: constructor_uses_global_object: The constructor of global object "llvm::EnableLTOInternalization" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableLTOInternalization" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| namespace llvm { +# 73| /// Enable global value internalization in LTO. +# 74|-> cl::opt EnableLTOInternalization( +# 75| "enable-lto-internalization", cl::init(true), cl::Hidden, +# 76| cl::desc("Enable global value internalization in LTO")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOBackend.cpp:61: constructor_uses_global_object: The constructor of global object "EmbedBitcode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmbedBitcode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| }; +# 60| +# 61|-> static cl::opt EmbedBitcode( +# 62| "lto-embed-bitcode", cl::init(LTOBitcodeEmbedding::DoNotEmbed), +# 63| cl::values(clEnumValN(LTOBitcodeEmbedding::DoNotEmbed, "none", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOBackend.cpp:72: constructor_uses_global_object: The constructor of global object "ThinLTOAssumeMerged" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ThinLTOAssumeMerged" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| cl::desc("Embed LLVM bitcode in object files produced by LTO")); +# 71| +# 72|-> static cl::opt ThinLTOAssumeMerged( +# 73| "thinlto-assume-merged", cl::init(false), +# 74| cl::desc("Assume the input has already undergone ThinLTO function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:74: constructor_uses_global_object: The constructor of global object "llvm::LTODiscardValueNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTODiscardValueNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| +# 73| namespace llvm { +# 74|-> cl::opt LTODiscardValueNames( +# 75| "lto-discard-value-names", +# 76| cl::desc("Strip names from Value during LTO (other than GlobalValue)."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:84: constructor_uses_global_object: The constructor of global object "llvm::RemarksWithHotness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksWithHotness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| cl::Hidden); +# 83| +# 84|-> cl::opt RemarksWithHotness( +# 85| "lto-pass-remarks-with-hotness", +# 86| cl::desc("With PGO, include profile count in optimization remarks"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:90: constructor_uses_global_object: The constructor of global object "llvm::RemarksHotnessThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksHotnessThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| +# 89| cl::opt, false, remarks::HotnessThresholdParser> +# 90|-> RemarksHotnessThreshold( +# 91| "lto-pass-remarks-hotness-threshold", +# 92| cl::desc("Minimum profile count required for an " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:98: constructor_uses_global_object: The constructor of global object "llvm::RemarksFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| +# 97| cl::opt +# 98|-> RemarksFilename("lto-pass-remarks-output", +# 99| cl::desc("Output filename for pass remarks"), +# 100| cl::value_desc("filename")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:103: constructor_uses_global_object: The constructor of global object "llvm::RemarksPasses[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksPasses[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| +# 102| cl::opt +# 103|-> RemarksPasses("lto-pass-remarks-filter", +# 104| cl::desc("Only record optimization remarks from passes whose " +# 105| "names match the given regular expression"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:108: constructor_uses_global_object: The constructor of global object "llvm::RemarksFormat[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksFormat[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| cl::value_desc("regex")); +# 107| +# 108|-> cl::opt RemarksFormat( +# 109| "lto-pass-remarks-format", +# 110| cl::desc("The format used for serializing remarks (default: YAML)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:113: constructor_uses_global_object: The constructor of global object "llvm::LTOStatsFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTOStatsFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::value_desc("format"), cl::init("yaml")); +# 112| +# 113|-> cl::opt LTOStatsFile( +# 114| "lto-stats-file", +# 115| cl::desc("Save statistics to the specified file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:118: constructor_uses_global_object: The constructor of global object "llvm::AIXSystemAssemblerPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::AIXSystemAssemblerPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| cl::Hidden); +# 117| +# 118|-> cl::opt AIXSystemAssemblerPath( +# 119| "lto-aix-system-assembler", +# 120| cl::desc("Path to a system assembler, picked up on AIX only"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:124: constructor_uses_global_object: The constructor of global object "llvm::LTORunCSIRInstr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTORunCSIRInstr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| +# 123| cl::opt +# 124|-> LTORunCSIRInstr("cs-profile-generate", +# 125| cl::desc("Perform context sensitive PGO instrumentation")); +# 126| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:128: constructor_uses_global_object: The constructor of global object "llvm::LTOCSIRProfile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTOCSIRProfile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| +# 127| cl::opt +# 128|-> LTOCSIRProfile("cs-profile-path", +# 129| cl::desc("Context sensitive profile file path")); +# 130| } // namespace llvm + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/SummaryBasedOptimizations.cpp:22: constructor_uses_global_object: The constructor of global object "ThinLTOSynthesizeEntryCounts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ThinLTOSynthesizeEntryCounts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| using namespace llvm; +# 21| +# 22|-> static cl::opt ThinLTOSynthesizeEntryCounts( +# 23| "thinlto-synthesize-entry-counts", cl::init(false), cl::Hidden, +# 24| cl::desc("Synthesize entry counts based on the summary")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/ThinLTOCodeGenerator.cpp:92: constructor_uses_global_object: The constructor of global object "::ThreadCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ThreadCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| // thred per core, as indicated by the usage of +# 91| // heavyweight_hardware_concurrency() below. +# 92|-> static cl::opt ThreadCount("threads", cl::init(0)); +# 93| +# 94| // Simple helper to save temporary files for debug. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/MC/MCAsmInfo.cpp:27: constructor_uses_global_object: The constructor of global object "DwarfExtendedLoc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfExtendedLoc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| enum DefaultOnOff { Default, Enable, Disable }; +# 26| } +# 27|-> static cl::opt DwarfExtendedLoc( +# 28| "dwarf-extended-loc", cl::Hidden, +# 29| cl::desc("Disable emission of the extended flags in .loc directives."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/MC/MCAsmInfo.cpp:35: constructor_uses_global_object: The constructor of global object "llvm::UseLEB128Directives" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseLEB128Directives" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| namespace llvm { +# 35|-> cl::opt UseLEB128Directives( +# 36| "use-leb128-directives", cl::Hidden, +# 37| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/MC/MCParser/MCAsmParser.cpp:25: constructor_uses_global_object: The constructor of global object "llvm::AsmMacroMaxNestingDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::AsmMacroMaxNestingDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| +# 24| namespace llvm { +# 25|-> cl::opt AsmMacroMaxNestingDepth( +# 26| "asm-macro-max-nesting-depth", cl::init(20), cl::Hidden, +# 27| cl::desc("The maximum nesting depth allowed for assembly macros.")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/WasmObjectWriter.cpp:1657: var_decl: Declaring variable "Global". +llvm-17.0.6.src/lib/MC/WasmObjectWriter.cpp:1682: uninit_use_in_call: Using uninitialized value "Global". Field "Global.InitExpr.Inst.Value" is uninitialized when calling "push_back". +# 1680| assert(WasmIndices.count(&WS) == 0); +# 1681| WasmIndices[&WS] = Global.Index; +# 1682|-> Globals.push_back(Global); +# 1683| } else { +# 1684| // An import; the index was assigned above + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Object/IRSymtab.cpp:44: constructor_uses_global_object: The constructor of global object "DisableBitcodeVersionUpgrade" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBitcodeVersionUpgrade" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| using namespace irsymtab; +# 43| +# 44|-> static cl::opt DisableBitcodeVersionUpgrade( +# 45| "disable-bitcode-version-upgrade", cl::Hidden, +# 46| cl::desc("Disable automatic bitcode upgrade for version mismatch")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:626: var_decl: Declaring variable "Info". +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:798: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 796| Twine(Info.Name), +# 797| object_error::parse_failed); +# 798|-> LinkingData.SymbolTable.emplace_back(Info); +# 799| Symbols.emplace_back(LinkingData.SymbolTable.back(), GlobalType, TableType, +# 800| Signature); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilder.cpp:271: constructor_uses_global_object: The constructor of global object "llvm::PrintPipelinePasses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintPipelinePasses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 269| +# 270| namespace llvm { +# 271|-> cl::opt PrintPipelinePasses( +# 272| "print-pipeline-passes", +# 273| cl::desc("Print a '-passes' compatible string describing the pipeline " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:138: constructor_uses_global_object: The constructor of global object "UseInlineAdvisor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseInlineAdvisor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| using namespace llvm; +# 137| +# 138|-> static cl::opt UseInlineAdvisor( +# 139| "enable-ml-inliner", cl::init(InliningAdvisorMode::Default), cl::Hidden, +# 140| cl::desc("Enable ML policy for inliner. Currently trained for -Oz only"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:148: constructor_uses_global_object: The constructor of global object "EnableSyntheticCounts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSyntheticCounts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 146| "Use release mode (AOT-compiled model)"))); +# 147| +# 148|-> static cl::opt EnableSyntheticCounts( +# 149| "enable-npm-synthetic-counts", cl::Hidden, +# 150| cl::desc("Run synthetic function entry count generation " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:155: constructor_uses_global_object: The constructor of global object "EnablePGOInlineDeferral" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePGOInlineDeferral" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| /// Flag to enable inline deferral during PGO. +# 154| static cl::opt +# 155|-> EnablePGOInlineDeferral("enable-npm-pgo-inline-deferral", cl::init(true), +# 156| cl::Hidden, +# 157| cl::desc("Enable inline deferral during PGO")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:159: constructor_uses_global_object: The constructor of global object "EnableModuleInliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleInliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 157| cl::desc("Enable inline deferral during PGO")); +# 158| +# 159|-> static cl::opt EnableModuleInliner("enable-module-inliner", +# 160| cl::init(false), cl::Hidden, +# 161| cl::desc("Enable module inliner")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:163: constructor_uses_global_object: The constructor of global object "PerformMandatoryInliningsFirst" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PerformMandatoryInliningsFirst" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| cl::desc("Enable module inliner")); +# 162| +# 163|-> static cl::opt PerformMandatoryInliningsFirst( +# 164| "mandatory-inlining-first", cl::init(true), cl::Hidden, +# 165| cl::desc("Perform mandatory inlinings module-wide, before performing " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:168: constructor_uses_global_object: The constructor of global object "EnableEagerlyInvalidateAnalyses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEagerlyInvalidateAnalyses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 166| "inlining")); +# 167| +# 168|-> static cl::opt EnableEagerlyInvalidateAnalyses( +# 169| "eagerly-invalidate-analyses", cl::init(true), cl::Hidden, +# 170| cl::desc("Eagerly invalidate more analyses in default pipelines")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:172: constructor_uses_global_object: The constructor of global object "EnableMergeFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMergeFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 170| cl::desc("Eagerly invalidate more analyses in default pipelines")); +# 171| +# 172|-> static cl::opt EnableMergeFunctions( +# 173| "enable-merge-functions", cl::init(false), cl::Hidden, +# 174| cl::desc("Enable function merging as part of the optimization pipeline")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:176: constructor_uses_global_object: The constructor of global object "EnablePostPGOLoopRotation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostPGOLoopRotation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 174| cl::desc("Enable function merging as part of the optimization pipeline")); +# 175| +# 176|-> static cl::opt EnablePostPGOLoopRotation( +# 177| "enable-post-pgo-loop-rotation", cl::init(true), cl::Hidden, +# 178| cl::desc("Run the loop rotation transformation after PGO instrumentation")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:180: constructor_uses_global_object: The constructor of global object "EnableGlobalAnalyses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalAnalyses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 178| cl::desc("Run the loop rotation transformation after PGO instrumentation")); +# 179| +# 180|-> static cl::opt EnableGlobalAnalyses( +# 181| "enable-global-analyses", cl::init(true), cl::Hidden, +# 182| cl::desc("Enable inter-procedural analyses")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:185: constructor_uses_global_object: The constructor of global object "RunPartialInlining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RunPartialInlining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 183| +# 184| static cl::opt +# 185|-> RunPartialInlining("enable-partial-inlining", cl::init(false), cl::Hidden, +# 186| cl::desc("Run Partial inlinining pass")); +# 187| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:188: constructor_uses_global_object: The constructor of global object "ExtraVectorizerPasses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExtraVectorizerPasses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 186| cl::desc("Run Partial inlinining pass")); +# 187| +# 188|-> static cl::opt ExtraVectorizerPasses( +# 189| "extra-vectorizer-passes", cl::init(false), cl::Hidden, +# 190| cl::desc("Run cleanup optimization passes after vectorization")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:192: constructor_uses_global_object: The constructor of global object "RunNewGVN" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RunNewGVN" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 190| cl::desc("Run cleanup optimization passes after vectorization")); +# 191| +# 192|-> static cl::opt RunNewGVN("enable-newgvn", cl::init(false), cl::Hidden, +# 193| cl::desc("Run the NewGVN pass")); +# 194| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:195: constructor_uses_global_object: The constructor of global object "EnableLoopInterchange" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoopInterchange" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 193| cl::desc("Run the NewGVN pass")); +# 194| +# 195|-> static cl::opt EnableLoopInterchange( +# 196| "enable-loopinterchange", cl::init(false), cl::Hidden, +# 197| cl::desc("Enable the experimental LoopInterchange Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:199: constructor_uses_global_object: The constructor of global object "EnableUnrollAndJam" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableUnrollAndJam" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 197| cl::desc("Enable the experimental LoopInterchange Pass")); +# 198| +# 199|-> static cl::opt EnableUnrollAndJam("enable-unroll-and-jam", +# 200| cl::init(false), cl::Hidden, +# 201| cl::desc("Enable Unroll And Jam Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:203: constructor_uses_global_object: The constructor of global object "EnableLoopFlatten" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoopFlatten" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 201| cl::desc("Enable Unroll And Jam Pass")); +# 202| +# 203|-> static cl::opt EnableLoopFlatten("enable-loop-flatten", cl::init(false), +# 204| cl::Hidden, +# 205| cl::desc("Enable the LoopFlatten Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:208: constructor_uses_global_object: The constructor of global object "EnableDFAJumpThreading" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDFAJumpThreading" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 206| +# 207| static cl::opt +# 208|-> EnableDFAJumpThreading("enable-dfa-jump-thread", +# 209| cl::desc("Enable DFA jump threading"), +# 210| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:213: constructor_uses_global_object: The constructor of global object "EnableHotColdSplit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableHotColdSplit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 211| +# 212| static cl::opt +# 213|-> EnableHotColdSplit("hot-cold-split", +# 214| cl::desc("Enable hot-cold splitting pass")); +# 215| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:216: constructor_uses_global_object: The constructor of global object "EnableIROutliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableIROutliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 214| cl::desc("Enable hot-cold splitting pass")); +# 215| +# 216|-> static cl::opt EnableIROutliner("ir-outliner", cl::init(false), +# 217| cl::Hidden, +# 218| cl::desc("Enable ir outliner pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:221: constructor_uses_global_object: The constructor of global object "DisablePreInliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePreInliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 219| +# 220| static cl::opt +# 221|-> DisablePreInliner("disable-preinline", cl::init(false), cl::Hidden, +# 222| cl::desc("Disable pre-instrumentation inliner")); +# 223| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:224: constructor_uses_global_object: The constructor of global object "PreInlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreInlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 222| cl::desc("Disable pre-instrumentation inliner")); +# 223| +# 224|-> static cl::opt PreInlineThreshold( +# 225| "preinline-threshold", cl::Hidden, cl::init(75), +# 226| cl::desc("Control the amount of inlining in pre-instrumentation inliner " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:230: constructor_uses_global_object: The constructor of global object "EnableGVNHoist" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGVNHoist" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 228| +# 229| static cl::opt +# 230|-> EnableGVNHoist("enable-gvn-hoist", +# 231| cl::desc("Enable the GVN hoisting pass (default = off)")); +# 232| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:234: constructor_uses_global_object: The constructor of global object "EnableGVNSink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGVNSink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 232| +# 233| static cl::opt +# 234|-> EnableGVNSink("enable-gvn-sink", +# 235| cl::desc("Enable the GVN sinking pass (default = off)")); +# 236| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:240: constructor_uses_global_object: The constructor of global object "EnableCHR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCHR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 238| // profile loading. +# 239| static cl::opt +# 240|-> EnableCHR("enable-chr", cl::init(true), cl::Hidden, +# 241| cl::desc("Enable control height reduction optimization (CHR)")); +# 242| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:243: constructor_uses_global_object: The constructor of global object "FlattenedProfileUsed" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FlattenedProfileUsed" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 241| cl::desc("Enable control height reduction optimization (CHR)")); +# 242| +# 243|-> static cl::opt FlattenedProfileUsed( +# 244| "flattened-profile-used", cl::init(false), cl::Hidden, +# 245| cl::desc("Indicate the sample profile being used is flattened, i.e., " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:248: constructor_uses_global_object: The constructor of global object "EnableOrderFileInstrumentation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableOrderFileInstrumentation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 246| "no inline hierachy exists in the profile")); +# 247| +# 248|-> static cl::opt EnableOrderFileInstrumentation( +# 249| "enable-order-file-instrumentation", cl::init(false), cl::Hidden, +# 250| cl::desc("Enable order file instrumentation (default = off)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:253: constructor_uses_global_object: The constructor of global object "EnableMatrix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMatrix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 251| +# 252| static cl::opt +# 253|-> EnableMatrix("enable-matrix", cl::init(false), cl::Hidden, +# 254| cl::desc("Enable lowering of the matrix intrinsics")); +# 255| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:256: constructor_uses_global_object: The constructor of global object "EnableConstraintElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableConstraintElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 254| cl::desc("Enable lowering of the matrix intrinsics")); +# 255| +# 256|-> static cl::opt EnableConstraintElimination( +# 257| "enable-constraint-elimination", cl::init(true), cl::Hidden, +# 258| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:261: constructor_uses_global_object: The constructor of global object "AttributorRun" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AttributorRun" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 259| "Enable pass to eliminate conditions based on linear constraints")); +# 260| +# 261|-> static cl::opt AttributorRun( +# 262| "attributor-enable", cl::Hidden, cl::init(AttributorRunOption::NONE), +# 263| cl::desc("Enable the attributor inter-procedural deduction pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:273: constructor_uses_global_object: The constructor of global object "EnableMemProfContextDisambiguation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemProfContextDisambiguation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 271| "disable attributor runs"))); +# 272| +# 273|-> cl::opt EnableMemProfContextDisambiguation( +# 274| "enable-memprof-context-disambiguation", cl::init(false), cl::Hidden, +# 275| cl::ZeroOrMore, cl::desc("Enable MemProf context disambiguation")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:47: constructor_uses_global_object: The constructor of global object "VerifyAnalysisInvalidation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyAnalysisInvalidation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| using namespace llvm; +# 46| +# 47|-> static cl::opt VerifyAnalysisInvalidation("verify-analysis-invalidation", +# 48| cl::Hidden, +# 49| #ifdef EXPENSIVE_CHECKS + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:60: constructor_uses_global_object: The constructor of global object "PrintChangedBefore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintChangedBefore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| // of this option. Note that this option has no effect without -print-changed. +# 59| static cl::opt +# 60|-> PrintChangedBefore("print-before-changed", +# 61| cl::desc("Print before passes that change them"), +# 62| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:67: constructor_uses_global_object: The constructor of global object "DotBinary[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotBinary[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| // print-changed=[dot-cfg | dot-cfg-quiet] +# 66| static cl::opt +# 67|-> DotBinary("print-changed-dot-path", cl::Hidden, cl::init("dot"), +# 68| cl::desc("system dot used by change reporters")); +# 69| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:74: constructor_uses_global_object: The constructor of global object "BeforeColour[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BeforeColour[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| // https://graphviz.org/pdf/dotguide.pdf +# 73| static cl::opt +# 74|-> BeforeColour("dot-cfg-before-color", +# 75| cl::desc("Color for dot-cfg before elements"), cl::Hidden, +# 76| cl::init("red")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:81: constructor_uses_global_object: The constructor of global object "AfterColour[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AfterColour[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| // https://graphviz.org/pdf/dotguide.pdf +# 80| static cl::opt +# 81|-> AfterColour("dot-cfg-after-color", +# 82| cl::desc("Color for dot-cfg after elements"), cl::Hidden, +# 83| cl::init("forestgreen")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:88: constructor_uses_global_object: The constructor of global object "CommonColour[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CommonColour[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| // https://graphviz.org/pdf/dotguide.pdf +# 87| static cl::opt +# 88|-> CommonColour("dot-cfg-common-color", +# 89| cl::desc("Color for dot-cfg common elements"), cl::Hidden, +# 90| cl::init("black")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:94: constructor_uses_global_object: The constructor of global object "DotCfgDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotCfgDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| // An option that determines where the generated website file (named +# 93| // passes.html) and the associated pdf files (named diff_*.pdf) are saved. +# 94|-> static cl::opt DotCfgDir( +# 95| "dot-cfg-dir", +# 96| cl::desc("Generate dot files into specified directory for changed IRs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:100: constructor_uses_global_object: The constructor of global object "PrintOnCrashPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintOnCrashPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| +# 99| // Options to print the IR that was being processed when a pass crashes. +# 100|-> static cl::opt PrintOnCrashPath( +# 101| "print-on-crash-path", +# 102| cl::desc("Print the last form of the IR before crash to a file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:105: constructor_uses_global_object: The constructor of global object "PrintOnCrash" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintOnCrash" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 103| cl::Hidden); +# 104| +# 105|-> static cl::opt PrintOnCrash( +# 106| "print-on-crash", +# 107| cl::desc("Print the last form of the IR before crash (use -print-on-crash-path to dump to a file)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:110: constructor_uses_global_object: The constructor of global object "OptBisectPrintIRPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptBisectPrintIRPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| cl::Hidden); +# 109| +# 110|-> static cl::opt OptBisectPrintIRPath( +# 111| "opt-bisect-print-ir-path", +# 112| cl::desc("Print IR to path when opt-bisect-limit is reached"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:114: constructor_uses_global_object: The constructor of global object "PrintPassNumbers" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintPassNumbers" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| cl::desc("Print IR to path when opt-bisect-limit is reached"), cl::Hidden); +# 113| +# 114|-> static cl::opt PrintPassNumbers( +# 115| "print-pass-numbers", cl::init(false), cl::Hidden, +# 116| cl::desc("Print pass names and their ordinals")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:119: constructor_uses_global_object: The constructor of global object "PrintAtPassNumber" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAtPassNumber" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| +# 118| static cl::opt +# 119|-> PrintAtPassNumber("print-at-pass-number", cl::init(0), cl::Hidden, +# 120| cl::desc("Print IR at pass with this number as " +# 121| "reported by print-passes-names")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:133: constructor_uses_global_object: The constructor of global object "::TestChanged[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::TestChanged[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 131| // The usual modifier options work as expected. +# 132| static cl::opt +# 133|-> TestChanged("exec-on-ir-change", cl::Hidden, cl::init(""), +# 134| cl::desc("exe called with module IR after each pass that " +# 135| "changes it")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:61: constructor_uses_global_object: The constructor of global object "StaticFuncFullModulePrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StaticFuncFullModulePrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| using namespace llvm; +# 60| +# 61|-> static cl::opt StaticFuncFullModulePrefix( +# 62| "static-func-full-module-prefix", cl::init(true), cl::Hidden, +# 63| cl::desc("Use full module build paths in the profile counter names for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:74: constructor_uses_global_object: The constructor of global object "StaticFuncStripDirNamePrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StaticFuncStripDirNamePrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| // the source directory name not being stripped. A non-zero option value here +# 73| // can potentially prevent some inter-module indirect-call-promotions. +# 74|-> static cl::opt StaticFuncStripDirNamePrefix( +# 75| "static-func-strip-dirname-prefix", cl::init(0), cl::Hidden, +# 76| cl::desc("Strip specified level of directory name from source path in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:213: constructor_uses_global_object: The constructor of global object "llvm::DoInstrProfNameCompression" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DoInstrProfNameCompression" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 211| namespace llvm { +# 212| +# 213|-> cl::opt DoInstrProfNameCompression( +# 214| "enable-name-compression", +# 215| cl::desc("Enable name/filename string compression"), cl::init(true)); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/ProfileData/InstrProfCorrelator.cpp:74: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-17.0.6.src/lib/ProfileData/InstrProfCorrelator.cpp:74: assign: Assigning: "" = "llvm::InstrProfCorrelator::get(std::unique_ptr >(std::move(*BufferOrErr)))". +llvm-17.0.6.src/lib/ProfileData/InstrProfCorrelator.cpp:74: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 72| return std::move(Err); +# 73| +# 74|-> return get(std::move(*BufferOrErr)); +# 75| } +# 76| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:22: constructor_uses_global_object: The constructor of global object "llvm::UseContextLessSummary" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseContextLessSummary" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| +# 21| namespace llvm { +# 22|-> cl::opt UseContextLessSummary( +# 23| "profile-summary-contextless", cl::Hidden, +# 24| cl::desc("Merge context profiles before calculating thresholds.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:33: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryCutoffHot" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryCutoffHot" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| // threshold for determining cold count (everything <= this threshold is +# 32| // considered cold). +# 33|-> cl::opt ProfileSummaryCutoffHot( +# 34| "profile-summary-cutoff-hot", cl::Hidden, cl::init(990000), +# 35| cl::desc("A count is hot if it exceeds the minimum count to" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:38: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryCutoffCold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryCutoffCold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| " reach this percentile of total counts.")); +# 37| +# 38|-> cl::opt ProfileSummaryCutoffCold( +# 39| "profile-summary-cutoff-cold", cl::Hidden, cl::init(999999), +# 40| cl::desc("A count is cold if it is below the minimum count" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:43: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryHugeWorkingSetSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryHugeWorkingSetSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| " to reach this percentile of total counts.")); +# 42| +# 43|-> cl::opt ProfileSummaryHugeWorkingSetSizeThreshold( +# 44| "profile-summary-huge-working-set-size-threshold", cl::Hidden, +# 45| cl::init(15000), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:50: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryLargeWorkingSetSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryLargeWorkingSetSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| " percentile exceeds this count.")); +# 49| +# 50|-> cl::opt ProfileSummaryLargeWorkingSetSizeThreshold( +# 51| "profile-summary-large-working-set-size-threshold", cl::Hidden, +# 52| cl::init(12500), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:59: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryHotCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryHotCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| // The next two options override the counts derived from summary computation and +# 58| // are useful for debugging purposes. +# 59|-> cl::opt ProfileSummaryHotCount( +# 60| "profile-summary-hot-count", cl::ReallyHidden, +# 61| cl::desc("A fixed hot count that overrides the count derived from" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:64: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryColdCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryColdCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| " profile-summary-cutoff-hot")); +# 63| +# 64|-> cl::opt ProfileSummaryColdCount( +# 65| "profile-summary-cold-count", cl::ReallyHidden, +# 66| cl::desc("A fixed cold count that overrides the count derived from" + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:90: var_decl: Declaring variable "Items". +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:95: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 93| Ptr + I * sizeof(SegmentEntry))); +# 94| } +# 95|-> return Items; +# 96| } +# 97| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:104: var_decl: Declaring variable "Items". +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:112: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 110| Ptr += sizeof(MemInfoBlock); +# 111| } +# 112|-> return Items; +# 113| } +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/SampleProf.cpp:30: constructor_uses_global_object: The constructor of global object "ProfileSymbolListCutOff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileSymbolListCutOff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace sampleprof; +# 29| +# 30|-> static cl::opt ProfileSymbolListCutOff( +# 31| "profile-symbol-list-cutoff", cl::Hidden, cl::init(-1), +# 32| cl::desc("Cutoff value about how many symbols in profile symbol list " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/SampleProf.cpp:35: constructor_uses_global_object: The constructor of global object "GenerateMergedBaseProfiles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateMergedBaseProfiles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| "will be used. This is very useful for performance debugging")); +# 34| +# 35|-> static cl::opt GenerateMergedBaseProfiles( +# 36| "generate-merged-base-profiles", +# 37| cl::desc("When generating nested context-sensitive profiles, always " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/SampleProfReader.cpp:56: constructor_uses_global_object: The constructor of global object "ProfileIsFSDisciminator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileIsFSDisciminator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| // It only applies to text, and binary format profiles. +# 55| // For ext-binary format profiles, the flag is set in the summary. +# 56|-> static cl::opt ProfileIsFSDisciminator( +# 57| "profile-isfs", cl::Hidden, cl::init(false), +# 58| cl::desc("Profile uses flow sensitive discriminators")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Remarks/RemarkStreamer.cpp:20: constructor_uses_global_object: The constructor of global object "EnableRemarksSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRemarksSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 18| using namespace llvm::remarks; +# 19| +# 20|-> static cl::opt EnableRemarksSection( +# 21| "remarks-section", +# 22| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:41: constructor_uses_global_object: The constructor of global object "OutputFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> OutputFilename("o", cl::desc("Output filename"), cl::value_desc("filename"), +# 42| cl::init("-")); +# 43| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:45: constructor_uses_global_object: The constructor of global object "DependFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DependFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| static cl::opt +# 45|-> DependFilename("d", +# 46| cl::desc("Dependency filename"), +# 47| cl::value_desc("filename"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:51: constructor_uses_global_object: The constructor of global object "InputFilename[abi:cxx11]" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "InputFilename[abi:cxx11]" might be created before "GlobalParser" is available. +# 49| +# 50| static cl::opt +# 51|-> InputFilename(cl::Positional, cl::desc(""), cl::init("-")); +# 52| +# 53| static cl::list + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:54: constructor_uses_global_object: The constructor of global object "IncludeDirs[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IncludeDirs[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::list +# 54|-> IncludeDirs("I", cl::desc("Directory of include files"), +# 55| cl::value_desc("directory"), cl::Prefix); +# 56| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:58: constructor_uses_global_object: The constructor of global object "MacroNames[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MacroNames[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| +# 57| static cl::list +# 58|-> MacroNames("D", cl::desc("Name of the macro to be defined"), +# 59| cl::value_desc("macro name"), cl::Prefix); +# 60| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:62: constructor_uses_global_object: The constructor of global object "WriteIfChanged" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WriteIfChanged" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> WriteIfChanged("write-if-changed", cl::desc("Only write output if it changed")); +# 63| +# 64| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:65: constructor_uses_global_object: The constructor of global object "TimePhases" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TimePhases" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| static cl::opt +# 65|-> TimePhases("time-phases", cl::desc("Time phases of parser and backend")); +# 66| +# 67| static cl::opt NoWarnOnUnusedTemplateArgs( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:67: constructor_uses_global_object: The constructor of global object "NoWarnOnUnusedTemplateArgs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoWarnOnUnusedTemplateArgs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| TimePhases("time-phases", cl::desc("Time phases of parser and backend")); +# 66| +# 67|-> static cl::opt NoWarnOnUnusedTemplateArgs( +# 68| "no-warn-on-unused-template-args", +# 69| cl::desc("Disable unused template argument warnings.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/TableGenBackendSkeleton.cpp:64: constructor_uses_global_object: The constructor of global object "Y" itself makes use of global object "llvm::TableGen::Emitter::Action" defined in another compilation unit. The order of construction is unspecified, so "Y" might be created before "llvm::TableGen::Emitter::Action" is available. +# 62| } +# 63| +# 64|-> static TableGen::Emitter::Opt Y("gen-skeleton-entry", EmitSkeleton, +# 65| "Generate example skeleton entry"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/TableGenBackendSkeleton.cpp:64: constructor_uses_global_object: The constructor of global object "Y" itself makes use of global object "llvm::cl::AllSubCommands" defined in another compilation unit. The order of construction is unspecified, so "Y" might be created before "llvm::cl::AllSubCommands" is available. +# 62| } +# 63| +# 64|-> static TableGen::Emitter::Opt Y("gen-skeleton-entry", EmitSkeleton, +# 65| "Generate example skeleton entry"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp:52: constructor_uses_global_object: The constructor of global object "TransformAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TransformAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| // destination register is the correct color. Used for testing. +# 51| static cl::opt +# 52|-> TransformAll("aarch64-a57-fp-load-balancing-force-all", +# 53| cl::desc("Always modify dest registers regardless of color"), +# 54| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp:59: constructor_uses_global_object: The constructor of global object "OverrideBalance" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OverrideBalance" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| // color always. Used for testing. +# 58| static cl::opt +# 59|-> OverrideBalance("aarch64-a57-fp-load-balancing-override", +# 60| cl::desc("Ignore balance information, always return " +# 61| "(1: Even, 2: Odd)."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp:54: constructor_uses_global_object: The constructor of global object "TransformAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TransformAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // them. For stress-testing the transformation function. +# 53| static cl::opt +# 54|-> TransformAll("aarch64-simd-scalar-force-all", +# 55| cl::desc("Force use of AdvSIMD scalar instructions everywhere"), +# 56| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ConditionalCompares.cpp:46: constructor_uses_global_object: The constructor of global object "BlockInstrLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockInstrLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| // Absolute maximum number of instructions allowed per speculated block. +# 45| // This bypasses all other heuristics, so it should be set fairly high. +# 46|-> static cl::opt BlockInstrLimit( +# 47| "aarch64-ccmp-limit", cl::init(30), cl::Hidden, +# 48| cl::desc("Maximum number of instructions per speculated block.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ConditionalCompares.cpp:51: constructor_uses_global_object: The constructor of global object "Stress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Stress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| +# 50| // Stress testing mode - disable heuristics. +# 51|-> static cl::opt Stress("aarch64-stress-ccmp", cl::Hidden, +# 52| cl::desc("Turn all knobs to 11")); +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:238: constructor_uses_global_object: The constructor of global object "EnableRedZone" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRedZone" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 236| #define DEBUG_TYPE "frame-info" +# 237| +# 238|-> static cl::opt EnableRedZone("aarch64-redzone", +# 239| cl::desc("enable use of redzone on AArch64"), +# 240| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:243: constructor_uses_global_object: The constructor of global object "ReverseCSRRestoreSeq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReverseCSRRestoreSeq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 241| +# 242| static cl::opt +# 243|-> ReverseCSRRestoreSeq("reverse-csr-restore-seq", +# 244| cl::desc("reverse the CSR restore sequence"), +# 245| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:247: constructor_uses_global_object: The constructor of global object "StackTaggingMergeSetTag" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackTaggingMergeSetTag" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 245| cl::init(false), cl::Hidden); +# 246| +# 247|-> static cl::opt StackTaggingMergeSetTag( +# 248| "stack-tagging-merge-settag", +# 249| cl::desc("merge settag instruction in function epilog"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:252: constructor_uses_global_object: The constructor of global object "OrderFrameObjects" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OrderFrameObjects" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 250| cl::Hidden); +# 251| +# 252|-> static cl::opt OrderFrameObjects("aarch64-order-frame-objects", +# 253| cl::desc("sort stack allocations"), +# 254| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:256: constructor_uses_global_object: The constructor of global object "EnableHomogeneousPrologEpilog" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableHomogeneousPrologEpilog" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 254| cl::init(true), cl::Hidden); +# 255| +# 256|-> cl::opt EnableHomogeneousPrologEpilog( +# 257| "homogeneous-prolog-epilog", cl::Hidden, +# 258| cl::desc("Emit homogeneous prologue and epilogue for the size " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:114: constructor_uses_global_object: The constructor of global object "EnableAArch64ELFLocalDynamicTLSGeneration" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAArch64ELFLocalDynamicTLSGeneration" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| // well in the GNU bfd and gold linkers at the moment. Therefore, by +# 113| // default, for now, fall back to GeneralDynamic code generation. +# 114|-> cl::opt EnableAArch64ELFLocalDynamicTLSGeneration( +# 115| "aarch64-elf-ldtls-generation", cl::Hidden, +# 116| cl::desc("Allow AArch64 Local Dynamic TLS code generation"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:120: constructor_uses_global_object: The constructor of global object "EnableOptimizeLogicalImm" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableOptimizeLogicalImm" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| +# 119| static cl::opt +# 120|-> EnableOptimizeLogicalImm("aarch64-enable-logical-imm", cl::Hidden, +# 121| cl::desc("Enable AArch64 logical imm instruction " +# 122| "optimization"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:130: constructor_uses_global_object: The constructor of global object "EnableCombineMGatherIntrinsics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCombineMGatherIntrinsics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| // than the GLD1 nodes added for the SVE gather load intrinsics. +# 129| static cl::opt +# 130|-> EnableCombineMGatherIntrinsics("aarch64-enable-mgather-combine", cl::Hidden, +# 131| cl::desc("Combine extends of AArch64 masked " +# 132| "gather intrinsics"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:138: constructor_uses_global_object: The constructor of global object "MaxXors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxXors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| // bottleneck after this transform on high end CPU. So this max leaf node +# 137| // limitation is guard cmp+ccmp will be profitable. +# 138|-> static cl::opt MaxXors("aarch64-max-xors", cl::init(16), cl::Hidden, +# 139| cl::desc("Maximum of xors")); +# 140| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:60: constructor_uses_global_object: The constructor of global object "TBZDisplacementBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TBZDisplacementBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| #include "AArch64GenInstrInfo.inc" +# 59| +# 60|-> static cl::opt TBZDisplacementBits( +# 61| "aarch64-tbz-offset-bits", cl::Hidden, cl::init(14), +# 62| cl::desc("Restrict range of TB[N]Z instructions (DEBUG)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:64: constructor_uses_global_object: The constructor of global object "CBZDisplacementBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CBZDisplacementBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| cl::desc("Restrict range of TB[N]Z instructions (DEBUG)")); +# 63| +# 64|-> static cl::opt CBZDisplacementBits( +# 65| "aarch64-cbz-offset-bits", cl::Hidden, cl::init(19), +# 66| cl::desc("Restrict range of CB[N]Z instructions (DEBUG)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:69: constructor_uses_global_object: The constructor of global object "BCCDisplacementBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BCCDisplacementBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| +# 68| static cl::opt +# 69|-> BCCDisplacementBits("aarch64-bcc-offset-bits", cl::Hidden, cl::init(19), +# 70| cl::desc("Restrict range of Bcc instructions (DEBUG)")); +# 71| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7276: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7276: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7565: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7639: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 7637| // link register. +# 7638| bool ModStackToSaveLR = false; +# 7639|-> if (std::any_of(FirstCand.front(), FirstCand.back(), +# 7640| [](const MachineInstr &MI) { return MI.isCall(); })) +# 7641| ModStackToSaveLR = true; +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7639: note: trimmed 1 message(s) with length over 512 + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:71: constructor_uses_global_object: The constructor of global object "LdStLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LdStLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| // The LdStLimit limits how far we search for load/store pairs. +# 71|-> static cl::opt LdStLimit("aarch64-load-store-scan-limit", +# 72| cl::init(20), cl::Hidden); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:76: constructor_uses_global_object: The constructor of global object "UpdateLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UpdateLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| // The UpdateLimit limits how far we search for update instructions when we form +# 75| // pre-/post-index instructions. +# 76|-> static cl::opt UpdateLimit("aarch64-update-scan-limit", cl::init(100), +# 77| cl::Hidden); +# 78| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:80: constructor_uses_global_object: The constructor of global object "EnableRenaming" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRenaming" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| // Enable register renaming to find additional store pairing opportunities. +# 80|-> static cl::opt EnableRenaming("aarch64-load-store-renaming", +# 81| cl::init(true), cl::Hidden); +# 82| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp:37: constructor_uses_global_object: The constructor of global object "FrameHelperSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FrameHelperSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| "AArch64 homogeneous prolog/epilog lowering pass" +# 36| +# 37|-> cl::opt FrameHelperSizeThreshold( +# 38| "frame-helper-size-threshold", cl::init(2), cl::Hidden, +# 39| cl::desc("The minimum number of instructions that are outlined in a frame " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64PromoteConstant.cpp:56: constructor_uses_global_object: The constructor of global object "Stress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Stress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| // Stress testing mode - disable heuristics. +# 56|-> static cl::opt Stress("aarch64-stress-promote-const", cl::Hidden, +# 57| cl::desc("Promote all vector constants")); +# 58| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64SpeculationHardening.cpp:119: constructor_uses_global_object: The constructor of global object "HardenLoads" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HardenLoads" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| #define AARCH64_SPECULATION_HARDENING_NAME "AArch64 speculation hardening pass" +# 118| +# 119|-> static cl::opt HardenLoads("aarch64-slh-loads", cl::Hidden, +# 120| cl::desc("Sanitize loads from memory."), +# 121| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:66: constructor_uses_global_object: The constructor of global object "ClMergeInit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClMergeInit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| #define DEBUG_TYPE "aarch64-stack-tagging" +# 65| +# 66|-> static cl::opt ClMergeInit( +# 67| "stack-tagging-merge-init", cl::Hidden, cl::init(true), +# 68| cl::desc("merge stack variable initializers with tagging when possible")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:71: constructor_uses_global_object: The constructor of global object "ClUseStackSafety" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClUseStackSafety" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| static cl::opt +# 71|-> ClUseStackSafety("stack-tagging-use-stack-safety", cl::Hidden, +# 72| cl::init(true), +# 73| cl::desc("Use Stack Safety analysis results")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:75: constructor_uses_global_object: The constructor of global object "ClScanLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClScanLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| cl::desc("Use Stack Safety analysis results")); +# 74| +# 75|-> static cl::opt ClScanLimit("stack-tagging-merge-init-scan-limit", +# 76| cl::init(40), cl::Hidden); +# 77| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:79: constructor_uses_global_object: The constructor of global object "ClMergeInitSizeLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClMergeInitSizeLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> ClMergeInitSizeLimit("stack-tagging-merge-init-size-limit", cl::init(272), +# 80| cl::Hidden); +# 81| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:82: constructor_uses_global_object: The constructor of global object "ClMaxLifetimes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClMaxLifetimes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| cl::Hidden); +# 81| +# 82|-> static cl::opt ClMaxLifetimes( +# 83| "stack-tagging-max-lifetimes-for-alloca", cl::Hidden, cl::init(3), +# 84| cl::ReallyHidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp:38: constructor_uses_global_object: The constructor of global object "ClUncheckedLdSt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClUncheckedLdSt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| enum UncheckedLdStMode { UncheckedNever, UncheckedSafe, UncheckedAlways }; +# 37| +# 38|-> cl::opt ClUncheckedLdSt( +# 39| "stack-tagging-unchecked-ld-st", cl::Hidden, +# 40| cl::init(UncheckedSafe), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp:52: constructor_uses_global_object: The constructor of global object "ClFirstSlot" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClFirstSlot" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| +# 51| static cl::opt +# 52|-> ClFirstSlot("stack-tagging-first-slot-opt", cl::Hidden, cl::init(true), +# 53| cl::desc("Apply first slot optimization for stack tagging " +# 54| "(eliminate ADDG Rt, Rn, 0, 0).")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:38: constructor_uses_global_object: The constructor of global object "EnableEarlyIfConvert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEarlyIfConvert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| +# 37| static cl::opt +# 38|-> EnableEarlyIfConvert("aarch64-early-ifcvt", cl::desc("Enable the early if " +# 39| "converter pass"), cl::init(true), cl::Hidden); +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:43: constructor_uses_global_object: The constructor of global object "UseAddressTopByteIgnored" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAddressTopByteIgnored" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| // If OS supports TBI, use this flag to enable it. +# 42| static cl::opt +# 43|-> UseAddressTopByteIgnored("aarch64-use-tbi", cl::desc("Assume that top byte of " +# 44| "an address is ignored"), cl::init(false), cl::Hidden); +# 45| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:47: constructor_uses_global_object: The constructor of global object "UseNonLazyBind" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseNonLazyBind" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| static cl::opt +# 47|-> UseNonLazyBind("aarch64-enable-nonlazybind", +# 48| cl::desc("Call nonlazybind functions via direct GOT load"), +# 49| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:51: constructor_uses_global_object: The constructor of global object "UseAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| cl::init(false), cl::Hidden); +# 50| +# 51|-> static cl::opt UseAA("aarch64-use-aa", cl::init(true), +# 52| cl::desc("Enable the use of AA during codegen.")); +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:54: constructor_uses_global_object: The constructor of global object "OverrideVectorInsertExtractBaseCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OverrideVectorInsertExtractBaseCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::desc("Enable the use of AA during codegen.")); +# 53| +# 54|-> static cl::opt OverrideVectorInsertExtractBaseCost( +# 55| "aarch64-insert-extract-base-cost", +# 56| cl::desc("Base cost of vector insert/extract element"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:62: constructor_uses_global_object: The constructor of global object "ReservedRegsForRA[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReservedRegsForRA[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| // to function call. +# 61| static cl::list +# 62|-> ReservedRegsForRA("reserve-regs-for-regalloc", cl::desc("Reserve physical " +# 63| "registers, so they can't be used by register allocator. " +# 64| "Should only be used for testing register allocator."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:67: constructor_uses_global_object: The constructor of global object "ForceStreamingCompatibleSVE" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceStreamingCompatibleSVE" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::CommaSeparated, cl::Hidden); +# 66| +# 67|-> static cl::opt ForceStreamingCompatibleSVE( +# 68| "force-streaming-compatible-sve", +# 69| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:58: constructor_uses_global_object: The constructor of global object "EnableCCMP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCCMP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| using namespace llvm; +# 57| +# 58|-> static cl::opt EnableCCMP("aarch64-enable-ccmp", +# 59| cl::desc("Enable the CCMP formation pass"), +# 60| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:63: constructor_uses_global_object: The constructor of global object "EnableCondBrTuning" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCondBrTuning" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| +# 62| static cl::opt +# 63|-> EnableCondBrTuning("aarch64-enable-cond-br-tune", +# 64| cl::desc("Enable the conditional branch tuning pass"), +# 65| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:67: constructor_uses_global_object: The constructor of global object "EnableAArch64CopyPropagation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAArch64CopyPropagation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::init(true), cl::Hidden); +# 66| +# 67|-> static cl::opt EnableAArch64CopyPropagation( +# 68| "aarch64-enable-copy-propagation", +# 69| cl::desc("Enable the copy propagation with AArch64 copy instr"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:72: constructor_uses_global_object: The constructor of global object "EnableMCR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMCR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| cl::init(true), cl::Hidden); +# 71| +# 72|-> static cl::opt EnableMCR("aarch64-enable-mcr", +# 73| cl::desc("Enable the machine combiner pass"), +# 74| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:76: constructor_uses_global_object: The constructor of global object "EnableStPairSuppress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableStPairSuppress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| cl::init(true), cl::Hidden); +# 75| +# 76|-> static cl::opt EnableStPairSuppress("aarch64-enable-stp-suppress", +# 77| cl::desc("Suppress STP for AArch64"), +# 78| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:80: constructor_uses_global_object: The constructor of global object "EnableAdvSIMDScalar" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAdvSIMDScalar" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| cl::init(true), cl::Hidden); +# 79| +# 80|-> static cl::opt EnableAdvSIMDScalar( +# 81| "aarch64-enable-simd-scalar", +# 82| cl::desc("Enable use of AdvSIMD scalar integer instructions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:86: constructor_uses_global_object: The constructor of global object "EnablePromoteConstant" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePromoteConstant" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> EnablePromoteConstant("aarch64-enable-promote-const", +# 87| cl::desc("Enable the promote constant pass"), +# 88| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:90: constructor_uses_global_object: The constructor of global object "EnableCollectLOH" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCollectLOH" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| cl::init(true), cl::Hidden); +# 89| +# 90|-> static cl::opt EnableCollectLOH( +# 91| "aarch64-enable-collect-loh", +# 92| cl::desc("Enable the pass that emits the linker optimization hints (LOH)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:96: constructor_uses_global_object: The constructor of global object "EnableDeadRegisterElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDeadRegisterElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| +# 95| static cl::opt +# 96|-> EnableDeadRegisterElimination("aarch64-enable-dead-defs", cl::Hidden, +# 97| cl::desc("Enable the pass that removes dead" +# 98| " definitons and replaces stores to" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:103: constructor_uses_global_object: The constructor of global object "EnableRedundantCopyElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRedundantCopyElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| cl::init(true)); +# 102| +# 103|-> static cl::opt EnableRedundantCopyElimination( +# 104| "aarch64-enable-copyelim", +# 105| cl::desc("Enable the redundant copy elimination pass"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:108: constructor_uses_global_object: The constructor of global object "EnableLoadStoreOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoadStoreOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| cl::Hidden); +# 107| +# 108|-> static cl::opt EnableLoadStoreOpt("aarch64-enable-ldst-opt", +# 109| cl::desc("Enable the load/store pair" +# 110| " optimization pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:113: constructor_uses_global_object: The constructor of global object "EnableAtomicTidy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAtomicTidy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::init(true), cl::Hidden); +# 112| +# 113|-> static cl::opt EnableAtomicTidy( +# 114| "aarch64-enable-atomic-cfg-tidy", cl::Hidden, +# 115| cl::desc("Run SimplifyCFG after expanding atomic operations" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:120: constructor_uses_global_object: The constructor of global object "EnableEarlyIfConversion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEarlyIfConversion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| +# 119| static cl::opt +# 120|-> EnableEarlyIfConversion("aarch64-enable-early-ifcvt", cl::Hidden, +# 121| cl::desc("Run early if-conversion"), +# 122| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:125: constructor_uses_global_object: The constructor of global object "EnableCondOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCondOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| +# 124| static cl::opt +# 125|-> EnableCondOpt("aarch64-enable-condopt", +# 126| cl::desc("Enable the condition optimizer pass"), +# 127| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:130: constructor_uses_global_object: The constructor of global object "EnableGEPOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGEPOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| +# 129| static cl::opt +# 130|-> EnableGEPOpt("aarch64-enable-gep-opt", cl::Hidden, +# 131| cl::desc("Enable optimizations on complex GEPs"), +# 132| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:135: constructor_uses_global_object: The constructor of global object "EnableSelectOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSelectOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| +# 134| static cl::opt +# 135|-> EnableSelectOpt("aarch64-select-opt", cl::Hidden, +# 136| cl::desc("Enable select to branch optimizations"), +# 137| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:140: constructor_uses_global_object: The constructor of global object "BranchRelaxation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BranchRelaxation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> BranchRelaxation("aarch64-enable-branch-relax", cl::Hidden, cl::init(true), +# 141| cl::desc("Relax out of range conditional branches")); +# 142| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:143: constructor_uses_global_object: The constructor of global object "EnableCompressJumpTables" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCompressJumpTables" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 141| cl::desc("Relax out of range conditional branches")); +# 142| +# 143|-> static cl::opt EnableCompressJumpTables( +# 144| "aarch64-enable-compress-jump-tables", cl::Hidden, cl::init(true), +# 145| cl::desc("Use smallest entry possible for jump tables")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:149: constructor_uses_global_object: The constructor of global object "EnableGlobalMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| // FIXME: Unify control over GlobalMerge. +# 148| static cl::opt +# 149|-> EnableGlobalMerge("aarch64-enable-global-merge", cl::Hidden, +# 150| cl::desc("Enable the global merge pass")); +# 151| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:153: constructor_uses_global_object: The constructor of global object "EnableLoopDataPrefetch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoopDataPrefetch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| +# 152| static cl::opt +# 153|-> EnableLoopDataPrefetch("https://github.com/aarch64-enable-loop-data-prefetch", cl::Hidden, +# 154| cl::desc("Enable the loop data prefetch pass"), +# 155| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:157: constructor_uses_global_object: The constructor of global object "EnableGlobalISelAtO" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalISelAtO" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 155| cl::init(true)); +# 156| +# 157|-> static cl::opt EnableGlobalISelAtO( +# 158| "aarch64-enable-global-isel-at-O", cl::Hidden, +# 159| cl::desc("Enable GlobalISel at or below an opt level (-1 to disable)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:163: constructor_uses_global_object: The constructor of global object "EnableSVEIntrinsicOpts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSVEIntrinsicOpts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| +# 162| static cl::opt +# 163|-> EnableSVEIntrinsicOpts("aarch64-enable-sve-intrinsic-opts", cl::Hidden, +# 164| cl::desc("Enable SVE intrinsic opts"), +# 165| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:167: constructor_uses_global_object: The constructor of global object "EnableFalkorHWPFFix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFalkorHWPFFix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 165| cl::init(true)); +# 166| +# 167|-> static cl::opt EnableFalkorHWPFFix("aarch64-enable-falkor-hwpf-fix", +# 168| cl::init(true), cl::Hidden); +# 169| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:171: constructor_uses_global_object: The constructor of global object "EnableBranchTargets" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableBranchTargets" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 169| +# 170| static cl::opt +# 171|-> EnableBranchTargets("aarch64-enable-branch-targets", cl::Hidden, +# 172| cl::desc("Enable the AArch64 branch target pass"), +# 173| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:175: constructor_uses_global_object: The constructor of global object "SVEVectorBitsMaxOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEVectorBitsMaxOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 173| cl::init(true)); +# 174| +# 175|-> static cl::opt SVEVectorBitsMaxOpt( +# 176| "aarch64-sve-vector-bits-max", +# 177| cl::desc("Assume SVE vector registers are at most this big, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:181: constructor_uses_global_object: The constructor of global object "SVEVectorBitsMinOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEVectorBitsMinOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 179| cl::init(0), cl::Hidden); +# 180| +# 181|-> static cl::opt SVEVectorBitsMinOpt( +# 182| "aarch64-sve-vector-bits-min", +# 183| cl::desc("Assume SVE vector registers are at least this big, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:189: constructor_uses_global_object: The constructor of global object "EnableGISelLoadStoreOptPreLegal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGISelLoadStoreOptPreLegal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 187| extern cl::opt EnableHomogeneousPrologEpilog; +# 188| +# 189|-> static cl::opt EnableGISelLoadStoreOptPreLegal( +# 190| "aarch64-enable-gisel-ldst-prelegal", +# 191| cl::desc("Enable GlobalISel's pre-legalizer load/store optimization pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:194: constructor_uses_global_object: The constructor of global object "EnableGISelLoadStoreOptPostLegal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGISelLoadStoreOptPostLegal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 192| cl::init(true), cl::Hidden); +# 193| +# 194|-> static cl::opt EnableGISelLoadStoreOptPostLegal( +# 195| "aarch64-enable-gisel-ldst-postlegal", +# 196| cl::desc("Enable GlobalISel's post-legalizer load/store optimization pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:33: constructor_uses_global_object: The constructor of global object "EnableFalkorHWPFUnrollFix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFalkorHWPFUnrollFix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| #define DEBUG_TYPE "aarch64tti" +# 32| +# 33|-> static cl::opt EnableFalkorHWPFUnrollFix("enable-falkor-hwpf-unroll-fix", +# 34| cl::init(true), cl::Hidden); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:36: constructor_uses_global_object: The constructor of global object "SVEGatherOverhead" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEGatherOverhead" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| cl::init(true), cl::Hidden); +# 35| +# 36|-> static cl::opt SVEGatherOverhead("sve-gather-overhead", cl::init(10), +# 37| cl::Hidden); +# 38| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:39: constructor_uses_global_object: The constructor of global object "SVEScatterOverhead" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEScatterOverhead" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::Hidden); +# 38| +# 39|-> static cl::opt SVEScatterOverhead("sve-scatter-overhead", +# 40| cl::init(10), cl::Hidden); +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:42: constructor_uses_global_object: The constructor of global object "SVETailFoldInsnThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVETailFoldInsnThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::init(10), cl::Hidden); +# 41| +# 42|-> static cl::opt SVETailFoldInsnThreshold("sve-tail-folding-insn-threshold", +# 43| cl::init(15), cl::Hidden); +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:46: constructor_uses_global_object: The constructor of global object "NeonNonConstStrideOverhead" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NeonNonConstStrideOverhead" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| +# 45| static cl::opt +# 46|-> NeonNonConstStrideOverhead("neon-nonconst-stride-overhead", cl::init(10), +# 47| cl::Hidden); +# 48| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:158: constructor_uses_global_object: The constructor of global object "SVETailFolding[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVETailFolding[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 156| TailFoldingOption TailFoldingOptionLoc; +# 157| +# 158|-> cl::opt> SVETailFolding( +# 159| "sve-tail-folding", +# 160| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:184: constructor_uses_global_object: The constructor of global object "EnableFixedwidthAutovecInStreamingMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFixedwidthAutovecInStreamingMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 182| // code-generator is changed to use SVE instead of NEON for all fixed-width +# 183| // operations. +# 184|-> static cl::opt EnableFixedwidthAutovecInStreamingMode( +# 185| "enable-fixedwidth-autovec-in-streaming-mode", cl::init(false), cl::Hidden); +# 186| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:190: constructor_uses_global_object: The constructor of global object "EnableScalableAutovecInStreamingMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableScalableAutovecInStreamingMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 188| // and code-generator have been changed to avoid using scalable vector +# 189| // instructions that are not legal in streaming SVE mode. +# 190|-> static cl::opt EnableScalableAutovecInStreamingMode( +# 191| "enable-scalable-autovec-in-streaming-mode", cl::init(false), cl::Hidden); +# 192| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:75: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:78: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:83: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 336 bytes. +# 81| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 82| "Invalid kind!"); +# 83|-> return Infos[Kind - FirstTargetFixupKind]; +# 84| } +# 85| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp:27: constructor_uses_global_object: The constructor of global object "AsmWriterVariant" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AsmWriterVariant" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| }; +# 26| +# 27|-> static cl::opt AsmWriterVariant( +# 28| "aarch64-neon-syntax", cl::init(Default), +# 29| cl::desc("Choose style of NEON code to emit from AArch64 backend:"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp:26: constructor_uses_global_object: The constructor of global object "MarkBTIProperty" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MarkBTIProperty" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| using namespace llvm; +# 25| +# 26|-> static cl::opt MarkBTIProperty( +# 27| "aarch64-mark-bti-property", cl::Hidden, +# 28| cl::desc("Add .note.gnu.property with BTI to assembly files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp:27: constructor_uses_global_object: The constructor of global object "::StressCalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::StressCalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| namespace { +# 26| +# 27|-> static cl::opt StressCalls( +# 28| "amdgpu-stress-function-calls", +# 29| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:42: constructor_uses_global_object: The constructor of global object "::WidenLoads" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::WidenLoads" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| namespace { +# 41| +# 42|-> static cl::opt WidenLoads( +# 43| "amdgpu-codegenprepare-widen-constant-loads", +# 44| cl::desc("Widen sub-dword constant address space loads in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:48: constructor_uses_global_object: The constructor of global object "::Widen16BitOps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Widen16BitOps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| cl::init(false)); +# 47| +# 48|-> static cl::opt Widen16BitOps( +# 49| "amdgpu-codegenprepare-widen-16-bit-ops", +# 50| cl::desc("Widen uniform 16-bit instructions to 32-bit in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:55: constructor_uses_global_object: The constructor of global object "::ScalarizeLargePHIs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ScalarizeLargePHIs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| +# 54| static cl::opt +# 55|-> ScalarizeLargePHIs("amdgpu-codegenprepare-break-large-phis", +# 56| cl::desc("Break large PHI nodes for DAGISel"), +# 57| cl::ReallyHidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:60: constructor_uses_global_object: The constructor of global object "::ForceScalarizeLargePHIs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ForceScalarizeLargePHIs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| +# 59| static cl::opt +# 60|-> ForceScalarizeLargePHIs("amdgpu-codegenprepare-force-break-large-phis", +# 61| cl::desc("For testing purposes, always break large " +# 62| "PHIs even if it isn't profitable."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:65: constructor_uses_global_object: The constructor of global object "::ScalarizeLargePHIsThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ScalarizeLargePHIsThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::ReallyHidden, cl::init(false)); +# 64| +# 65|-> static cl::opt ScalarizeLargePHIsThreshold( +# 66| "amdgpu-codegenprepare-break-large-phis-threshold", +# 67| cl::desc("Minimum type size in bits for breaking large PHI nodes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:70: constructor_uses_global_object: The constructor of global object "::UseMul24Intrin" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::UseMul24Intrin" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| cl::ReallyHidden, cl::init(32)); +# 69| +# 70|-> static cl::opt UseMul24Intrin( +# 71| "amdgpu-codegenprepare-mul24", +# 72| cl::desc("Introduce mul24 intrinsics in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:77: constructor_uses_global_object: The constructor of global object "::ExpandDiv64InIR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ExpandDiv64InIR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| +# 76| // Legalize 64-bit division by using the generic IR expansion. +# 77|-> static cl::opt ExpandDiv64InIR( +# 78| "amdgpu-codegenprepare-expand-div64", +# 79| cl::desc("Expand 64-bit division in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:85: constructor_uses_global_object: The constructor of global object "::DisableIDivExpand" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisableIDivExpand" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| // Leave all division operations as they are. This supersedes ExpandDiv64InIR +# 84| // and is used for testing the legalizer. +# 85|-> static cl::opt DisableIDivExpand( +# 86| "amdgpu-codegenprepare-disable-idiv-expansion", +# 87| cl::desc("Prevent expanding integer division in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:92: constructor_uses_global_object: The constructor of global object "::DisableFDivExpand" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisableFDivExpand" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| +# 91| // Disable processing of fdiv so we can better test the backend implementations. +# 92|-> static cl::opt DisableFDivExpand( +# 93| "amdgpu-codegenprepare-disable-fdiv-expansion", +# 94| cl::desc("Prevent expanding floating point division in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:41: constructor_uses_global_object: The constructor of global object "llvm::DumpHSAMetadata" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DumpHSAMetadata" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| namespace llvm { +# 40| +# 41|-> static cl::opt DumpHSAMetadata( +# 42| "amdgpu-dump-hsa-metadata", +# 43| cl::desc("Dump AMDGPU HSA Metadata")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:44: constructor_uses_global_object: The constructor of global object "llvm::VerifyHSAMetadata" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::VerifyHSAMetadata" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| "amdgpu-dump-hsa-metadata", +# 43| cl::desc("Dump AMDGPU HSA Metadata")); +# 44|-> static cl::opt VerifyHSAMetadata( +# 45| "amdgpu-verify-hsa-metadata", +# 46| cl::desc("Verify AMDGPU HSA Metadata")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:34: constructor_uses_global_object: The constructor of global object "::EnableExactSolver" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::EnableExactSolver" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| namespace { +# 33| +# 34|-> static cl::opt EnableExactSolver( +# 35| "amdgpu-igrouplp-exact-solver", cl::Hidden, +# 36| cl::desc("Whether to use the exponential time solver to fit " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:41: constructor_uses_global_object: The constructor of global object "::CutoffForExact" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::CutoffForExact" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| cl::init(false)); +# 40| +# 41|-> static cl::opt CutoffForExact( +# 42| "amdgpu-igrouplp-exact-solver-cutoff", cl::init(0), cl::Hidden, +# 43| cl::desc("The maximum number of scheduling group conflicts " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:50: constructor_uses_global_object: The constructor of global object "::MaxBranchesExplored" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::MaxBranchesExplored" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| "the solver (e.g. by amdgpu-igrouplp-exact-solver")); +# 49| +# 50|-> static cl::opt MaxBranchesExplored( +# 51| "amdgpu-igrouplp-exact-solver-max-branches", cl::init(0), cl::Hidden, +# 52| cl::desc("The amount of branches that we are willing to explore with" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:55: constructor_uses_global_object: The constructor of global object "::UseCostHeur" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::UseCostHeur" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| "the exact algorithm before giving up.")); +# 54| +# 55|-> static cl::opt UseCostHeur( +# 56| "amdgpu-igrouplp-exact-solver-cost-heur", cl::init(true), cl::Hidden, +# 57| cl::desc("Whether to use the cost heuristic to make choices as we " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:596: var_decl: Declaring variable "Match" without initializer. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:603: uninit_use_in_call: Using uninitialized value "Match" when calling "isFull". +# 601| +# 602| if (UseCostHeur) { +# 603|-> if (Match->isFull()) { +# 604| ReadyList.push_back(std::pair(*I, MissPenalty)); +# 605| continue; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:742: var_decl: Declaring variable "Match" without initializer. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:751: uninit_use_in_call: Using uninitialized value "Match" when calling "isFull". +# 749| << (int)Match->getMask() << "\n"); +# 750| +# 751|-> if (Match->isFull()) { +# 752| LLVM_DEBUG(dbgs() << "SGID # " << CandSGID << " is full\n"); +# 753| continue; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUISelLowering.cpp:34: constructor_uses_global_object: The constructor of global object "AMDGPUBypassSlowDiv" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUBypassSlowDiv" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| #include "AMDGPUGenCallingConv.inc" +# 33| +# 34|-> static cl::opt AMDGPUBypassSlowDiv( +# 35| "amdgpu-bypass-slow-div", +# 36| cl::desc("Skip 64-bit divide for dynamic 32-bit values"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp:36: constructor_uses_global_object: The constructor of global object "AllowRiskySelect" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowRiskySelect" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| using namespace MIPatternMatch; +# 35| +# 36|-> static cl::opt AllowRiskySelect( +# 37| "amdgpu-global-isel-risky-select", +# 38| cl::desc("Allow GlobalISel to select cases that are likely to not work yet"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp:35: constructor_uses_global_object: The constructor of global object "WidenLoads" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WidenLoads" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| // only but not dword aligned. +# 34| static cl::opt +# 35|-> WidenLoads("amdgpu-late-codegenprepare-widen-constant-loads", +# 36| cl::desc("Widen sub-dword constant address space loads in " +# 37| "AMDGPULateCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:41: constructor_uses_global_object: The constructor of global object "EnableNewLegality" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableNewLegality" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| // Hack until load/store selection patterns support any tuple of legal types. +# 41|-> static cl::opt EnableNewLegality( +# 42| "amdgpu-global-isel-new-legality", +# 43| cl::desc("Use GlobalISel desired legality, rather than try to use" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibCalls.cpp:30: constructor_uses_global_object: The constructor of global object "EnablePreLink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePreLink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace llvm; +# 29| +# 30|-> static cl::opt EnablePreLink("amdgpu-prelink", +# 31| cl::desc("Enable pre-link mode optimizations"), +# 32| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibCalls.cpp:35: constructor_uses_global_object: The constructor of global object "UseNative[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseNative[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| cl::Hidden); +# 34| +# 35|-> static cl::list UseNative("amdgpu-use-native", +# 36| cl::desc("Comma separated list of functions to replace with native, or all"), +# 37| cl::CommaSeparated, cl::ValueOptional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:28: constructor_uses_global_object: The constructor of global object "EnableOCLManglingMismatchWA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableOCLManglingMismatchWA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| using namespace llvm; +# 27| +# 28|-> static cl::opt EnableOCLManglingMismatchWA( +# 29| "amdgpu-enable-ocl-mangling-mismatch-workaround", cl::init(true), +# 30| cl::ReallyHidden, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:380: var_decl: Declaring variable "P". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:381: uninit_use: Using uninitialized value "P". Field "P.Reserved" is uninitialized. +# 379| AMDGPULibFunc::Param ParamIterator::getNextParam() { +# 380| AMDGPULibFunc::Param P; +# 381|-> if (Index >= int(sizeof Rule.Param/sizeof Rule.Param[0])) return P; +# 382| +# 383| const char R = Rule.Param[Index]; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:380: var_decl: Declaring variable "P". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:464: uninit_use: Using uninitialized value "P". Field "P.Reserved" is uninitialized. +# 462| } +# 463| ++Index; +# 464|-> return P; +# 465| } +# 466| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:218: constructor_uses_global_object: The constructor of global object "::SuperAlignLDSGlobals" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::SuperAlignLDSGlobals" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 216| namespace { +# 217| +# 218|-> cl::opt SuperAlignLDSGlobals( +# 219| "amdgpu-super-align-lds-globals", +# 220| cl::desc("Increase alignment of LDS if it is not on align boundary"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:224: constructor_uses_global_object: The constructor of global object "::LoweringKindLoc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::LoweringKindLoc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 222| +# 223| enum class LoweringKind { module, table, kernel, hybrid }; +# 224|-> cl::opt LoweringKindLoc( +# 225| "amdgpu-lower-module-lds-strategy", +# 226| cl::desc("Specify lowering strategy for function LDS access:"), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:35: constructor_uses_global_object: The constructor of global object "MemBoundThresh" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemBoundThresh" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> MemBoundThresh("amdgpu-membound-threshold", cl::init(50), cl::Hidden, +# 36| cl::desc("Function mem bound threshold in %")); +# 37| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:39: constructor_uses_global_object: The constructor of global object "LimitWaveThresh" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LimitWaveThresh" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> LimitWaveThresh("amdgpu-limit-wave-threshold", cl::init(50), cl::Hidden, +# 40| cl::desc("Kernel limit wave threshold in %")); +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:43: constructor_uses_global_object: The constructor of global object "IAWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IAWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| +# 42| static cl::opt +# 43|-> IAWeight("amdgpu-indirect-access-weight", cl::init(1000), cl::Hidden, +# 44| cl::desc("Indirect access memory instruction weight")); +# 45| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:47: constructor_uses_global_object: The constructor of global object "LSWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LSWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| static cl::opt +# 47|-> LSWeight("amdgpu-large-stride-weight", cl::init(1000), cl::Hidden, +# 48| cl::desc("Large stride memory access weight")); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:51: constructor_uses_global_object: The constructor of global object "LargeStrideThresh" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LargeStrideThresh" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| +# 50| static cl::opt +# 51|-> LargeStrideThresh("amdgpu-large-stride-threshold", cl::init(64), cl::Hidden, +# 52| cl::desc("Large stride memory access threshold")); +# 53| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp:105: tainted_data_return: Called function "CurFmt.find_last_of(llvm::StringRef("%"), 18446744073709551615UL)", and a possible return value is known to be less than zero. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp:105: assign: Assigning: "pTag" = "CurFmt.find_last_of(llvm::StringRef("%"), 18446744073709551615UL)". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp:108: overflow_sink: "--pTag", which might have underflowed, is passed to "CurFmt[--pTag]". +# 106| if (pTag != StringRef::npos) { +# 107| ArgDump = true; +# 108|-> while (pTag && CurFmt[--pTag] == '%') { +# 109| ArgDump = !ArgDump; +# 110| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp:53: constructor_uses_global_object: The constructor of global object "::DisablePromoteAllocaToVector" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisablePromoteAllocaToVector" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| static cl::opt +# 53|-> DisablePromoteAllocaToVector("disable-promote-alloca-to-vector", +# 54| cl::desc("Disable promote alloca to vector"), +# 55| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp:58: constructor_uses_global_object: The constructor of global object "::DisablePromoteAllocaToLDS" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisablePromoteAllocaToLDS" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| +# 57| static cl::opt +# 58|-> DisablePromoteAllocaToLDS("disable-promote-alloca-to-lds", +# 59| cl::desc("Disable promote alloca to LDS"), +# 60| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp:62: constructor_uses_global_object: The constructor of global object "::PromoteAllocaToVectorLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PromoteAllocaToVectorLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| cl::init(false)); +# 61| +# 62|-> static cl::opt PromoteAllocaToVectorLimit( +# 63| "amdgpu-promote-alloca-to-vector-limit", +# 64| cl::desc("Maximum byte size to consider promote alloca to vector"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp:49: constructor_uses_global_object: The constructor of global object "AssumedStackSizeForExternalCall" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumedStackSizeForExternalCall" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| // time if we don't know the true stack size. Assume a smaller number if this is +# 48| // only due to dynamic / non-entry block allocas. +# 49|-> static cl::opt AssumedStackSizeForExternalCall( +# 50| "amdgpu-assume-external-call-stack-size", +# 51| cl::desc("Assumed stack use of any external call (in bytes)"), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp:54: constructor_uses_global_object: The constructor of global object "AssumedStackSizeForDynamicSizeObjects" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumedStackSizeForDynamicSizeObjects" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::init(16384)); +# 53| +# 54|-> static cl::opt AssumedStackSizeForDynamicSizeObjects( +# 55| "amdgpu-assume-dynamic-stack-object-size", +# 56| cl::desc("Assumed extra stack use if there are any " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp:62: constructor_uses_global_object: The constructor of global object "AnyAddressSpace" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AnyAddressSpace" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| using namespace llvm; +# 61| +# 62|-> static cl::opt AnyAddressSpace( +# 63| "amdgpu-any-address-space-out-arguments", +# 64| cl::desc("Replace pointer out arguments with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp:69: constructor_uses_global_object: The constructor of global object "MaxNumRetRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxNumRetRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::init(false)); +# 68| +# 69|-> static cl::opt MaxNumRetRegs( +# 70| "amdgpu-max-return-arg-num-regs", +# 71| cl::desc("Approximately limit number of return registers for replacing out arguments"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSetWavePriority.cpp:29: constructor_uses_global_object: The constructor of global object "DefaultVALUInstsThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultVALUInstsThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| #define DEBUG_TYPE "amdgpu-set-wave-priority" +# 28| +# 29|-> static cl::opt DefaultVALUInstsThreshold( +# 30| "amdgpu-set-wave-priority-valu-insts-threshold", +# 31| cl::desc("VALU instruction count threshold for adjusting wave priority"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:43: constructor_uses_global_object: The constructor of global object "EnablePowerSched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePowerSched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| #undef AMDGPUSubtarget +# 42| +# 43|-> static cl::opt EnablePowerSched( +# 44| "amdgpu-enable-power-sched", +# 45| cl::desc("Enable scheduling to minimize mAI power bursts"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:48: constructor_uses_global_object: The constructor of global object "EnableVGPRIndexMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableVGPRIndexMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| cl::init(false)); +# 47| +# 48|-> static cl::opt EnableVGPRIndexMode( +# 49| "amdgpu-vgpr-index-mode", +# 50| cl::desc("Use GPR indexing mode instead of movrel for vector indexing"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:53: constructor_uses_global_object: The constructor of global object "UseAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| cl::init(false)); +# 52| +# 53|-> static cl::opt UseAA("amdgpu-use-aa-in-codegen", +# 54| cl::desc("Enable the use of AA during codegen."), +# 55| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:57: constructor_uses_global_object: The constructor of global object "NSAThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NSAThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::init(true)); +# 56| +# 57|-> static cl::opt NSAThreshold("amdgpu-nsa-threshold", +# 58| cl::desc("Number of addresses from which to enable MIMG NSA."), +# 59| cl::init(3), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:107: constructor_uses_global_object: The constructor of global object "::SGPRRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::SGPRRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| static cl::opt> +# 107|-> SGPRRegAlloc("sgpr-regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), +# 108| cl::desc("Register allocator to use for SGPRs")); +# 109| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:112: constructor_uses_global_object: The constructor of global object "::VGPRRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::VGPRRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 110| static cl::opt> +# 112|-> VGPRRegAlloc("vgpr-regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), +# 113| cl::desc("Register allocator to use for VGPRs")); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:176: constructor_uses_global_object: The constructor of global object "EnableSROA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSROA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 174| } +# 175| +# 176|-> static cl::opt EnableSROA( +# 177| "amdgpu-sroa", +# 178| cl::desc("Run SROA after promote alloca pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:183: constructor_uses_global_object: The constructor of global object "EnableEarlyIfConversion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEarlyIfConversion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 181| +# 182| static cl::opt +# 183|-> EnableEarlyIfConversion("amdgpu-early-ifcvt", cl::Hidden, +# 184| cl::desc("Run early if-conversion"), +# 185| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:188: constructor_uses_global_object: The constructor of global object "OptExecMaskPreRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptExecMaskPreRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 186| +# 187| static cl::opt +# 188|-> OptExecMaskPreRA("amdgpu-opt-exec-mask-pre-ra", cl::Hidden, +# 189| cl::desc("Run pre-RA exec mask optimizations"), +# 190| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:193: constructor_uses_global_object: The constructor of global object "LowerCtorDtor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LowerCtorDtor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 191| +# 192| static cl::opt +# 193|-> LowerCtorDtor("amdgpu-lower-global-ctor-dtor", +# 194| cl::desc("Lower GPU ctor / dtors to globals on the device."), +# 195| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:198: constructor_uses_global_object: The constructor of global object "EnableLoadStoreVectorizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoadStoreVectorizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 196| +# 197| // Option to disable vectorizer for tests. +# 198|-> static cl::opt EnableLoadStoreVectorizer( +# 199| "amdgpu-load-store-vectorizer", +# 200| cl::desc("Enable load store vectorizer"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:205: constructor_uses_global_object: The constructor of global object "ScalarizeGlobal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ScalarizeGlobal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 203| +# 204| // Option to control global loads scalarization +# 205|-> static cl::opt ScalarizeGlobal( +# 206| "amdgpu-scalarize-global-loads", +# 207| cl::desc("Enable global load scalarization"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:212: constructor_uses_global_object: The constructor of global object "InternalizeSymbols" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InternalizeSymbols" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 210| +# 211| // Option to run internalize pass. +# 212|-> static cl::opt InternalizeSymbols( +# 213| "amdgpu-internalize-symbols", +# 214| cl::desc("Enable elimination of non-kernel functions and unused globals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:219: constructor_uses_global_object: The constructor of global object "EarlyInlineAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EarlyInlineAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 217| +# 218| // Option to inline all early. +# 219|-> static cl::opt EarlyInlineAll( +# 220| "amdgpu-early-inline-all", +# 221| cl::desc("Inline all functions early"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:225: constructor_uses_global_object: The constructor of global object "RemoveIncompatibleFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemoveIncompatibleFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 223| cl::Hidden); +# 224| +# 225|-> static cl::opt RemoveIncompatibleFunctions( +# 226| "amdgpu-enable-remove-incompatible-functions", cl::Hidden, +# 227| cl::desc("Enable removal of functions when they" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:231: constructor_uses_global_object: The constructor of global object "EnableSDWAPeephole" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSDWAPeephole" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 229| cl::init(true)); +# 230| +# 231|-> static cl::opt EnableSDWAPeephole( +# 232| "amdgpu-sdwa-peephole", +# 233| cl::desc("Enable SDWA peepholer"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:236: constructor_uses_global_object: The constructor of global object "EnableDPPCombine" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDPPCombine" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 234| cl::init(true)); +# 235| +# 236|-> static cl::opt EnableDPPCombine( +# 237| "amdgpu-dpp-combine", +# 238| cl::desc("Enable DPP combiner"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:242: constructor_uses_global_object: The constructor of global object "EnableAMDGPUAliasAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAMDGPUAliasAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 240| +# 241| // Enable address space based alias analysis +# 242|-> static cl::opt EnableAMDGPUAliasAnalysis("enable-amdgpu-aa", cl::Hidden, +# 243| cl::desc("Enable AMDGPU Alias Analysis"), +# 244| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:247: constructor_uses_global_object: The constructor of global object "LateCFGStructurize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LateCFGStructurize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 245| +# 246| // Option to run late CFG structurizer +# 247|-> static cl::opt LateCFGStructurize( +# 248| "amdgpu-late-structurize", +# 249| cl::desc("Enable late CFG structurization"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:254: constructor_uses_global_object: The constructor of global object "EnableLibCallSimplify" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLibCallSimplify" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 252| +# 253| // Enable lib calls simplifications +# 254|-> static cl::opt EnableLibCallSimplify( +# 255| "amdgpu-simplify-libcall", +# 256| cl::desc("Enable amdgpu library simplifications"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:260: constructor_uses_global_object: The constructor of global object "EnableLowerKernelArguments" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLowerKernelArguments" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 258| cl::Hidden); +# 259| +# 260|-> static cl::opt EnableLowerKernelArguments( +# 261| "amdgpu-ir-lower-kernel-arguments", +# 262| cl::desc("Lower kernel argument loads in IR pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:266: constructor_uses_global_object: The constructor of global object "EnableRegReassign" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRegReassign" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 264| cl::Hidden); +# 265| +# 266|-> static cl::opt EnableRegReassign( +# 267| "amdgpu-reassign-regs", +# 268| cl::desc("Enable register reassign optimizations on gfx10+"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:272: constructor_uses_global_object: The constructor of global object "OptVGPRLiveRange" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptVGPRLiveRange" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 270| cl::Hidden); +# 271| +# 272|-> static cl::opt OptVGPRLiveRange( +# 273| "amdgpu-opt-vgpr-liverange", +# 274| cl::desc("Enable VGPR liverange optimizations for if-else structure"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:277: constructor_uses_global_object: The constructor of global object "AMDGPUAtomicOptimizerStrategy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUAtomicOptimizerStrategy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 275| cl::init(true), cl::Hidden); +# 276| +# 277|-> static cl::opt AMDGPUAtomicOptimizerStrategy( +# 278| "amdgpu-atomic-optimizer-strategy", +# 279| cl::desc("Select DPP or Iterative strategy for scan"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:288: constructor_uses_global_object: The constructor of global object "EnableSIModeRegisterPass" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSIModeRegisterPass" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 286| +# 287| // Enable Mode register optimization +# 288|-> static cl::opt EnableSIModeRegisterPass( +# 289| "amdgpu-mode-register", +# 290| cl::desc("Enable mode register pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:296: constructor_uses_global_object: The constructor of global object "EnableInsertDelayAlu" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableInsertDelayAlu" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 294| // Enable GFX11+ s_delay_alu insertion +# 295| static cl::opt +# 296|-> EnableInsertDelayAlu("amdgpu-enable-delay-alu", +# 297| cl::desc("Enable s_delay_alu insertion"), +# 298| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:302: constructor_uses_global_object: The constructor of global object "EnableVOPD" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableVOPD" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 300| // Enable GFX11+ VOPD +# 301| static cl::opt +# 302|-> EnableVOPD("amdgpu-enable-vopd", +# 303| cl::desc("Enable VOPD, dual issue of VALU in wave32"), +# 304| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:308: constructor_uses_global_object: The constructor of global object "EnableDCEInRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDCEInRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 306| // Option is used in lit tests to prevent deadcoding of patterns inspected. +# 307| static cl::opt +# 308|-> EnableDCEInRA("amdgpu-dce-in-ra", +# 309| cl::init(true), cl::Hidden, +# 310| cl::desc("Enable machine DCE inside regalloc")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:312: constructor_uses_global_object: The constructor of global object "EnableSetWavePriority" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSetWavePriority" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 310| cl::desc("Enable machine DCE inside regalloc")); +# 311| +# 312|-> static cl::opt EnableSetWavePriority("amdgpu-set-wave-priority", +# 313| cl::desc("Adjust wave priority"), +# 314| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:316: constructor_uses_global_object: The constructor of global object "EnableScalarIRPasses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableScalarIRPasses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 314| cl::init(false), cl::Hidden); +# 315| +# 316|-> static cl::opt EnableScalarIRPasses( +# 317| "amdgpu-scalar-ir-passes", +# 318| cl::desc("Enable scalar IR passes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:322: constructor_uses_global_object: The constructor of global object "EnableStructurizerWorkarounds" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableStructurizerWorkarounds" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 320| cl::Hidden); +# 321| +# 322|-> static cl::opt EnableStructurizerWorkarounds( +# 323| "amdgpu-enable-structurizer-workarounds", +# 324| cl::desc("Enable workarounds for the StructurizeCFG pass"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:327: constructor_uses_global_object: The constructor of global object "EnableLowerModuleLDS" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLowerModuleLDS" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 325| cl::Hidden); +# 326| +# 327|-> static cl::opt EnableLowerModuleLDS( +# 328| "amdgpu-enable-lower-module-lds", cl::desc("Enable lower module lds pass"), +# 329| cl::location(AMDGPUTargetMachine::EnableLowerModuleLDS), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:332: constructor_uses_global_object: The constructor of global object "EnablePreRAOptimizations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePreRAOptimizations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 330| cl::Hidden); +# 331| +# 332|-> static cl::opt EnablePreRAOptimizations( +# 333| "amdgpu-enable-pre-ra-optimizations", +# 334| cl::desc("Enable Pre-RA optimizations pass"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:337: constructor_uses_global_object: The constructor of global object "EnablePromoteKernelArguments" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePromoteKernelArguments" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 335| cl::Hidden); +# 336| +# 337|-> static cl::opt EnablePromoteKernelArguments( +# 338| "amdgpu-enable-promote-kernel-arguments", +# 339| cl::desc("Enable promotion of flat kernel pointer arguments to global"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:342: constructor_uses_global_object: The constructor of global object "EnableMaxIlpSchedStrategy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMaxIlpSchedStrategy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 340| cl::Hidden, cl::init(true)); +# 341| +# 342|-> static cl::opt EnableMaxIlpSchedStrategy( +# 343| "amdgpu-enable-max-ilp-scheduling-strategy", +# 344| cl::desc("Enable scheduling strategy to maximize ILP for a single wave."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:347: constructor_uses_global_object: The constructor of global object "EnableRewritePartialRegUses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRewritePartialRegUses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 345| cl::Hidden, cl::init(false)); +# 346| +# 347|-> static cl::opt EnableRewritePartialRegUses( +# 348| "amdgpu-enable-rewrite-partial-reg-uses", +# 349| cl::desc("Enable rewrite partial reg uses pass"), cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:35: constructor_uses_global_object: The constructor of global object "UnrollThresholdPrivate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdPrivate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| #define DEBUG_TYPE "AMDGPUtti" +# 34| +# 35|-> static cl::opt UnrollThresholdPrivate( +# 36| "amdgpu-unroll-threshold-private", +# 37| cl::desc("Unroll threshold for AMDGPU if private memory used in a loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:40: constructor_uses_global_object: The constructor of global object "UnrollThresholdLocal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdLocal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| cl::init(2700), cl::Hidden); +# 39| +# 40|-> static cl::opt UnrollThresholdLocal( +# 41| "amdgpu-unroll-threshold-local", +# 42| cl::desc("Unroll threshold for AMDGPU if local memory used in a loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:45: constructor_uses_global_object: The constructor of global object "UnrollThresholdIf" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdIf" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::init(1000), cl::Hidden); +# 44| +# 45|-> static cl::opt UnrollThresholdIf( +# 46| "amdgpu-unroll-threshold-if", +# 47| cl::desc("Unroll threshold increment for AMDGPU for each if statement inside loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:50: constructor_uses_global_object: The constructor of global object "UnrollRuntimeLocal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollRuntimeLocal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::init(200), cl::Hidden); +# 49| +# 50|-> static cl::opt UnrollRuntimeLocal( +# 51| "amdgpu-unroll-runtime-local", +# 52| cl::desc("Allow runtime unroll for AMDGPU if local memory used in a loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:55: constructor_uses_global_object: The constructor of global object "UnrollMaxBlockToAnalyze" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollMaxBlockToAnalyze" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| cl::init(true), cl::Hidden); +# 54| +# 55|-> static cl::opt UnrollMaxBlockToAnalyze( +# 56| "amdgpu-unroll-max-block-to-analyze", +# 57| cl::desc("Inner loop block size threshold to analyze in unroll for AMDGPU"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:60: constructor_uses_global_object: The constructor of global object "ArgAllocaCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgAllocaCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(32), cl::Hidden); +# 59| +# 60|-> static cl::opt ArgAllocaCost("amdgpu-inline-arg-alloca-cost", +# 61| cl::Hidden, cl::init(4000), +# 62| cl::desc("Cost of alloca argument")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:68: constructor_uses_global_object: The constructor of global object "ArgAllocaCutoff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgAllocaCutoff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| // heuristic. +# 67| static cl::opt +# 68|-> ArgAllocaCutoff("amdgpu-inline-arg-alloca-cutoff", cl::Hidden, +# 69| cl::init(256), +# 70| cl::desc("Maximum alloca size to use for inline cost")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:73: constructor_uses_global_object: The constructor of global object "InlineMaxBB" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineMaxBB" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| // Inliner constraint to achieve reasonable compilation time. +# 73|-> static cl::opt InlineMaxBB( +# 74| "amdgpu-inline-max-bb", cl::Hidden, cl::init(1100), +# 75| cl::desc("Maximum number of BBs allowed in a function after inlining" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNHazardRecognizer.cpp:42: constructor_uses_global_object: The constructor of global object "MFMAPaddingRatio" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MFMAPaddingRatio" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> MFMAPaddingRatio("amdgpu-mfma-padding-ratio", cl::init(0), cl::Hidden, +# 43| cl::desc("Fill a percentage of the latency between " +# 44| "neighboring MFMA with s_nops.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNPreRALongBranchReg.cpp:30: constructor_uses_global_object: The constructor of global object "::LongBranchFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::LongBranchFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| namespace { +# 29| +# 30|-> static cl::opt LongBranchFactor( +# 31| "amdgpu-long-branch-factor", cl::init(1.0), cl::Hidden, +# 32| cl::desc("Factor to apply to what qualifies as a long branch " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNRegPressure.cpp:192: var_decl: Declaring variable "Res". +llvm-17.0.6.src/lib/Target/AMDGPU/GCNRegPressure.cpp:209: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 207| Res.push_back(RegisterMaskPair(Reg, UsedMask)); +# 208| } +# 209|-> return Res; +# 210| } +# 211| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNSchedStrategy.cpp:36: constructor_uses_global_object: The constructor of global object "DisableUnclusterHighRP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableUnclusterHighRP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> DisableUnclusterHighRP("amdgpu-disable-unclustred-high-rp-reschedule", +# 37| cl::Hidden, +# 38| cl::desc("Disable unclustred high register pressure " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNSchedStrategy.cpp:41: constructor_uses_global_object: The constructor of global object "ScheduleMetricBias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ScheduleMetricBias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| "reduction scheduling stage."), +# 40| cl::init(false)); +# 41|-> static cl::opt ScheduleMetricBias( +# 42| "amdgpu-schedule-metric-bias", cl::Hidden, +# 43| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNSchedStrategy.cpp:49: constructor_uses_global_object: The constructor of global object "RelaxedOcc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RelaxedOcc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> RelaxedOcc("amdgpu-schedule-relaxed-occupancy", cl::Hidden, +# 50| cl::desc("Relax occupancy targets for kernels which are memory " +# 51| "bound (amdgpu-membound-threshold), or " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp:27: constructor_uses_global_object: The constructor of global object "Keep16BitSuffixes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Keep16BitSuffixes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| using namespace llvm::AMDGPU; +# 26| +# 27|-> static cl::opt Keep16BitSuffixes( +# 28| "amdgpu-keep-16-bit-reg-suffixes", +# 29| cl::desc("Keep .l and .h suffixes in asm for debugging purposes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/R600TargetMachine.cpp:26: constructor_uses_global_object: The constructor of global object "EnableR600StructurizeCFG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableR600StructurizeCFG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> EnableR600StructurizeCFG("r600-ir-structurize", +# 27| cl::desc("Use StructurizeCFG IR pass"), +# 28| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/R600TargetMachine.cpp:30: constructor_uses_global_object: The constructor of global object "EnableR600IfConvert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableR600IfConvert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| cl::init(true)); +# 29| +# 30|-> static cl::opt EnableR600IfConvert("r600-if-convert", +# 31| cl::desc("Use if conversion pass"), +# 32| cl::ReallyHidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/R600TargetMachine.cpp:34: constructor_uses_global_object: The constructor of global object "EnableAMDGPUFunctionCallsOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAMDGPUFunctionCallsOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| cl::ReallyHidden, cl::init(true)); +# 33| +# 34|-> static cl::opt EnableAMDGPUFunctionCallsOpt( +# 35| "amdgpu-function-calls", cl::desc("Enable AMDGPU function call support"), +# 36| cl::location(AMDGPUTargetMachine::EnableFunctionCalls), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIFixSGPRCopies.cpp:79: constructor_uses_global_object: The constructor of global object "EnableM0Merge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableM0Merge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| #define DEBUG_TYPE "si-fix-sgpr-copies" +# 78| +# 79|-> static cl::opt EnableM0Merge( +# 80| "amdgpu-enable-merge-m0", +# 81| cl::desc("Merge and hoist M0 initializations"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIFormMemoryClauses.cpp:29: constructor_uses_global_object: The constructor of global object "MaxClause" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxClause" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| // and stall. They can stall even earlier if there are outstanding counters. +# 28| static cl::opt +# 29|-> MaxClause("amdgpu-max-memory-clause", cl::Hidden, cl::init(15), +# 30| cl::desc("Maximum length of a memory clause, instructions")); +# 31| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIFrameLowering.cpp:23: constructor_uses_global_object: The constructor of global object "EnableSpillVGPRToAGPR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSpillVGPRToAGPR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| #define DEBUG_TYPE "frame-info" +# 22| +# 23|-> static cl::opt EnableSpillVGPRToAGPR( +# 24| "amdgpu-spill-vgpr-to-agpr", +# 25| cl::desc("Enable spilling VGPRs to AGPRs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:51: constructor_uses_global_object: The constructor of global object "DisableLoopAlignment" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLoopAlignment" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| STATISTIC(NumTailCalls, "Number of tail calls"); +# 50| +# 51|-> static cl::opt DisableLoopAlignment( +# 52| "amdgpu-disable-loop-alignment", +# 53| cl::desc("Do not align and prefetch loops"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:56: constructor_uses_global_object: The constructor of global object "UseDivergentRegisterIndexing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseDivergentRegisterIndexing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| cl::init(false)); +# 55| +# 56|-> static cl::opt UseDivergentRegisterIndexing( +# 57| "amdgpu-use-divergent-register-indexing", +# 58| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:50: constructor_uses_global_object: The constructor of global object "ForceEmitZeroFlag" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceEmitZeroFlag" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| "Force emit s_waitcnt vmcnt(0) instrs"); +# 49| +# 50|-> static cl::opt ForceEmitZeroFlag( +# 51| "amdgpu-waitcnt-forcezero", +# 52| cl::desc("Force all waitcnt instrs to be emitted as s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)"), + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:694: cond_at_most: Checking "Interval.first >= NUM_ALL_VGPRS" implies that "Interval.first" may be up to 512 on the false branch. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:698: assignment: Assigning: "RegNo" = "Interval.first". The value of "RegNo" may now be up to 512. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:698: incr: Incrementing "RegNo". The value of "RegNo" may now be up to 513. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:699: overrun-local: Overrunning array "this->VgprVmemTypes" of 513 bytes at byte offset 513 using index "RegNo" (which evaluates to 513). +# 697| VmemType V = getVmemType(Inst); +# 698| for (int RegNo = Interval.first; RegNo < Interval.second; ++RegNo) +# 699|-> VgprVmemTypes[RegNo] |= 1 << V; +# 700| } +# 701| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInstrInfo.cpp:55: constructor_uses_global_object: The constructor of global object "BranchOffsetBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BranchOffsetBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| // long branches. +# 54| static cl::opt +# 55|-> BranchOffsetBits("amdgpu-s-branch-bits", cl::ReallyHidden, cl::init(16), +# 56| cl::desc("Restrict range of branch instructions (DEBUG)")); +# 57| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInstrInfo.cpp:58: constructor_uses_global_object: The constructor of global object "Fix16BitCopies" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Fix16BitCopies" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::desc("Restrict range of branch instructions (DEBUG)")); +# 57| +# 58|-> static cl::opt Fix16BitCopies( +# 59| "amdgpu-fix-16-bit-physreg-copies", +# 60| cl::desc("Fix copies between 32 and 16 bit registers by extending to 32 bit"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SILowerControlFlow.cpp:66: constructor_uses_global_object: The constructor of global object "RemoveRedundantEndcf" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemoveRedundantEndcf" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| static cl::opt +# 66|-> RemoveRedundantEndcf("amdgpu-remove-redundant-endcf", +# 67| cl::init(true), cl::ReallyHidden); +# 68| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIMemoryLegalizer.cpp:33: constructor_uses_global_object: The constructor of global object "AmdgcnSkipCacheInvalidations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AmdgcnSkipCacheInvalidations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| #define PASS_NAME "SI Memory Legalizer" +# 32| +# 33|-> static cl::opt AmdgcnSkipCacheInvalidations( +# 34| "amdgcn-skip-cache-invalidations", cl::init(false), cl::Hidden, +# 35| cl::desc("Use this to skip inserting cache invalidating instructions.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIPreEmitPeephole.cpp:25: constructor_uses_global_object: The constructor of global object "SkipThresholdFlag" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SkipThresholdFlag" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| static unsigned SkipThreshold; +# 24| +# 25|-> static cl::opt SkipThresholdFlag( +# 26| "amdgpu-skip-threshold", cl::Hidden, +# 27| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIRegisterInfo.cpp:32: constructor_uses_global_object: The constructor of global object "EnableSpillSGPRToVGPR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSpillSGPRToVGPR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| #include "AMDGPUGenRegisterInfo.inc" +# 31| +# 32|-> static cl::opt EnableSpillSGPRToVGPR( +# 33| "amdgpu-spill-sgpr-to-vgpr", +# 34| cl::desc("Enable spilling SGPRs to VGPRs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp:36: constructor_uses_global_object: The constructor of global object "AmdhsaCodeObjectVersion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AmdhsaCodeObjectVersion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static llvm::cl::opt +# 36|-> AmdhsaCodeObjectVersion("amdhsa-code-object-version", llvm::cl::Hidden, +# 37| llvm::cl::desc("AMDHSA Code Object Version"), +# 38| llvm::cl::init(4)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:80: constructor_uses_global_object: The constructor of global object "EnableARM3Addr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableARM3Addr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| static cl::opt +# 80|-> EnableARM3Addr("enable-arm-3-addr-conv", cl::Hidden, +# 81| cl::desc("Enable ARM 2-addr to 3-addr conv")); +# 82| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5879: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5879: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:6067: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:6078: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 6076| // check if the range contains a call. These require a save + restore of +# 6077| // the link register. +# 6078|-> if (std::any_of(FirstCand.front(), FirstCand.back(), +# 6079| [](const MachineInstr &MI) { return MI.isCall(); })) +# 6080| NumBytesToCreateFrame += Costs.SaveRestoreLROnStack; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMConstantIslandPass.cpp:78: constructor_uses_global_object: The constructor of global object "AdjustJumpTableBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AdjustJumpTableBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| +# 77| static cl::opt +# 78|-> AdjustJumpTableBlocks("arm-adjust-jump-tables", cl::Hidden, cl::init(true), +# 79| cl::desc("Adjust basic block layout to better use TB[BH]")); +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMConstantIslandPass.cpp:82: constructor_uses_global_object: The constructor of global object "CPMaxIteration" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CPMaxIteration" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| +# 81| static cl::opt +# 82|-> CPMaxIteration("arm-constant-island-max-iteration", cl::Hidden, cl::init(30), +# 83| cl::desc("The max number of iteration for converge")); +# 84| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMConstantIslandPass.cpp:85: constructor_uses_global_object: The constructor of global object "SynthesizeThumb1TBB" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SynthesizeThumb1TBB" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("The max number of iteration for converge")); +# 84| +# 85|-> static cl::opt SynthesizeThumb1TBB( +# 86| "arm-synthesize-thumb-1-tbb", cl::Hidden, cl::init(true), +# 87| cl::desc("Use compressed jump tables in Thumb-1 by synthesizing an " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMExpandPseudoInsts.cpp:35: constructor_uses_global_object: The constructor of global object "VerifyARMPseudo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyARMPseudo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> VerifyARMPseudo("verify-arm-pseudo-expand", cl::Hidden, +# 36| cl::desc("Verify machine code after expanding ARM pseudos")); +# 37| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1691: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1704: overrun-call: Overrunning callee's array of size 644 by passing argument "LC" (which evaluates to 644) in call to "ARMEmitLibcall". +# 1702| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SDIV!"); +# 1703| +# 1704|-> return ARMEmitLibcall(I, LC); +# 1705| } +# 1706| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1720: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1733: overrun-call: Overrunning callee's array of size 644 by passing argument "LC" (which evaluates to 644) in call to "ARMEmitLibcall". +# 1731| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SREM!"); +# 1732| +# 1733|-> return ARMEmitLibcall(I, LC); +# 1734| } +# 1735| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMFrameLowering.cpp:169: constructor_uses_global_object: The constructor of global object "SpillAlignedNEONRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SpillAlignedNEONRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 167| +# 168| static cl::opt +# 169|-> SpillAlignedNEONRegs("align-neon-spills", cl::Hidden, cl::init(true), +# 170| cl::desc("Align ARM NEON spills in prolog and epilog")); +# 171| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMHazardRecognizer.cpp:23: constructor_uses_global_object: The constructor of global object "DataBankMask" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DataBankMask" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| using namespace llvm; +# 22| +# 23|-> static cl::opt DataBankMask("arm-data-bank-mask", cl::init(-1), +# 24| cl::Hidden); +# 25| static cl::opt AssumeITCMConflict("arm-assume-itcm-bankconflict", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMHazardRecognizer.cpp:25: constructor_uses_global_object: The constructor of global object "AssumeITCMConflict" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumeITCMConflict" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| static cl::opt DataBankMask("arm-data-bank-mask", cl::init(-1), +# 24| cl::Hidden); +# 25|-> static cl::opt AssumeITCMConflict("arm-assume-itcm-bankconflict", +# 26| cl::init(false), cl::Hidden); +# 27| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:46: constructor_uses_global_object: The constructor of global object "DisableShifterOp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableShifterOp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| +# 45| static cl::opt +# 46|-> DisableShifterOp("disable-shifter-op", cl::Hidden, +# 47| cl::desc("Disable isel of shifter-op"), +# 48| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:131: constructor_uses_global_object: The constructor of global object "ARMInterworking" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ARMInterworking" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 129| +# 130| static cl::opt +# 131|-> ARMInterworking("arm-interworking", cl::Hidden, +# 132| cl::desc("Enable / disable ARM interworking (for debugging only)"), +# 133| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:135: constructor_uses_global_object: The constructor of global object "EnableConstpoolPromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableConstpoolPromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::init(true)); +# 134| +# 135|-> static cl::opt EnableConstpoolPromotion( +# 136| "arm-promote-constant", cl::Hidden, +# 137| cl::desc("Enable / disable promotion of unnamed_addr constants into " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:140: constructor_uses_global_object: The constructor of global object "ConstpoolPromotionMaxSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConstpoolPromotionMaxSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| "constant pools"), +# 139| cl::init(false)); // FIXME: set to true by default once PR32780 is fixed +# 140|-> static cl::opt ConstpoolPromotionMaxSize( +# 141| "arm-promote-constant-max-size", cl::Hidden, +# 142| cl::desc("Maximum size of constant to promote into a constant pool"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:144: constructor_uses_global_object: The constructor of global object "ConstpoolPromotionMaxTotal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConstpoolPromotionMaxTotal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 142| cl::desc("Maximum size of constant to promote into a constant pool"), +# 143| cl::init(64)); +# 144|-> static cl::opt ConstpoolPromotionMaxTotal( +# 145| "arm-promote-constant-max-total", cl::Hidden, +# 146| cl::desc("Maximum size of ALL constants to promote into a constant pool"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:150: constructor_uses_global_object: The constructor of global object "MVEMaxSupportedInterleaveFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MVEMaxSupportedInterleaveFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 148| +# 149| cl::opt +# 150|-> MVEMaxSupportedInterleaveFactor("mve-max-interleave-factor", cl::Hidden, +# 151| cl::desc("Maximum interleave factor for MVE VLDn to generate."), +# 152| cl::init(2)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:94: constructor_uses_global_object: The constructor of global object "AssumeMisalignedLoadStores" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumeMisalignedLoadStores" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| /// \see mayCombineMisaligned() +# 93| static cl::opt +# 94|-> AssumeMisalignedLoadStores("arm-assume-misaligned-load-store", cl::Hidden, +# 95| cl::init(false), cl::desc("Be more conservative in ARM load/store opt")); +# 96| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:2196: constructor_uses_global_object: The constructor of global object "InstReorderLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InstReorderLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 2194| // Limit the number of instructions to be rescheduled. +# 2195| // FIXME: tune this limit, and/or come up with some better heuristics. +# 2196|-> static cl::opt InstReorderLimit("arm-prera-ldst-opt-reorder-limit", +# 2197| cl::init(8), cl::Hidden); +# 2198| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:80: constructor_uses_global_object: The constructor of global object "DisableTailPredication" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTailPredication" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| static cl::opt +# 80|-> DisableTailPredication("arm-loloops-disable-tailpred", cl::Hidden, +# 81| cl::desc("Disable tail-predication in the ARM LowOverheadLoop pass"), +# 82| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:85: constructor_uses_global_object: The constructor of global object "DisableOmitDLS" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableOmitDLS" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| +# 84| static cl::opt +# 85|-> DisableOmitDLS("arm-disable-omit-dls", cl::Hidden, +# 86| cl::desc("Disable omitting 'dls lr, lr' instructions"), +# 87| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMParallelDSP.cpp:45: constructor_uses_global_object: The constructor of global object "DisableParallelDSP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableParallelDSP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| static cl::opt +# 45|-> DisableParallelDSP("disable-arm-parallel-dsp", cl::Hidden, cl::init(false), +# 46| cl::desc("Disable the ARM Parallel DSP pass")); +# 47| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMParallelDSP.cpp:49: constructor_uses_global_object: The constructor of global object "NumLoadLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NumLoadLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> NumLoadLimit("arm-parallel-dsp-load-limit", cl::Hidden, cl::init(16), +# 50| cl::desc("Limit the number of loads analysed")); +# 51| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSelectionDAGInfo.cpp:22: constructor_uses_global_object: The constructor of global object "EnableMemtransferTPLoop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemtransferTPLoop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| #define DEBUG_TYPE "arm-selectiondag-info" +# 21| +# 22|-> cl::opt EnableMemtransferTPLoop( +# 23| "arm-memtransfer-tploop", cl::Hidden, +# 24| cl::desc("Control conversion of memcpy to " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:50: constructor_uses_global_object: The constructor of global object "UseFusedMulOps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseFusedMulOps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> UseFusedMulOps("arm-use-mulops", +# 51| cl::init(true), cl::Hidden); +# 52| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:59: constructor_uses_global_object: The constructor of global object "IT" itself makes use of global object "llvm::cl::AllSubCommands" defined in another compilation unit. The order of construction is unspecified, so "IT" might be created before "llvm::cl::AllSubCommands" is available. +# 57| +# 58| static cl::opt +# 59|-> IT(cl::desc("IT block support"), cl::Hidden, cl::init(DefaultIT), +# 60| cl::values(clEnumValN(DefaultIT, "arm-default-it", +# 61| "Generate any type of IT block"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:68: constructor_uses_global_object: The constructor of global object "ForceFastISel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceFastISel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| /// currently supported (for testing only). +# 67| static cl::opt +# 68|-> ForceFastISel("arm-force-fast-isel", +# 69| cl::init(false), cl::Hidden); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:71: constructor_uses_global_object: The constructor of global object "EnableSubRegLiveness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSubRegLiveness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::init(false), cl::Hidden); +# 70| +# 71|-> static cl::opt EnableSubRegLiveness("arm-enable-subreg-liveness", +# 72| cl::init(false), cl::Hidden); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:62: constructor_uses_global_object: The constructor of global object "DisableA15SDOptimization" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableA15SDOptimization" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> DisableA15SDOptimization("disable-a15-sd-optimization", cl::Hidden, +# 63| cl::desc("Inhibit optimization of S->D register accesses on A15"), +# 64| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:67: constructor_uses_global_object: The constructor of global object "EnableAtomicTidy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAtomicTidy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl::opt +# 67|-> EnableAtomicTidy("arm-atomic-cfg-tidy", cl::Hidden, +# 68| cl::desc("Run SimplifyCFG after expanding atomic operations" +# 69| " to make use of cmpxchg flow-based information"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:73: constructor_uses_global_object: The constructor of global object "EnableARMLoadStoreOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableARMLoadStoreOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| static cl::opt +# 73|-> EnableARMLoadStoreOpt("arm-load-store-opt", cl::Hidden, +# 74| cl::desc("Enable ARM load/store optimization pass"), +# 75| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:79: constructor_uses_global_object: The constructor of global object "EnableGlobalMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| // FIXME: Unify control over GlobalMerge. +# 78| static cl::opt +# 79|-> EnableGlobalMerge("arm-global-merge", cl::Hidden, +# 80| cl::desc("Enable the global merge pass")); +# 81| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetTransformInfo.cpp:47: constructor_uses_global_object: The constructor of global object "EnableMaskedLoadStores" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMaskedLoadStores" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| #define DEBUG_TYPE "armtti" +# 46| +# 47|-> static cl::opt EnableMaskedLoadStores( +# 48| "enable-arm-maskedldst", cl::Hidden, cl::init(true), +# 49| cl::desc("Enable the generation of masked loads and stores")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetTransformInfo.cpp:51: constructor_uses_global_object: The constructor of global object "DisableLowOverheadLoops" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLowOverheadLoops" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| cl::desc("Enable the generation of masked loads and stores")); +# 50| +# 51|-> static cl::opt DisableLowOverheadLoops( +# 52| "disable-arm-loloops", cl::Hidden, cl::init(false), +# 53| cl::desc("Disable the generation of low-overhead loops")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetTransformInfo.cpp:56: constructor_uses_global_object: The constructor of global object "AllowWLSLoops" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowWLSLoops" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| static cl::opt +# 56|-> AllowWLSLoops("allow-arm-wlsloops", cl::Hidden, cl::init(true), +# 57| cl::desc("Enable the generation of WLS loops")); +# 58| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:85: constructor_uses_global_object: The constructor of global object "::ImplicitItMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ImplicitItMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| enum class ImplicitItModeTy { Always, Never, ARMOnly, ThumbOnly }; +# 84| +# 85|-> static cl::opt ImplicitItMode( +# 86| "arm-implicit-it", cl::init(ImplicitItModeTy::ARMOnly), +# 87| cl::desc("Allow conditional instructions outdside of an IT block"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:97: constructor_uses_global_object: The constructor of global object "::AddBuildAttributes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::AddBuildAttributes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| "Warn in ARM, emit implicit ITs in Thumb"))); +# 96| +# 97|-> static cl::opt AddBuildAttributes("arm-add-build-attributes", +# 98| cl::init(false)); +# 99| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:191: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:194: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:199: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 984 bytes. +# 197| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 198| "Invalid kind!"); +# 199|-> return (Endian == support::little ? InfosLE +# 200| : InfosBE)[Kind - FirstTargetFixupKind]; +# 201| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:1091: var_decl: Declaring variable "FullSizeBytes" without initializer. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:1102: uninit_use: Using uninitialized value "FullSizeBytes". +# 1100| // bitfields above. +# 1101| for (unsigned i = 0; i != NumBytes; ++i) { +# 1102|-> unsigned Idx = Endian == support::little ? i : (FullSizeBytes - 1 - i); +# 1103| Data[Offset + Idx] |= uint8_t((Value >> (i * 8)) & 0xff); +# 1104| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MLxExpansionPass.cpp:32: constructor_uses_global_object: The constructor of global object "ForceExapnd" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceExapnd" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| +# 31| static cl::opt +# 32|-> ForceExapnd("expand-all-fp-mlx", cl::init(false), cl::Hidden); +# 33| static cl::opt +# 34| ExpandLimit("expand-limit", cl::init(~0U), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MLxExpansionPass.cpp:34: constructor_uses_global_object: The constructor of global object "ExpandLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| ForceExapnd("expand-all-fp-mlx", cl::init(false), cl::Hidden); +# 33| static cl::opt +# 34|-> ExpandLimit("expand-limit", cl::init(~0U), cl::Hidden); +# 35| +# 36| STATISTIC(NumExpand, "Number of fp MLA / MLS instructions expanded"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVEGatherScatterLowering.cpp:50: constructor_uses_global_object: The constructor of global object "EnableMaskedGatherScatters" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMaskedGatherScatters" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| #define DEBUG_TYPE "arm-mve-gather-scatter-lowering" +# 49| +# 50|-> cl::opt EnableMaskedGatherScatters( +# 51| "enable-arm-maskedgatscat", cl::Hidden, cl::init(true), +# 52| cl::desc("Enable the generation of masked gathers and scatters")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVELaneInterleavingPass.cpp:79: constructor_uses_global_object: The constructor of global object "EnableInterleave" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableInterleave" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| #define DEBUG_TYPE "mve-laneinterleave" +# 78| +# 79|-> cl::opt EnableInterleave( +# 80| "enable-mve-interleave", cl::Hidden, cl::init(true), +# 81| cl::desc("Enable interleave MVE vector operation lowering")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:39: constructor_uses_global_object: The constructor of global object "MergeEndDec" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MergeEndDec" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> MergeEndDec("arm-enable-merge-loopenddec", cl::Hidden, +# 40| cl::desc("Enable merging Loop End and Dec instructions."), +# 41| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:44: constructor_uses_global_object: The constructor of global object "SetLRPredicate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SetLRPredicate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| static cl::opt +# 44|-> SetLRPredicate("arm-set-lr-predicate", cl::Hidden, +# 45| cl::desc("Enable setting lr as a predicate in tail predication regions."), +# 46| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVETailPredication.cpp:60: constructor_uses_global_object: The constructor of global object "EnableTailPredication" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTailPredication" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| #define DESC "Transform predicated vector loops to use MVE tail predication" +# 59| +# 60|-> cl::opt EnableTailPredication( +# 61| "tail-predication", cl::desc("MVE tail-predication pass options"), +# 62| cl::init(TailPredication::Enabled), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:39: constructor_uses_global_object: The constructor of global object "OldT2IfCvt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OldT2IfCvt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> OldT2IfCvt("old-thumb2-ifcvt", cl::Hidden, +# 40| cl::desc("Use old-style Thumb2 if-conversion heuristics"), +# 41| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:44: constructor_uses_global_object: The constructor of global object "PreferNoCSEL" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreferNoCSEL" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| static cl::opt +# 44|-> PreferNoCSEL("prefer-no-csel", cl::Hidden, +# 45| cl::desc("Prefer predicated Move to CSEL"), +# 46| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2SizeReduction.cpp:54: constructor_uses_global_object: The constructor of global object "ReduceLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReduceLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| STATISTIC(NumLdSts, "Number of 32-bit load / store reduced to 16-bit ones"); +# 53| +# 54|-> static cl::opt ReduceLimit("t2-reduce-limit", +# 55| cl::init(-1), cl::Hidden); +# 56| static cl::opt ReduceLimit2Addr("t2-reduce-limit2", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2SizeReduction.cpp:56: constructor_uses_global_object: The constructor of global object "ReduceLimit2Addr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReduceLimit2Addr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| static cl::opt ReduceLimit("t2-reduce-limit", +# 55| cl::init(-1), cl::Hidden); +# 56|-> static cl::opt ReduceLimit2Addr("t2-reduce-limit2", +# 57| cl::init(-1), cl::Hidden); +# 58| static cl::opt ReduceLimitLdSt("t2-reduce-limit3", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2SizeReduction.cpp:58: constructor_uses_global_object: The constructor of global object "ReduceLimitLdSt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReduceLimitLdSt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| static cl::opt ReduceLimit2Addr("t2-reduce-limit2", +# 57| cl::init(-1), cl::Hidden); +# 58|-> static cl::opt ReduceLimitLdSt("t2-reduce-limit3", +# 59| cl::init(-1), cl::Hidden); +# 60| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFAdjustOpt.cpp:33: constructor_uses_global_object: The constructor of global object "DisableBPFserializeICMP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBPFserializeICMP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| +# 32| static cl::opt +# 33|-> DisableBPFserializeICMP("bpf-disable-serialize-icmp", cl::Hidden, +# 34| cl::desc("BPF: Disable Serializing ICMP insns."), +# 35| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFAdjustOpt.cpp:37: constructor_uses_global_object: The constructor of global object "DisableBPFavoidSpeculation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBPFavoidSpeculation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| cl::init(false)); +# 36| +# 37|-> static cl::opt DisableBPFavoidSpeculation( +# 38| "bpf-disable-avoid-speculation", cl::Hidden, +# 39| cl::desc("BPF: Disable Avoiding Speculative Code Motion."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFISelLowering.cpp:34: constructor_uses_global_object: The constructor of global object "BPFExpandMemcpyInOrder" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BPFExpandMemcpyInOrder" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| #define DEBUG_TYPE "bpf-lower" +# 33| +# 34|-> static cl::opt BPFExpandMemcpyInOrder("bpf-expand-memcpy-in-order", +# 35| cl::Hidden, cl::init(false), +# 36| cl::desc("Expand memcpy into load/store pairs in order")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFRegisterInfo.cpp:31: constructor_uses_global_object: The constructor of global object "BPFStackSizeOption" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BPFStackSizeOption" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt +# 31|-> BPFStackSizeOption("bpf-stack-size", +# 32| cl::desc("Specify the BPF stack size limit"), +# 33| cl::init(512)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFTargetMachine.cpp:33: constructor_uses_global_object: The constructor of global object "DisableMIPeephole" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMIPeephole" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| +# 32| static cl:: +# 33|-> opt DisableMIPeephole("disable-bpf-peephole", cl::Hidden, +# 34| cl::desc("Disable machine peepholes for BPF")); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp:22: constructor_uses_global_object: The constructor of global object "EmitJalrReloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmitJalrReloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| // and libLLVMMipsCodeGen +# 21| cl::opt +# 22|-> EmitJalrReloc("mips-jalr-reloc", cl::Hidden, +# 23| cl::desc("MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"), +# 24| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp:34: constructor_uses_global_object: The constructor of global object "::RoundSectionSizes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::RoundSectionSizes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| +# 33| namespace { +# 34|-> static cl::opt RoundSectionSizes( +# 35| "mips-round-section-sizes", cl::init(false), +# 36| cl::desc("Round section sizes up to the section alignment"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/Mips16ISelLowering.cpp:26: constructor_uses_global_object: The constructor of global object "DontExpandCondPseudos16" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DontExpandCondPseudos16" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| #define DEBUG_TYPE "mips-lower" +# 25| +# 26|-> static cl::opt DontExpandCondPseudos16( +# 27| "mips16-dont-expand-cond-pseudo", +# 28| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsBranchExpansion.cpp:114: constructor_uses_global_object: The constructor of global object "SkipLongBranch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SkipLongBranch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| +# 113| static cl::opt +# 114|-> SkipLongBranch("skip-mips-long-branch", cl::init(false), +# 115| cl::desc("MIPS: Skip branch expansion pass."), cl::Hidden); +# 116| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsBranchExpansion.cpp:118: constructor_uses_global_object: The constructor of global object "ForceLongBranch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceLongBranch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| +# 117| static cl::opt +# 118|-> ForceLongBranch("force-mips-long-branch", cl::init(false), +# 119| cl::desc("MIPS: Expand all branches to long format."), +# 120| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsConstantIslandPass.cpp:69: constructor_uses_global_object: The constructor of global object "AlignConstantIslands" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignConstantIslands" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| // FIXME: This option should be removed once it has received sufficient testing. +# 68| static cl::opt +# 69|-> AlignConstantIslands("mips-align-constant-islands", cl::Hidden, cl::init(true), +# 70| cl::desc("Align constant islands in code")); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsConstantIslandPass.cpp:74: constructor_uses_global_object: The constructor of global object "ConstantIslandsSmallOffset" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConstantIslandsSmallOffset" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| // Rather than do make check tests with huge amounts of code, we force +# 73| // the test to use this amount. +# 74|-> static cl::opt ConstantIslandsSmallOffset( +# 75| "mips-constant-islands-small-offset", +# 76| cl::init(0), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsConstantIslandPass.cpp:82: constructor_uses_global_object: The constructor of global object "NoLoadRelaxation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoLoadRelaxation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| // For testing purposes we tell it to not use relaxed load forms so that it +# 81| // will split blocks. +# 82|-> static cl::opt NoLoadRelaxation( +# 83| "mips-constant-islands-no-load-relaxation", +# 84| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:59: constructor_uses_global_object: The constructor of global object "DisableDelaySlotFiller" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDelaySlotFiller" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| " are not NOP."); +# 58| +# 59|-> static cl::opt DisableDelaySlotFiller( +# 60| "disable-mips-delay-filler", +# 61| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:65: constructor_uses_global_object: The constructor of global object "DisableForwardSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableForwardSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::Hidden); +# 64| +# 65|-> static cl::opt DisableForwardSearch( +# 66| "disable-mips-df-forward-search", +# 67| cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:71: constructor_uses_global_object: The constructor of global object "DisableSuccBBSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSuccBBSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::Hidden); +# 70| +# 71|-> static cl::opt DisableSuccBBSearch( +# 72| "disable-mips-df-succbb-search", +# 73| cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:77: constructor_uses_global_object: The constructor of global object "DisableBackwardSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBackwardSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::Hidden); +# 76| +# 77|-> static cl::opt DisableBackwardSearch( +# 78| "disable-mips-df-backward-search", +# 79| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:93: constructor_uses_global_object: The constructor of global object "MipsCompactBranchPolicy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MipsCompactBranchPolicy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| }; +# 92| +# 93|-> static cl::opt MipsCompactBranchPolicy( +# 94| "mips-compact-branches", cl::Optional, cl::init(CB_Optimal), +# 95| cl::desc("MIPS Specific: Compact branch policy."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsISelLowering.cpp:86: constructor_uses_global_object: The constructor of global object "NoZeroDivCheck" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoZeroDivCheck" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> NoZeroDivCheck("mno-check-zero-division", cl::Hidden, +# 87| cl::desc("MIPS: Don't trap on integer division by zero."), +# 88| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsMachineFunction.cpp:22: constructor_uses_global_object: The constructor of global object "FixGlobalBaseReg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixGlobalBaseReg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| +# 21| static cl::opt +# 22|-> FixGlobalBaseReg("mips-fix-global-base-reg", cl::Hidden, cl::init(true), +# 23| cl::desc("Always use $gp as the global base register.")); +# 24| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsOptimizePICCall.cpp:46: constructor_uses_global_object: The constructor of global object "LoadTargetFromGOT" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoadTargetFromGOT" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| #define DEBUG_TYPE "optimize-mips-pic-call" +# 45| +# 46|-> static cl::opt LoadTargetFromGOT("mips-load-target-from-got", +# 47| cl::init(true), +# 48| cl::desc("Load target address from GOT"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsOptimizePICCall.cpp:51: constructor_uses_global_object: The constructor of global object "EraseGPOpnd" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EraseGPOpnd" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| cl::Hidden); +# 50| +# 51|-> static cl::opt EraseGPOpnd("mips-erase-gp-opnd", +# 52| cl::init(true), cl::desc("Erase GP Operand"), +# 53| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsOs16.cpp:25: constructor_uses_global_object: The constructor of global object "Mips32FunctionMask[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips32FunctionMask[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| #define DEBUG_TYPE "mips-os16" +# 24| +# 25|-> static cl::opt Mips32FunctionMask( +# 26| "mips32-function-mask", +# 27| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSEISelLowering.cpp:56: constructor_uses_global_object: The constructor of global object "UseMipsTailCalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseMipsTailCalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| static cl::opt +# 56|-> UseMipsTailCalls("mips-tail-calls", cl::Hidden, +# 57| cl::desc("MIPS: permit tail calls."), cl::init(false)); +# 58| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSEISelLowering.cpp:59: constructor_uses_global_object: The constructor of global object "NoDPLoadStore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoDPLoadStore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| cl::desc("MIPS: permit tail calls."), cl::init(false)); +# 58| +# 59|-> static cl::opt NoDPLoadStore("mno-ldc1-sdc1", cl::init(false), +# 60| cl::desc("Expand double precision loads and " +# 61| "stores to their single precision " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:39: constructor_uses_global_object: The constructor of global object "Mixed16_32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mixed16_32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| // +# 38| static cl::opt +# 39|-> Mixed16_32("mips-mixed-16-32", cl::init(false), +# 40| cl::desc("Allow for a mixture of Mips16 " +# 41| "and Mips32 code in a single output file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:44: constructor_uses_global_object: The constructor of global object "Mips_Os16" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips_Os16" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| cl::Hidden); +# 43| +# 44|-> static cl::opt Mips_Os16("mips-os16", cl::init(false), +# 45| cl::desc("Compile all functions that don't use " +# 46| "floating point as Mips 16"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:49: constructor_uses_global_object: The constructor of global object "Mips16HardFloat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips16HardFloat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::Hidden); +# 48| +# 49|-> static cl::opt Mips16HardFloat("mips16-hard-float", cl::NotHidden, +# 50| cl::desc("Enable mips16 hard float."), +# 51| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:54: constructor_uses_global_object: The constructor of global object "Mips16ConstantIslands" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips16ConstantIslands" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::opt +# 54|-> Mips16ConstantIslands("mips16-constant-islands", cl::NotHidden, +# 55| cl::desc("Enable mips16 constant islands."), +# 56| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:59: constructor_uses_global_object: The constructor of global object "GPOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GPOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| +# 58| static cl::opt +# 59|-> GPOpt("mgpopt", cl::Hidden, +# 60| cl::desc("Enable gp-relative addressing of mips small data items")); +# 61| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetMachine.cpp:52: constructor_uses_global_object: The constructor of global object "EnableMulMulFix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMulMulFix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| +# 51| static cl::opt +# 52|-> EnableMulMulFix("mfix4300", cl::init(false), +# 53| cl::desc("Enable the VR4300 mulmul bug fix."), cl::Hidden); +# 54| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:24: constructor_uses_global_object: The constructor of global object "SSThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SSThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| +# 23| static cl::opt +# 24|-> SSThreshold("mips-ssection-threshold", cl::Hidden, +# 25| cl::desc("Small data and bss section threshold size (default=8)"), +# 26| cl::init(8)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:29: constructor_uses_global_object: The constructor of global object "LocalSData" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LocalSData" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| +# 28| static cl::opt +# 29|-> LocalSData("mlocal-sdata", cl::Hidden, +# 30| cl::desc("MIPS: Use gp_rel for object-local data."), +# 31| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:34: constructor_uses_global_object: The constructor of global object "ExternSData" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExternSData" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| +# 33| static cl::opt +# 34|-> ExternSData("mextern-sdata", cl::Hidden, +# 35| cl::desc("MIPS: Use gp_rel for data that is not defined by the " +# 36| "current object."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:40: constructor_uses_global_object: The constructor of global object "EmbeddedData" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmbeddedData" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| +# 39| static cl::opt +# 40|-> EmbeddedData("membedded-data", cl::Hidden, +# 41| cl::desc("MIPS: Try to allocate variables in the following" +# 42| " sections if possible: .rodata, .sdata, .data ."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:96: constructor_uses_global_object: The constructor of global object "LowerCtorDtor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LowerCtorDtor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| +# 95| static cl::opt +# 96|-> LowerCtorDtor("nvptx-lower-global-ctor-dtor", +# 97| cl::desc("Lower GPU ctor / dtors to globals on the device."), +# 98| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXCtorDtorLowering.cpp:31: constructor_uses_global_object: The constructor of global object "GlobalStr[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalStr[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt +# 31|-> GlobalStr("nvptx-lower-global-ctor-dtor-id", +# 32| cl::desc("Override unique ID of ctor/dtor globals."), +# 33| cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:71: constructor_uses_global_object: The constructor of global object "sched4reg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "sched4reg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| static std::atomic GlobalUniqueCallSite; +# 70| +# 71|-> static cl::opt sched4reg( +# 72| "nvptx-sched4reg", +# 73| cl::desc("NVPTX Specific: schedule for register pressue"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:75: constructor_uses_global_object: The constructor of global object "FMAContractLevelOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FMAContractLevelOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| cl::desc("NVPTX Specific: schedule for register pressue"), cl::init(false)); +# 74| +# 75|-> static cl::opt FMAContractLevelOpt( +# 76| "nvptx-fma-level", cl::Hidden, +# 77| cl::desc("NVPTX Specific: FMA contraction (0: don't do it" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:81: constructor_uses_global_object: The constructor of global object "UsePrecDivF32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UsePrecDivF32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| cl::init(2)); +# 80| +# 81|-> static cl::opt UsePrecDivF32( +# 82| "nvptx-prec-divf32", cl::Hidden, +# 83| cl::desc("NVPTX Specifies: 0 use div.approx, 1 use div.full, 2 use" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:87: constructor_uses_global_object: The constructor of global object "UsePrecSqrtF32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UsePrecSqrtF32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| cl::init(2)); +# 86| +# 87|-> static cl::opt UsePrecSqrtF32( +# 88| "nvptx-prec-sqrtf32", cl::Hidden, +# 89| cl::desc("NVPTX Specific: 0 use sqrt.approx, 1 use sqrt.rn."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:92: constructor_uses_global_object: The constructor of global object "ForceMinByValParamAlign" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceMinByValParamAlign" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| cl::init(true)); +# 91| +# 92|-> static cl::opt ForceMinByValParamAlign( +# 93| "nvptx-force-min-byval-param-align", cl::Hidden, +# 94| cl::desc("NVPTX Specific: force 4-byte minimal alignment for byval" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXSubtarget.cpp:26: constructor_uses_global_object: The constructor of global object "NoF16Math" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoF16Math" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> NoF16Math("nvptx-no-f16-math", cl::Hidden, +# 27| cl::desc("NVPTX Specific: Disable generation of f16 math ops."), +# 28| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:48: constructor_uses_global_object: The constructor of global object "DisableLoadStoreVectorizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLoadStoreVectorizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| // encounter (or suspect) a bug. +# 47| static cl::opt +# 48|-> DisableLoadStoreVectorizer("disable-nvptx-load-store-vectorizer", +# 49| cl::desc("Disable load/store vectorizer"), +# 50| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:53: constructor_uses_global_object: The constructor of global object "DisableRequireStructuredCFG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableRequireStructuredCFG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| // TODO: Remove this flag when we are confident with no regressions. +# 53|-> static cl::opt DisableRequireStructuredCFG( +# 54| "disable-nvptx-require-structured-cfg", +# 55| cl::desc("Transitional flag to turn off NVPTX's requirement on preserving " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:60: constructor_uses_global_object: The constructor of global object "UseShortPointersOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseShortPointersOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(false), cl::Hidden); +# 59| +# 60|-> static cl::opt UseShortPointersOpt( +# 61| "nvptx-short-ptr", +# 62| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:69: constructor_uses_global_object: The constructor of global object "ExitOnUnreachable" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExitOnUnreachable" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| // makes it into the LLVM-17 release. +# 68| static cl::opt +# 69|-> ExitOnUnreachable("nvptx-exit-on-unreachable", +# 70| cl::desc("Lower 'unreachable' as 'exit' instruction."), +# 71| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVVMIntrRange.cpp:30: constructor_uses_global_object: The constructor of global object "NVVMIntrRangeSM" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NVVMIntrRangeSM" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| +# 29| // Add !range metadata based on limits of given SM variant. +# 30|-> static cl::opt NVVMIntrRangeSM("nvvm-intr-range-sm", cl::init(20), +# 31| cl::Hidden, cl::desc("SM variant")); +# 32| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVVMReflect.cpp:70: constructor_uses_global_object: The constructor of global object "NVVMReflectEnabled" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NVVMReflectEnabled" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| +# 69| static cl::opt +# 70|-> NVVMReflectEnabled("nvvm-reflect-enable", cl::init(true), cl::Hidden, +# 71| cl::desc("NVVM reflection, enabled by default")); +# 72| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:127: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:130: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:135: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 264 bytes. +# 133| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 134| "Invalid kind!"); +# 135|-> return (Endian == support::little +# 136| ? InfosLE +# 137| : InfosBE)[Kind - FirstTargetFixupKind]; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp:33: constructor_uses_global_object: The constructor of global object "FullRegNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FullRegNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| // to the verbose-asm setting. +# 32| static cl::opt +# 33|-> FullRegNames("ppc-asm-full-reg-names", cl::Hidden, cl::init(false), +# 34| cl::desc("Use full register names when printing assembly")); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp:38: constructor_uses_global_object: The constructor of global object "ShowVSRNumsAsVR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowVSRNumsAsVR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| // Useful for testing purposes. Prints vs{31-63} as v{0-31} respectively. +# 37| static cl::opt +# 38|-> ShowVSRNumsAsVR("ppc-vsr-nums-as-vr", cl::Hidden, cl::init(false), +# 39| cl::desc("Prints full register names with vs{31-63} as v{0-31}")); +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp:43: constructor_uses_global_object: The constructor of global object "FullRegNamesWithPercent" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FullRegNamesWithPercent" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| // Prints full register names with percent symbol. +# 42| static cl::opt +# 43|-> FullRegNamesWithPercent("ppc-reg-with-percent-prefix", cl::Hidden, +# 44| cl::init(false), +# 45| cl::desc("Prints full register names with percent")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCAsmPrinter.cpp:96: constructor_uses_global_object: The constructor of global object "EnableSSPCanaryBitInTB" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSSPCanaryBitInTB" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| STATISTIC(NumTOCEHBlock, "Number of EH Block TOC Entries."); +# 95| +# 96|-> static cl::opt EnableSSPCanaryBitInTB( +# 97| "aix-ssp-tb-bit", cl::init(false), +# 98| cl::desc("Enable Passing SSP Canary info in Trackback on AIX"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCExpandISEL.cpp:40: constructor_uses_global_object: The constructor of global object "GenerateISEL" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateISEL" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| // ISEL instruction, else expand it. +# 39| static cl::opt +# 40|-> GenerateISEL("ppc-gen-isel", +# 41| cl::desc("Enable generating the ISEL instruction."), +# 42| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCFrameLowering.cpp:39: constructor_uses_global_object: The constructor of global object "EnablePEVectorSpills" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePEVectorSpills" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> EnablePEVectorSpills("ppc-enable-pe-vector-spills", +# 40| cl::desc("Enable spills in prologue to vector registers."), +# 41| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:91: constructor_uses_global_object: The constructor of global object "ANDIGlueBug" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ANDIGlueBug" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| +# 90| // FIXME: Remove this once the bug has been fixed! +# 91|-> cl::opt ANDIGlueBug("expose-ppc-andi-glue-bug", +# 92| cl::desc("expose the ANDI glue bug on PPC"), cl::Hidden); +# 93| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:95: constructor_uses_global_object: The constructor of global object "UseBitPermRewriter" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseBitPermRewriter" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> UseBitPermRewriter("ppc-use-bit-perm-rewriter", cl::init(true), +# 96| cl::desc("use aggressive ppc isel for bit permutations"), +# 97| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:98: constructor_uses_global_object: The constructor of global object "BPermRewriterNoMasking" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BPermRewriterNoMasking" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| cl::desc("use aggressive ppc isel for bit permutations"), +# 97| cl::Hidden); +# 98|-> static cl::opt BPermRewriterNoMasking( +# 99| "ppc-bit-perm-rewriter-stress-rotates", +# 100| cl::desc("stress rotate selection in aggressive ppc isel for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:104: constructor_uses_global_object: The constructor of global object "EnableBranchHint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableBranchHint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| cl::Hidden); +# 103| +# 104|-> static cl::opt EnableBranchHint( +# 105| "ppc-use-branch-hint", cl::init(true), +# 106| cl::desc("Enable static hinting of branches on ppc"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:109: constructor_uses_global_object: The constructor of global object "EnableTLSOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTLSOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 107| cl::Hidden); +# 108| +# 109|-> static cl::opt EnableTLSOpt( +# 110| "ppc-tls-opt", cl::init(true), +# 111| cl::desc("Enable tls optimization peephole"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:118: constructor_uses_global_object: The constructor of global object "CmpInGPR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CmpInGPR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| ICGPR_SextI32, ICGPR_ZextI64, ICGPR_SextI64 }; +# 117| +# 118|-> static cl::opt CmpInGPR( +# 119| "ppc-gpr-icmps", cl::Hidden, cl::init(ICGPR_All), +# 120| cl::desc("Specify the types of comparisons to emit GPR-only code for."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:107: constructor_uses_global_object: The constructor of global object "DisablePPCPreinc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePPCPreinc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| #define DEBUG_TYPE "ppc-lowering" +# 106| +# 107|-> static cl::opt DisablePPCPreinc("disable-ppc-preinc", +# 108| cl::desc("disable preincrement load/store generation on PPC"), cl::Hidden); +# 109| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:110: constructor_uses_global_object: The constructor of global object "DisableILPPref" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableILPPref" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| cl::desc("disable preincrement load/store generation on PPC"), cl::Hidden); +# 109| +# 110|-> static cl::opt DisableILPPref("disable-ppc-ilp-pref", +# 111| cl::desc("disable setting the node scheduling preference to ILP on PPC"), cl::Hidden); +# 112| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:113: constructor_uses_global_object: The constructor of global object "DisablePPCUnaligned" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePPCUnaligned" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::desc("disable setting the node scheduling preference to ILP on PPC"), cl::Hidden); +# 112| +# 113|-> static cl::opt DisablePPCUnaligned("disable-ppc-unaligned", +# 114| cl::desc("disable unaligned load/store generation on PPC"), cl::Hidden); +# 115| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:116: constructor_uses_global_object: The constructor of global object "DisableSCO" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSCO" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| cl::desc("disable unaligned load/store generation on PPC"), cl::Hidden); +# 115| +# 116|-> static cl::opt DisableSCO("disable-ppc-sco", +# 117| cl::desc("disable sibling call optimization on ppc"), cl::Hidden); +# 118| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:119: constructor_uses_global_object: The constructor of global object "DisableInnermostLoopAlign32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableInnermostLoopAlign32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| cl::desc("disable sibling call optimization on ppc"), cl::Hidden); +# 118| +# 119|-> static cl::opt DisableInnermostLoopAlign32("disable-ppc-innermost-loop-align32", +# 120| cl::desc("don't always align innermost loop to 32 bytes on ppc"), cl::Hidden); +# 121| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:122: constructor_uses_global_object: The constructor of global object "UseAbsoluteJumpTables" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAbsoluteJumpTables" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 120| cl::desc("don't always align innermost loop to 32 bytes on ppc"), cl::Hidden); +# 121| +# 122|-> static cl::opt UseAbsoluteJumpTables("ppc-use-absolute-jumptables", +# 123| cl::desc("use absolute jump tables on ppc"), cl::Hidden); +# 124| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:126: constructor_uses_global_object: The constructor of global object "DisablePerfectShuffle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePerfectShuffle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| +# 125| static cl::opt +# 126|-> DisablePerfectShuffle("ppc-disable-perfect-shuffle", +# 127| cl::desc("disable vector permute decomposition"), +# 128| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:130: constructor_uses_global_object: The constructor of global object "DisableAutoPairedVecSt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAutoPairedVecSt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| cl::init(true), cl::Hidden); +# 129| +# 130|-> cl::opt DisableAutoPairedVecSt( +# 131| "disable-auto-paired-vec-st", +# 132| cl::desc("disable automatically generated 32byte paired vector stores"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:67: constructor_uses_global_object: The constructor of global object "DisableCTRLoopAnal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCTRLoopAnal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl:: +# 67|-> opt DisableCTRLoopAnal("disable-ppc-ctrloop-analysis", cl::Hidden, +# 68| cl::desc("Disable analysis for CTR loops")); +# 69| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:70: constructor_uses_global_object: The constructor of global object "DisableCmpOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCmpOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| cl::desc("Disable analysis for CTR loops")); +# 69| +# 70|-> static cl::opt DisableCmpOpt("disable-ppc-cmp-opt", +# 71| cl::desc("Disable compare instruction optimization"), cl::Hidden); +# 72| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:73: constructor_uses_global_object: The constructor of global object "VSXSelfCopyCrash" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VSXSelfCopyCrash" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::desc("Disable compare instruction optimization"), cl::Hidden); +# 72| +# 73|-> static cl::opt VSXSelfCopyCrash("crash-on-ppc-vsx-self-copy", +# 74| cl::desc("Causes the backend to crash instead of generating a nop VSX copy"), +# 75| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:78: constructor_uses_global_object: The constructor of global object "UseOldLatencyCalc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseOldLatencyCalc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| +# 77| static cl::opt +# 78|-> UseOldLatencyCalc("ppc-old-latency-calc", cl::Hidden, +# 79| cl::desc("Use the old (incorrect) instruction latency calculation")); +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:82: constructor_uses_global_object: The constructor of global object "FMARPFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FMARPFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| +# 81| static cl::opt +# 82|-> FMARPFactor("ppc-fma-rp-factor", cl::Hidden, cl::init(1.5), +# 83| cl::desc("register pressure factor for the transformations.")); +# 84| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:85: constructor_uses_global_object: The constructor of global object "EnableFMARegPressureReduction" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFMARegPressureReduction" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("register pressure factor for the transformations.")); +# 84| +# 85|-> static cl::opt EnableFMARegPressureReduction( +# 86| "ppc-fma-rp-reduction", cl::Hidden, cl::init(true), +# 87| cl::desc("enable register pressure reduce in machine combiner pass.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:120: constructor_uses_global_object: The constructor of global object "MaxVarsPrep" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxVarsPrep" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| +# 119| static cl::opt +# 120|-> MaxVarsPrep("ppc-formprep-max-vars", cl::Hidden, cl::init(24), +# 121| cl::desc("Potential common base number threshold per function " +# 122| "for PPC loop prep")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:124: constructor_uses_global_object: The constructor of global object "PreferUpdateForm" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreferUpdateForm" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| "for PPC loop prep")); +# 123| +# 124|-> static cl::opt PreferUpdateForm("ppc-formprep-prefer-update", +# 125| cl::init(true), cl::Hidden, +# 126| cl::desc("prefer update form when ds form is also a update form")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:128: constructor_uses_global_object: The constructor of global object "EnableUpdateFormForNonConstInc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableUpdateFormForNonConstInc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| cl::desc("prefer update form when ds form is also a update form")); +# 127| +# 128|-> static cl::opt EnableUpdateFormForNonConstInc( +# 129| "ppc-formprep-update-nonconst-inc", cl::init(false), cl::Hidden, +# 130| cl::desc("prepare update form when the load/store increment is a loop " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:133: error[too-many]: 3010 occurrences of constructor_uses_global_object exceeded the specified limit 1024 +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:133: note: 1986 occurrences of constructor_uses_global_object were discarded because of this + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:307: overflow: The expression "MemoryOperand + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:307: overflow_sink: "MemoryOperand + AddrSegmentReg", which might have overflowed, is passed to "Inst->getOperand(MemoryOperand + AddrSegmentReg)". +# 305| if (MemoryOperand >= 0) { +# 306| // Check for explicit segment override on memory operand. +# 307|-> SegmentReg = Inst.getOperand(MemoryOperand + X86::AddrSegmentReg).getReg(); +# 308| } +# 309| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:302: overflow: The expression "MemoryOperand" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:339: overflow: The expression "MemoryOperand + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:339: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:340: overflow_sink: "BaseRegNum", which might have underflowed, is passed to "Inst->getOperand(BaseRegNum)". +# 338| if (MemoryOperand >= 0) { +# 339| unsigned BaseRegNum = MemoryOperand + X86::AddrBaseReg; +# 340|-> unsigned BaseReg = Inst.getOperand(BaseRegNum).getReg(); +# 341| if (BaseReg == X86::ESP || BaseReg == X86::EBP) +# 342| return X86::SS_Encoding; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp:390: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp:390: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp:395: overflow_sink: "MemoryOperand", which might be negative, is passed to "llvm::X86_MC::needsAddressSizeOverride(MI, STI, MemoryOperand, TSFlags)". +# 393| +# 394| // Address-Size override prefix +# 395|-> if (Flags & X86::IP_HAS_AD_SIZE && +# 396| !X86_MC::needsAddressSizeOverride(*MI, STI, MemoryOperand, TSFlags)) { +# 397| if (STI.hasFeature(X86::Is16Bit) || STI.hasFeature(X86::Is64Bit)) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:796: overflow: The expression "MemoryOperand" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:797: overflow: The expression "MemoryOperand + AddrSegmentReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:797: overflow_sink: "MemoryOperand + AddrSegmentReg", which might have underflowed, is passed to "this->emitSegmentOverridePrefix(MemoryOperand + AddrSegmentReg, MI, CB)". +# 795| if (MemoryOperand != -1) { +# 796| MemoryOperand += CurOp; +# 797|-> emitSegmentOverridePrefix(MemoryOperand + X86::AddrSegmentReg, MI, CB); +# 798| } +# 799| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:796: overflow: The expression "MemoryOperand" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:808: overflow_sink: "MemoryOperand", which might be negative, is passed to "llvm::X86_MC::needsAddressSizeOverride(MI, STI, MemoryOperand, TSFlags)". +# 806| +# 807| // Emit the address size opcode prefix as needed. +# 808|-> if (X86_MC::needsAddressSizeOverride(MI, STI, MemoryOperand, TSFlags) || +# 809| Flags & X86::IP_HAS_AD_SIZE) +# 810| emitByte(0x67, CB); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:652: overflow: The expression "MemOpStart + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:652: overflow_sink: "MemOpStart + AddrSegmentReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrSegmentReg)". +# 650| MemOpStart += X86II::getOperandBias(MCID); +# 651| +# 652|-> const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 653| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:650: overflow: The expression "MemOpStart" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:653: overflow: The expression "MemOpStart + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:653: overflow_sink: "MemOpStart + AddrBaseReg", which might have underflowed, is passed to "Inst->getOperand(MemOpStart + AddrBaseReg)". +# 651| +# 652| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 653|-> const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:654: overflow: The expression "MemOpStart + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:654: overflow_sink: "MemOpStart + AddrIndexReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrIndexReg)". +# 652| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 653| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654|-> const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 656| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:655: overflow: The expression "MemOpStart + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:655: overflow_sink: "MemOpStart + AddrScaleAmt", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrScaleAmt)". +# 653| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655|-> const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 656| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 657| if (SegReg.getReg() != 0 || IndexReg.getReg() != 0 || ScaleAmt.getImm() != 1 || + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:656: overflow: The expression "MemOpStart + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:656: overflow_sink: "MemOpStart + AddrDisp", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrDisp)". +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 656|-> const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 657| if (SegReg.getReg() != 0 || IndexReg.getReg() != 0 || ScaleAmt.getImm() != 1 || +# 658| !Disp.isImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:678: overflow: The expression "MemOpStart + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:678: overflow_sink: "MemOpStart + AddrSegmentReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrSegmentReg)". +# 676| return std::nullopt; +# 677| MemOpStart += X86II::getOperandBias(MCID); +# 678|-> const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 679| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:677: overflow: The expression "MemOpStart" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:679: overflow: The expression "MemOpStart + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:679: overflow_sink: "MemOpStart + AddrBaseReg", which might have underflowed, is passed to "Inst->getOperand(MemOpStart + AddrBaseReg)". +# 677| MemOpStart += X86II::getOperandBias(MCID); +# 678| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 679|-> const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:680: overflow: The expression "MemOpStart + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:680: overflow_sink: "MemOpStart + AddrIndexReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrIndexReg)". +# 678| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 679| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680|-> const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 682| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:681: overflow: The expression "MemOpStart + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:681: overflow_sink: "MemOpStart + AddrScaleAmt", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrScaleAmt)". +# 679| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681|-> const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 682| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 683| // Must be a simple rip-relative address. + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:682: overflow: The expression "MemOpStart + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:682: overflow_sink: "MemOpStart + AddrDisp", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrDisp)". +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 682|-> const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 683| // Must be a simple rip-relative address. +# 684| if (BaseReg.getReg() != X86::RIP || SegReg.getReg() != 0 || + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:529: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:529: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:534: cast_underflow: An assign of a possibly negative number to an unsigned type, which might trigger an underflow. +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:537: overflow_sink: "MemOpIdx", which might be negative, is passed to "MI->getOperand(MemOpIdx)". +# 535| MemOpEnd = MemOpStart + X86::AddrNumOperands; +# 536| MemOpIdx < MemOpEnd; ++MemOpIdx) { +# 537|-> const MachineOperand &Op = MI.getOperand(MemOpIdx); +# 538| if (Op.isReg() && Op.getReg() == Reg) +# 539| return true; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: assign: Assigning: "AddrOffset" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:655: overflow: The expression "AddrOffset" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:656: overflow: The expression "AddrOffset + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:656: overflow_sink: "AddrOffset + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(AddrOffset + AddrBaseReg)". +# 654| if (AddrOffset >= 0) { +# 655| AddrOffset += X86II::getOperandBias(Desc); +# 656|-> MachineOperand &p = MI.getOperand(AddrOffset + X86::AddrBaseReg); +# 657| if (p.isReg() && p.getReg() != X86::ESP) { +# 658| seekLEAFixup(p, I, MBB); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: assign: Assigning: "AddrOffset" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:660: overflow: The expression "AddrOffset + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:660: overflow_sink: "AddrOffset + AddrIndexReg", which might have overflowed, is passed to "MI->getOperand(AddrOffset + AddrIndexReg)". +# 658| seekLEAFixup(p, I, MBB); +# 659| } +# 660|-> MachineOperand &q = MI.getOperand(AddrOffset + X86::AddrIndexReg); +# 661| if (q.isReg() && q.getReg() != X86::ESP) { +# 662| seekLEAFixup(q, I, MBB); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:53485: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), AI)". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:53485: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#53483| return CI->getValue() == AI; +#53484| if (const auto *CF = dyn_cast(CP->getConstVal())) +#53485|-> return CF->getValue() == APFloat(APFloat::IEEEsingle(), AI); +#53486| } +#53487| return false; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: overflow: The expression "Offset + Bias" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:205: overflow_sink: "MemOpOffset", which might have overflowed, is passed to "::IsMemOpCompatibleWithPrefetch(*Current, MemOpOffset)". +# 203| int MemOpOffset = Offset + Bias; +# 204| // FIXME(mtrofin): ORE message when the recommendation cannot be taken. +# 205|-> if (!IsMemOpCompatibleWithPrefetch(*Current, MemOpOffset)) +# 206| continue; +# 207| Prefetches.clear(); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: overflow: The expression "Offset + Bias" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrBaseReg", which might have underflowed, is passed to "Current->getOperand(MemOpOffset + AddrBaseReg)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrDisp", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrDisp)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrIndexReg", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrIndexReg)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrScaleAmt", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrScaleAmt)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrSegmentReg", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrSegmentReg)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3220: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3220: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3224: overflow: The expression "MemRefBegin + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3224: overflow_sink: "MemRefBegin + AddrDisp", which might be negative, is passed to "MI->getOperand(MemRefBegin + AddrDisp)". +# 3222| MemRefBegin += X86II::getOperandBias(Desc); +# 3223| +# 3224|-> const MachineOperand &MO = MI.getOperand(MemRefBegin + X86::AddrDisp); +# 3225| if (!MO.isJTI()) +# 3226| return -1; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3813: overflow: The expression "MemRefBegin" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3815: overflow: The expression "MemRefBegin + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3815: overflow_sink: "MemRefBegin + AddrBaseReg", which might have underflowed, is passed to "MemI->getOperand(MemRefBegin + AddrBaseReg)". +# 3813| MemRefBegin += X86II::getOperandBias(Desc); +# 3814| +# 3815|-> auto &BaseOp = MemI.getOperand(MemRefBegin + X86::AddrBaseReg); +# 3816| if (!BaseOp.isReg()) // Can be an MO_FrameIndex +# 3817| return std::nullopt; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3819: overflow: The expression "MemRefBegin + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3819: overflow_sink: "MemRefBegin + AddrDisp", which might have overflowed, is passed to "MemI->getOperand(MemRefBegin + AddrDisp)". +# 3817| return std::nullopt; +# 3818| +# 3819|-> const MachineOperand &DispMO = MemI.getOperand(MemRefBegin + X86::AddrDisp); +# 3820| // Displacement can be symbolic +# 3821| if (!DispMO.isImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3826: overflow: The expression "MemRefBegin + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3826: overflow_sink: "MemRefBegin + AddrIndexReg", which might have overflowed, is passed to "MemI->getOperand(MemRefBegin + AddrIndexReg)". +# 3824| ExtAddrMode AM; +# 3825| AM.BaseReg = BaseOp.getReg(); +# 3826|-> AM.ScaledReg = MemI.getOperand(MemRefBegin + X86::AddrIndexReg).getReg(); +# 3827| AM.Scale = MemI.getOperand(MemRefBegin + X86::AddrScaleAmt).getImm(); +# 3828| AM.Displacement = DispMO.getImm(); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3827: overflow: The expression "MemRefBegin + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3827: overflow_sink: "MemRefBegin + AddrScaleAmt", which might have overflowed, is passed to "MemI->getOperand(MemRefBegin + AddrScaleAmt)". +# 3825| AM.BaseReg = BaseOp.getReg(); +# 3826| AM.ScaledReg = MemI.getOperand(MemRefBegin + X86::AddrIndexReg).getReg(); +# 3827|-> AM.Scale = MemI.getOperand(MemRefBegin + X86::AddrScaleAmt).getImm(); +# 3828| AM.Displacement = DispMO.getImm(); +# 3829| return AM; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3910: overflow: The expression "MemRefBegin" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3912: overflow: The expression "MemRefBegin + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3912: overflow_sink: "MemRefBegin + AddrBaseReg", which might have underflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrBaseReg)". +# 3910| MemRefBegin += X86II::getOperandBias(Desc); +# 3911| +# 3912|-> const MachineOperand *BaseOp = +# 3913| &MemOp.getOperand(MemRefBegin + X86::AddrBaseReg); +# 3914| if (!BaseOp->isReg()) // Can be an MO_FrameIndex + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3917: overflow: The expression "MemRefBegin + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3917: overflow_sink: "MemRefBegin + AddrScaleAmt", which might have overflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrScaleAmt)". +# 3915| return false; +# 3916| +# 3917|-> if (MemOp.getOperand(MemRefBegin + X86::AddrScaleAmt).getImm() != 1) +# 3918| return false; +# 3919| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3920: overflow: The expression "MemRefBegin + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3920: overflow_sink: "MemRefBegin + AddrIndexReg", which might have overflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrIndexReg)". +# 3918| return false; +# 3919| +# 3920|-> if (MemOp.getOperand(MemRefBegin + X86::AddrIndexReg).getReg() != +# 3921| X86::NoRegister) +# 3922| return false; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3924: overflow: The expression "MemRefBegin + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3924: overflow_sink: "MemRefBegin + AddrDisp", which might have overflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrDisp)". +# 3922| return false; +# 3923| +# 3924|-> const MachineOperand &DispMO = MemOp.getOperand(MemRefBegin + X86::AddrDisp); +# 3925| +# 3926| // Displacement can be symbolic + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:776: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:776: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:783: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:785: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:785: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 783| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 784| +# 785|-> const MachineOperand &BaseMO = +# 786| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 787| const MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: assign: Assigning: "MemOpNo" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:454: overflow: The expression "MemOpNo" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:458: overflow: The expression "MemOpNo + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:458: overflow_sink: "MemOpNo + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemOpNo + AddrBaseReg)". +# 456| // If the address base of the use instruction is not the LEA def register - +# 457| // the LEA is not replaceable. +# 458|-> if (!isIdenticalOp(MI.getOperand(MemOpNo + X86::AddrBaseReg), MO)) +# 459| return false; +# 460| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: assign: Assigning: "MemOpNo" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:469: overflow: The expression "MemOpNo + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:469: overflow_sink: "MemOpNo + AddrDisp", which might have overflowed, is passed to "MI->getOperand(MemOpNo + AddrDisp)". +# 467| +# 468| // Check that the new address displacement will fit 4 bytes. +# 469|-> if (MI.getOperand(MemOpNo + X86::AddrDisp).isImm() && +# 470| !isInt<32>(MI.getOperand(MemOpNo + X86::AddrDisp).getImm() + +# 471| AddrDispShift)) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:511: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:511: assign: Assigning: "MemOpNo" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:517: overflow: The expression "MemOpNo" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:520: overflow_sink: "MemOpNo", which might have overflowed, is passed to "getMemOpKey(MI, MemOpNo)". +# 518| +# 519| // Do not call chooseBestLEA if there was no matching LEA +# 520|-> auto Insns = LEAs.find(getMemOpKey(MI, MemOpNo)); +# 521| if (Insns == LEAs.end()) +# 522| continue; +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:520: note: trimmed 1 message(s) with length over 512 + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:672: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:672: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:680: overflow: The expression "MemOpNo + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:680: overflow_sink: "MemOpNo + AddrDisp", which might have overflowed, is passed to "MI->getOperand(MemOpNo + AddrDisp)". +# 678| +# 679| // Update address disp. +# 680|-> MachineOperand &Op = MI.getOperand(MemOpNo + X86::AddrDisp); +# 681| if (Op.isImm()) +# 682| Op.setImm(Op.getImm() + AddrDispShift); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86RegisterBankInfo.cpp:309: var_decl: Declaring variable "AltMappings". +llvm-17.0.6.src/lib/Target/X86/X86RegisterBankInfo.cpp:311: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 309| InstructionMappings AltMappings; +# 310| AltMappings.push_back(&Mapping); +# 311|-> return AltMappings; +# 312| } +# 313| default: + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1326: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1326: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1334: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1336: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1336: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 1334| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 1335| +# 1336|-> MachineOperand &BaseMO = +# 1337| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1338| MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1408: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1410: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1410: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 1408| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 1409| +# 1410|-> MachineOperand &BaseMO = +# 1411| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1412| MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1807: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1807: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1810: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1812: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1812: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "UseMI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 1810| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 1811| +# 1812|-> MachineOperand &BaseMO = +# 1813| UseMI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1814| MachineOperand &IndexMO = + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroSplit.cpp:689: var_decl: Declaring variable "Intrinsics". +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroSplit.cpp:693: uninit_use: Using uninitialized value "Intrinsics". Field "Intrinsics.InlineElts" is uninitialized. +# 691| if (auto *DVI = dyn_cast(&I)) +# 692| Intrinsics.push_back(DVI); +# 693|-> return Intrinsics; +# 694| } +# 695| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Transforms/IPO/ForceFunctionAttrs.cpp:43: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(KV.second)". The value of "Kind" is now between 0 and 87 (inclusive). +llvm-17.0.6.src/lib/Transforms/IPO/ForceFunctionAttrs.cpp:44: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 87 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Transforms/IPO/ForceFunctionAttrs.cpp:44: overrun-call: Overrunning callee's array of size 84 by passing argument "Kind" (which evaluates to 87) in call to "canUseAsFnAttr". +# 42| return Kind; +# 43| Kind = Attribute::getAttrKindFromName(KV.second); +# 44|-> if (Kind == Attribute::None || !Attribute::canUseAsFnAttr(Kind)) { +# 45| LLVM_DEBUG(dbgs() << "ForcedAttribute: " << KV.second +# 46| << " unknown or not a function attribute!\n"); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/llvm-cov/CodeCoverage.cpp:347: move: "CoverageInfo" is moved (indicated by "std::move(CoverageInfo)"). +llvm-17.0.6.src/tools/llvm-cov/CodeCoverage.cpp:347: use_after_move: "CoverageInfo" is used after it has been already moved. +# 345| +# 346| if (!ViewBranches.empty()) { +# 347|-> auto SubView = SourceCoverageView::create(SourceName, File, ViewOpts, +# 348| std::move(CoverageInfo)); +# 349| View.addBranch(CurrentLine, ViewBranches, std::move(SubView)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/llvm-exegesis/lib/PerfHelper.cpp:110: move: "E" is moved (indicated by "std::move(E)"). +llvm-17.0.6.src/tools/llvm-exegesis/lib/PerfHelper.cpp:114: use_after_move: "E" is used after it has been already moved. +# 112| IsDummyEvent = Event.name() == PerfEvent::DummyEventString; +# 113| if (!IsDummyEvent) +# 114|-> initRealEvent(E, ProcessID); +# 115| } +# 116| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:886: overflow_sink: "MemOpIdx + 0", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 0, llvm::MCOperand const(llvm::MCOperand::createReg(Reg)))". +# 884| // getMemoryOperandNo() ignores tied operands, so we have to add them back. +# 885| MemOpIdx += X86II::getOperandBias(IT.getInstr().Description); +# 886|-> setMemOp(IT, MemOpIdx + 0, MCOperand::createReg(Reg)); // BaseReg +# 887| setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:887: overflow: The expression "MemOpIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:887: overflow_sink: "MemOpIdx + 1", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 1, llvm::MCOperand const(llvm::MCOperand::createImm(1L)))". +# 885| MemOpIdx += X86II::getOperandBias(IT.getInstr().Description); +# 886| setMemOp(IT, MemOpIdx + 0, MCOperand::createReg(Reg)); // BaseReg +# 887|-> setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889| setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:888: overflow: The expression "MemOpIdx + 2" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:888: overflow_sink: "MemOpIdx + 2", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 2, llvm::MCOperand const(llvm::MCOperand::createReg(0U)))". +# 886| setMemOp(IT, MemOpIdx + 0, MCOperand::createReg(Reg)); // BaseReg +# 887| setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888|-> setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889| setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp +# 890| setMemOp(IT, MemOpIdx + 4, MCOperand::createReg(0)); // Segment + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:889: overflow: The expression "MemOpIdx + 3" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:889: overflow_sink: "MemOpIdx + 3", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 3, llvm::MCOperand const(llvm::MCOperand::createImm(Offset)))". +# 887| setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889|-> setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp +# 890| setMemOp(IT, MemOpIdx + 4, MCOperand::createReg(0)); // Segment +# 891| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:890: overflow: The expression "MemOpIdx + 4" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:890: overflow_sink: "MemOpIdx + 4", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 4, llvm::MCOperand const(llvm::MCOperand::createReg(0U)))". +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889| setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp +# 890|-> setMemOp(IT, MemOpIdx + 4, MCOperand::createReg(0)); // Segment +# 891| } +# 892| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/tools/llvm-profdata/llvm-profdata.cpp:3112: extract: Calling "c_str" which extracts wrapped state from local "Invocation". +llvm-17.0.6.src/tools/llvm-profdata/llvm-profdata.cpp:3112: escape: The internal representation of local "Invocation" escapes into "argv[1]", but is destroyed when it exits scope. +# 3110| if (func) { +# 3111| std::string Invocation(ProgName.str() + " " + argv[1]); +# 3112|-> argv[1] = Invocation.c_str(); +# 3113| return func(argc - 1, argv + 1); +# 3114| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-tapi-diff/DiffEngine.cpp:287: var_decl: Declaring variable "Diff". +llvm-17.0.6.src/tools/llvm-tapi-diff/DiffEngine.cpp:293: uninit_use: Using uninitialized value "Diff". Field "Diff.Kind" is uninitialized. +# 291| Diff.Values.push_back(std::make_unique(RHS)); +# 292| } +# 293|-> return Diff; +# 294| } +# 295| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/MappedIteratorTest.cpp:175: move: "I2" is moved (indicated by "std::move(I2)"). +llvm-17.0.6.src/unittests/ADT/MappedIteratorTest.cpp:177: use_after_move: "I2" is used after it has been already moved. +# 175| I3 = std::move(I2); +# 176| +# 177|-> EXPECT_EQ(I2, I1) << "move assigned iterator is a different position"; +# 178| } +# 179| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/MLRegallocDevelopmentFeatures.cpp:50: var_decl: Declaring variable "PositionsToReturn". +llvm-17.0.6.src/unittests/CodeGen/MLRegallocDevelopmentFeatures.cpp:80: uninit_use: Using uninitialized value "PositionsToReturn". Field "PositionsToReturn.InlineElts" is uninitialized. +# 78| CurrentIndex += SlotIndex::InstrDist; +# 79| } +# 80|-> return PositionsToReturn; +# 81| } +# 82| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/unittests/DebugInfo/LogicalView/ELFReaderTest.cpp:323: extract: Calling "get" which extracts wrapped state from local "Reference". +llvm-17.0.6.src/unittests/DebugInfo/LogicalView/ELFReaderTest.cpp:323: escape: The internal representation of local "Reference" escapes, but is destroyed when it exits scope. +# 321| std::unique_ptr Target = +# 322| createReader(ReaderHandler, InputsDir, DwarfGcc); +# 323|-> checkElementComparison(Reference.get(), Target.get()); +# 324| } +# 325| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:645: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyEmitted". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:645: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyEmitted(MR)" leaks it. +# 643| LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1); +# 644| +# 645|-> LLVMOrcMaterializationResponsibilityNotifyEmitted(MR); +# 646| LLVMOrcDisposeMaterializationResponsibility(MR); +# 647| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: alloc_fn: Storage is returned from allocation function "LLVMCreatePassBuilderOptions". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: var_assign: Assigning: "Options" = storage returned from "LLVMCreatePassBuilderOptions()". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:74: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:75: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:76: leaked_storage: Variable "Options" going out of scope leaks the storage it points to. +# 74| LLVMErrorRef E1 = LLVMRunPasses(Module, "", TM, Options); +# 75| LLVMErrorRef E2 = LLVMRunPasses(Module, "does-not-exist-pass", TM, Options); +# 76|-> ASSERT_TRUE(E1); +# 77| ASSERT_TRUE(E2); +# 78| LLVMConsumeError(E1); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: alloc_fn: Storage is returned from allocation function "LLVMCreatePassBuilderOptions". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: var_assign: Assigning: "Options" = storage returned from "LLVMCreatePassBuilderOptions()". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:74: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:75: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:77: leaked_storage: Variable "Options" going out of scope leaks the storage it points to. +# 75| LLVMErrorRef E2 = LLVMRunPasses(Module, "does-not-exist-pass", TM, Options); +# 76| ASSERT_TRUE(E1); +# 77|-> ASSERT_TRUE(E2); +# 78| LLVMConsumeError(E1); +# 79| LLVMConsumeError(E2); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ProfileData/CoverageMappingTest.cpp:27: var_decl: Declaring variable "Found" without initializer. +llvm-17.0.6.src/unittests/ProfileData/CoverageMappingTest.cpp:33: uninit_use: Using uninitialized value "Found". +# 31| FoundMsg = CME.message(); +# 32| }); +# 33|-> if (Expected == Found) +# 34| return ::testing::AssertionSuccess(); +# 35| return ::testing::AssertionFailure() << "error: " << FoundMsg << "\n"; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ProfileData/MemProfTest.cpp:121: var_decl: Declaring variable "Schema". +llvm-17.0.6.src/unittests/ProfileData/MemProfTest.cpp:125: uninit_use: Using uninitialized value "Schema". Field "Schema.InlineElts" is uninitialized. +# 123| #include "llvm/ProfileData/MIBEntryDef.inc" +# 124| #undef MIBEntryDef +# 125|-> return Schema; +# 126| } +# 127| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/utils/TableGen/CodeGenRegisters.cpp:491: var_decl: Declaring variable "Parts". +llvm-17.0.6.src/utils/TableGen/CodeGenRegisters.cpp:515: uninit_use_in_call: Using uninitialized value "Parts". Field "Parts.InlineElts" is uninitialized when calling "getConcatSubRegIndex". +# 513| // Each part of Cand is a sub-register of this. Make the full Cand also +# 514| // a sub-register with a concatenated sub-register index. +# 515|-> CodeGenSubRegIndex *Concat = RegBank.getConcatSubRegIndex(Parts); +# 516| std::pair NewSubReg = +# 517| std::make_pair(Concat, Cand); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/utils/TableGen/DAGISelMatcher.cpp:47: alloc_fn: Storage is returned from allocation function "takeNext". +llvm-17.0.6.src/utils/TableGen/DAGISelMatcher.cpp:47: leaked_storage: Ignoring storage allocated by "Cur->takeNext()" leaks it. +# 45| +# 46| if (!Cur) return nullptr; +# 47|-> Cur->takeNext(); +# 48| Cur->setNext(Other->takeNext()); +# 49| return this; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/utils/TableGen/GlobalISel/GIMatchTree.cpp:352: extract: Calling "get" which extracts wrapped state from local "TreeRoot". +llvm-17.0.6.src/utils/TableGen/GlobalISel/GIMatchTree.cpp:352: escape: The internal representation of local "TreeRoot" escapes into "this->TreeNode", but is destroyed when it exits scope. +# 350| +# 351| std::unique_ptr TreeRoot = std::make_unique(); +# 352|-> TreeNode = TreeRoot.get(); +# 353| runStep(); +# 354| + +Error: OVERRUN (CWE-119): +third-party/unittest/googlemock/src/gmock.cc:208: alias: Assigning: "argv" = "&argv0". "argv" now points to element 0 of "argv0" (which consists of 1 8-byte elements). +third-party/unittest/googlemock/src/gmock.cc:210: overrun-buffer-val: Overrunning buffer pointed to by "argv" of 1 8-byte elements by passing it to a function which accesses it at element index 2 (byte offset 23). +# 208| char** argv = &argv0; +# 209| +# 210|-> internal::InitGoogleMockImpl(&argc, argv); +# 211| } +# 212| + +Error: CTOR_DTOR_LEAK (CWE-401): +third-party/unittest/googletest/src/gtest-port.cc:1075: alloc_fn: Calling allocation function "dup". +third-party/unittest/googletest/src/gtest-port.cc:1075: assign: Assigning: "this->uncaptured_fd_" = "dup(fd)". +third-party/unittest/googletest/src/gtest-port.cc:1075: ctor_dtor_leak: The constructor allocates field "uncaptured_fd_" of "testing::internal::CapturedStream" but the destructor and whatever functions it calls do not free it. +# 1073| public: +# 1074| // The ctor redirects the stream to a temporary file. +# 1075|-> explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { +# 1076| # if GTEST_OS_WINDOWS +# 1077| char temp_dir_path[MAX_PATH + 1] = { '\0' }; // NOLINT + +Error: OVERRUN (CWE-119): +third-party/unittest/googletest/src/gtest-port.cc:1214: return_constant: Function call "testing::internal::GetFileSize(file)" may return 18446744073709551615. +third-party/unittest/googletest/src/gtest-port.cc:1214: assignment: Assigning: "file_size" = "testing::internal::GetFileSize(file)". The value of "file_size" is now 18446744073709551615. +third-party/unittest/googletest/src/gtest-port.cc:1227: cond_at_least: Checking "bytes_read < file_size" implies that "bytes_read" is at least 18446744073709551615 on the false branch. +third-party/unittest/googletest/src/gtest-port.cc:1229: overrun-buffer-arg: Calling "basic_string" with "buffer" and "bytes_read" is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned. [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1227| } while (bytes_last_read > 0 && bytes_read < file_size); +# 1228| +# 1229|-> const std::string content(buffer, bytes_read); +# 1230| delete[] buffer; +# 1231| + +Error: SNYK_CODE_WARNING (CWE-125): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:350:15: error[cpp/SizeAsIndex]: The size of the buffer from size is used as an array index. This value could be one larger than the last possible index of the array, causing a buffer overread or overwrite. +# 348| CreateGlobalSet().Globals.set(GI); +# 349| } else { +# 350|-> ++UsedGlobalSets[CurGVOnlySetIdx].UsageCount; +# 351| } +# 352| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:3454: original: "llvm::BinaryOperator::CreateOr(Op0, A, llvm::Twine const(""))" looks like the original copy. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:3432: copy_paste_error: "Op0" in "llvm::BinaryOperator::CreateOr(Op0, C, llvm::Twine const(""))" looks like a copy-paste error. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:3432: remediation: Should it say "Op1" instead? +# 3430| // B | ((A & B) ^ C) -> B | C +# 3431| if (match(Op1, m_c_Xor(m_c_And(m_Value(A), m_Specific(Op0)), m_Value(C)))) +# 3432|-> return BinaryOperator::CreateOr(Op0, C); +# 3433| +# 3434| // ((B | C) & A) | B -> B | (A & C) diff --git a/tests/csdiff/diff-misc/25-llvm-17-path-filter-new.err b/tests/csdiff/diff-misc/25-llvm-17-path-filter-new.err new file mode 100644 index 00000000..0119ec89 --- /dev/null +++ b/tests/csdiff/diff-misc/25-llvm-17-path-filter-new.err @@ -0,0 +1,30492 @@ +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:30:29: constructor_uses_global_object: The constructor of global object "Directory[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Directory[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace clang::replace; +# 29| +# 30|-> static cl::opt Directory(cl::Positional, cl::Required, +# 31| cl::desc("")); +# 32| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "Allocator" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "GlobalParser" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "fuzzer::TPC" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:33:27: constructor_uses_global_object: The constructor of global object "ReplacementCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ReplacementCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 31| cl::desc("")); +# 32| +# 33|-> static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34| static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "Allocator" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "GlobalParser" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "fuzzer::TPC" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:34:27: constructor_uses_global_object: The constructor of global object "FormattingCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormattingCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 32| +# 33| static cl::OptionCategory ReplacementCategory("Replacement Options"); +# 34|-> static cl::OptionCategory FormattingCategory("Formatting Options"); +# 35| +# 36| const cl::OptionCategory *VisibleCategories[] = {&ReplacementCategory, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "Allocator" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "fuzzer::TPC" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "RemoveTUReplacementFiles" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "RemoveTUReplacementFiles" might be created before "scudo::RegionPageMap::Buffers" is available. +# 37| &FormattingCategory}; +# 38| +# 39|-> static cl::opt RemoveTUReplacementFiles( +# 40| "remove-change-desc-files", +# 41| cl::desc("Remove the change description files regardless of successful\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "Allocator" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "fuzzer::TPC" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:45:22: constructor_uses_global_object: The constructor of global object "IgnoreInsertConflict" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "IgnoreInsertConflict" might be created before "scudo::RegionPageMap::Buffers" is available. +# 43| cl::init(false), cl::cat(ReplacementCategory)); +# 44| +# 45|-> static cl::opt IgnoreInsertConflict( +# 46| "ignore-insert-conflict", +# 47| cl::desc("Ignore insert conflict and keep running to fix."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "Allocator" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "fuzzer::TPC" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "DoFormat" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DoFormat" might be created before "scudo::RegionPageMap::Buffers" is available. +# 48| cl::init(false), cl::cat(ReplacementCategory)); +# 49| +# 50|-> static cl::opt DoFormat( +# 51| "format", +# 52| cl::desc("Enable formatting of code changed by applying replacements.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "Allocator" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:61:29: constructor_uses_global_object: The constructor of global object "FormatStyleConfig[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleConfig[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 59| // project. +# 60| +# 61|-> static cl::opt FormatStyleConfig( +# 62| "style-config", +# 63| cl::desc("Path to a directory containing a .clang-format file\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "Allocator" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:69:5: constructor_uses_global_object: The constructor of global object "FormatStyleOpt[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatStyleOpt[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 67| +# 68| static cl::opt +# 69|-> FormatStyleOpt("style", cl::desc(format::StyleOptionHelpDescription), +# 70| cl::init("LLVM"), cl::cat(FormattingCategory)); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "Allocator" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "GlobalParser" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "fuzzer::TPC" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:48:20: constructor_uses_global_object: The constructor of global object "::ChangeNamespaceCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::ChangeNamespaceCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 46| namespace { +# 47| +# 48|-> cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50| cl::opt OldNamespace("old_namespace", cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "Allocator" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:50:22: constructor_uses_global_object: The constructor of global object "::OldNamespace[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldNamespace[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 48| cl::OptionCategory ChangeNamespaceCategory("Change namespace."); +# 49| +# 50|-> cl::opt OldNamespace("old_namespace", cl::Required, +# 51| cl::desc("Old namespace."), +# 52| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "Allocator" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:54:22: constructor_uses_global_object: The constructor of global object "::NewNamespace[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewNamespace[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 52| cl::cat(ChangeNamespaceCategory)); +# 53| +# 54|-> cl::opt NewNamespace("new_namespace", cl::Required, +# 55| cl::desc("New namespace."), +# 56| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "Allocator" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:58:22: constructor_uses_global_object: The constructor of global object "::FilePattern[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::FilePattern[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 56| cl::cat(ChangeNamespaceCategory)); +# 57| +# 58|-> cl::opt FilePattern( +# 59| "file_pattern", cl::Required, +# 60| cl::desc("Only rename namespaces in files that match the given pattern."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "Allocator" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "fuzzer::TPC" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:63:15: constructor_uses_global_object: The constructor of global object "::Inplace" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Inplace" might be created before "scudo::RegionPageMap::Buffers" is available. +# 61| cl::cat(ChangeNamespaceCategory)); +# 62| +# 63|-> cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), +# 64| cl::cat(ChangeNamespaceCategory)); +# 65| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "Allocator" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "fuzzer::TPC" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:67:5: constructor_uses_global_object: The constructor of global object "::DumpYAML" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::DumpYAML" might be created before "scudo::RegionPageMap::Buffers" is available. +# 65| +# 66| cl::opt +# 67|-> DumpYAML("dump_result", +# 68| cl::desc("Dump new file contents in YAML, if specified."), +# 69| cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "Allocator" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:71:22: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 69| cl::cat(ChangeNamespaceCategory)); +# 70| +# 71|-> cl::opt Style("style", +# 72| cl::desc("The style name used for reformatting."), +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "Allocator" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp:75:22: constructor_uses_global_object: The constructor of global object "::AllowedFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::AllowedFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 73| cl::init("LLVM"), cl::cat(ChangeNamespaceCategory)); +# 74| +# 75|-> cl::opt AllowedFile( +# 76| "allowed_file", +# 77| cl::desc("A file containing regexes of symbol names that are not expected " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/HTMLGenerator.cpp:569:3: var_decl: Declaring variable "Idx". +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/HTMLGenerator.cpp:573:3: uninit_use: Using uninitialized value "Idx". Field "Idx.Path.InlineElts" is uninitialized. +# 571| Idx.Children.emplace_back(C.extractName(), +# 572| llvm::toHex(llvm::toStringRef(C.USR))); +# 573|-> return Idx; +# 574| } +# 575| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/Serialize.cpp:50:3: var_decl: Declaring variable "Path". +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/Serialize.cpp:53:3: uninit_use: Using uninitialized value "Path". Field "Path.InlineElts" is uninitialized. +# 51| for (auto R = Namespaces.rbegin(), E = Namespaces.rend(); R != E; ++R) +# 52| llvm::sys::path::append(Path, R->Name); +# 53|-> return Path; +# 54| } +# 55| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/YAMLGenerator.cpp:100:5: var_decl: Declaring variable "USR" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/YAMLGenerator.cpp:103:5: uninit_use: Using uninitialized value "USR". +# 101| std::string HexString = fromHex(Value); +# 102| std::copy(HexString.begin(), HexString.end(), USR.begin()); +# 103|-> return SymbolID(USR); +# 104| } +# 105| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:53:28: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 51| using namespace clang; +# 52| +# 53|-> static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54| static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "Allocator" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "GlobalParser" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "fuzzer::TPC" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:54:33: constructor_uses_global_object: The constructor of global object "ClangDocCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangDocCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 52| +# 53| static llvm::cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 54|-> static llvm::cl::OptionCategory ClangDocCategory("clang-doc options"); +# 55| +# 56| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "Allocator" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:57:5: constructor_uses_global_object: The constructor of global object "ProjectName[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ProjectName[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| +# 56| static llvm::cl::opt +# 57|-> ProjectName("project-name", llvm::cl::desc("Name of project."), +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "Allocator" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "fuzzer::TPC" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:60:28: constructor_uses_global_object: The constructor of global object "IgnoreMappingFailures" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMappingFailures" might be created before "scudo::RegionPageMap::Buffers" is available. +# 58| llvm::cl::cat(ClangDocCategory)); +# 59| +# 60|-> static llvm::cl::opt IgnoreMappingFailures( +# 61| "ignore-map-errors", +# 62| llvm::cl::desc("Continue if files are not mapped correctly."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "Allocator" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:66:5: constructor_uses_global_object: The constructor of global object "OutDirectory[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "OutDirectory[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 64| +# 65| static llvm::cl::opt +# 66|-> OutDirectory("output", +# 67| llvm::cl::desc("Directory for outputting generated files."), +# 68| llvm::cl::init("docs"), llvm::cl::cat(ClangDocCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "Allocator" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "fuzzer::TPC" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:71:5: constructor_uses_global_object: The constructor of global object "PublicOnly" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "PublicOnly" might be created before "scudo::RegionPageMap::Buffers" is available. +# 69| +# 70| static llvm::cl::opt +# 71|-> PublicOnly("public", llvm::cl::desc("Document only public declarations."), +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "Allocator" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "fuzzer::TPC" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:74:28: constructor_uses_global_object: The constructor of global object "DoxygenOnly" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DoxygenOnly" might be created before "scudo::RegionPageMap::Buffers" is available. +# 72| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 73| +# 74|-> static llvm::cl::opt DoxygenOnly( +# 75| "doxygen", +# 76| llvm::cl::desc("Use only doxygen-style comments to generate docs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "Allocator" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:79:36: constructor_uses_global_object: The constructor of global object "UserStylesheets[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "UserStylesheets[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 77| llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +# 78| +# 79|-> static llvm::cl::list UserStylesheets( +# 80| "stylesheets", llvm::cl::CommaSeparated, +# 81| llvm::cl::desc("CSS stylesheets to extend the default styles."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "Allocator" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:84:35: constructor_uses_global_object: The constructor of global object "SourceRoot[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SourceRoot[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 82| llvm::cl::cat(ClangDocCategory)); +# 83| +# 84|-> static llvm::cl::opt SourceRoot("source-root", llvm::cl::desc(R"( +# 85| Directory where processed files are stored. +# 86| Links to definition locations will only be + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "Allocator" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:91:5: constructor_uses_global_object: The constructor of global object "RepositoryUrl[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "RepositoryUrl[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 89| +# 90| static llvm::cl::opt +# 91|-> RepositoryUrl("repository", llvm::cl::desc(R"( +# 92| URL of repository that hosts code. +# 93| Used for links to definition locations.)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "Allocator" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "fuzzer::TPC" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp:103:5: constructor_uses_global_object: The constructor of global object "FormatEnum" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatEnum" might be created before "scudo::RegionPageMap::Buffers" is available. +# 101| +# 102| static llvm::cl::opt +# 103|-> FormatEnum("format", llvm::cl::desc("Format for outputted docs."), +# 104| llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml", +# 105| "Documentation in YAML format."), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp:286:5: var_decl: Declaring variable "Correction". +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp:296:7: uninit_use: Using uninitialized value "Correction". Field "Correction.CorrectionDecls.InlineElts" is uninitialized. +# 294| MatchedSymbols), +# 295| Code, StartOfFile, CI->getASTContext())) +# 296|-> return Correction; +# 297| } +# 298| return TypoCorrection(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixerContext.cpp:20:3: var_decl: Declaring variable "Qualifiers". +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/IncludeFixerContext.cpp:22:3: uninit_use: Using uninitialized value "Qualifiers". Field "Qualifiers.InlineElts" is uninitialized. +# 20| llvm::SmallVector Qualifiers; +# 21| StringQualifiers.split(Qualifiers, "::"); +# 22|-> return Qualifiers; +# 23| } +# 24| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "Allocator" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "GlobalParser" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "fuzzer::TPC" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:42:27: constructor_uses_global_object: The constructor of global object "FindAllSymbolsCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FindAllSymbolsCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 40| // Apply a custom category to all command-line options so that they are the +# 41| // only ones displayed. +# 42|-> static cl::OptionCategory FindAllSymbolsCategory("find_all_symbols options"); +# 43| +# 44| // CommonOptionsParser declares HelpMessage with a description of the common + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:47:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 45| // command-line options related to the compilation database and input files. +# 46| // It's nice to have this help message in all tools. +# 47|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 48| +# 49| // A help message for this specific tool can be added afterwards. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:50:22: constructor_uses_global_object: The constructor of global object "MoreHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "MoreHelp" might be created before "GlobalParser" is available. +# 48| +# 49| // A help message for this specific tool can be added afterwards. +# 50|-> static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52| static cl::opt OutputDir("output-dir", cl::desc(R"( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "Allocator" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:52:29: constructor_uses_global_object: The constructor of global object "OutputDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "OutputDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 50| static cl::extrahelp MoreHelp("\nMore help text..."); +# 51| +# 52|-> static cl::opt OutputDir("output-dir", cl::desc(R"( +# 53| The output directory for saving the results.)"), +# 54| cl::init("."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "Allocator" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp:57:29: constructor_uses_global_object: The constructor of global object "MergeDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "MergeDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| cl::cat(FindAllSymbolsCategory)); +# 56| +# 57|-> static cl::opt MergeDir("merge-dir", cl::desc(R"( +# 58| The directory for merging symbols.)"), +# 59| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "Allocator" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "GlobalParser" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "fuzzer::TPC" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:82:20: constructor_uses_global_object: The constructor of global object "::IncludeFixerCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::IncludeFixerCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 80| +# 81| namespace { +# 82|-> cl::OptionCategory IncludeFixerCategory("Tool options"); +# 83| +# 84| enum DatabaseFormatTy { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "Allocator" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "fuzzer::TPC" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:90:27: constructor_uses_global_object: The constructor of global object "::DatabaseFormat" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::DatabaseFormat" might be created before "scudo::RegionPageMap::Buffers" is available. +# 88| }; +# 89| +# 90|-> cl::opt DatabaseFormat( +# 91| "db", cl::desc("Specify input format"), +# 92| cl::values(clEnumVal(fixed, "Hard-coded mapping"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "Allocator" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:97:22: constructor_uses_global_object: The constructor of global object "::Input[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Input[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 95| cl::init(yaml), cl::cat(IncludeFixerCategory)); +# 96| +# 97|-> cl::opt Input("input", +# 98| cl::desc("String to initialize the database"), +# 99| cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "Allocator" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:102:5: constructor_uses_global_object: The constructor of global object "::QuerySymbol[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::QuerySymbol[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 100| +# 101| cl::opt +# 102|-> QuerySymbol("query-symbol", +# 103| cl::desc("Query a given symbol (e.g. \"a::b::foo\") in\n" +# 104| "database directly without parsing the file."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "Allocator" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "fuzzer::TPC" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:108:5: constructor_uses_global_object: The constructor of global object "::MinimizeIncludePaths" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::MinimizeIncludePaths" might be created before "scudo::RegionPageMap::Buffers" is available. +# 106| +# 107| cl::opt +# 108|-> MinimizeIncludePaths("minimize-paths", +# 109| cl::desc("Whether to minimize added include paths"), +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "Allocator" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "fuzzer::TPC" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:112:15: constructor_uses_global_object: The constructor of global object "::Quiet" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Quiet" might be created before "scudo::RegionPageMap::Buffers" is available. +# 110| cl::init(true), cl::cat(IncludeFixerCategory)); +# 111| +# 112|-> cl::opt Quiet("q", cl::desc("Reduce terminal output"), cl::init(false), +# 113| cl::cat(IncludeFixerCategory)); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "Allocator" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "fuzzer::TPC" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:116:5: constructor_uses_global_object: The constructor of global object "::STDINMode" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::STDINMode" might be created before "scudo::RegionPageMap::Buffers" is available. +# 114| +# 115| cl::opt +# 116|-> STDINMode("stdin", +# 117| cl::desc("Override source file's content (in the overlaying\n" +# 118| "virtual file system) with input from and run\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "Allocator" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "fuzzer::TPC" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:124:15: constructor_uses_global_object: The constructor of global object "::OutputHeaders" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OutputHeaders" might be created before "scudo::RegionPageMap::Buffers" is available. +# 122| cl::init(false), cl::cat(IncludeFixerCategory)); +# 123| +# 124|-> cl::opt OutputHeaders( +# 125| "output-headers", +# 126| cl::desc("Print the symbol being queried and all its relevant headers in\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "Allocator" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:139:22: constructor_uses_global_object: The constructor of global object "::InsertHeader[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::InsertHeader[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 137| cl::init(false), cl::cat(IncludeFixerCategory)); +# 138| +# 139|-> cl::opt InsertHeader( +# 140| "insert-header", +# 141| cl::desc("Insert a specific header. This should run with STDIN mode.\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "Allocator" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp:155:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 153| +# 154| cl::opt +# 155|-> Style("style", +# 156| cl::desc("Fallback style for reformatting after inserting new\n" +# 157| "headers if there is no clang-format config file found."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "Allocator" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "GlobalParser" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "fuzzer::TPC" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:40:20: constructor_uses_global_object: The constructor of global object "::ClangMoveCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::ClangMoveCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 38| } +# 39| +# 40|-> cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42| cl::list Names("names", cl::CommaSeparated, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "Allocator" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:42:23: constructor_uses_global_object: The constructor of global object "::Names[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Names[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 40| cl::OptionCategory ClangMoveCategory("clang-move options"); +# 41| +# 42|-> cl::list Names("names", cl::CommaSeparated, +# 43| cl::desc("The list of the names of classes being " +# 44| "moved, e.g. \"Foo,a::Foo,b::Foo\"."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "Allocator" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:48:5: constructor_uses_global_object: The constructor of global object "::OldHeader[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldHeader[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 46| +# 47| cl::opt +# 48|-> OldHeader("old_header", +# 49| cl::desc("The relative/absolute file path of old header."), +# 50| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "Allocator" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:53:5: constructor_uses_global_object: The constructor of global object "::OldCC[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldCC[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 51| +# 52| cl::opt +# 53|-> OldCC("old_cc", cl::desc("The relative/absolute file path of old cc."), +# 54| cl::cat(ClangMoveCategory)); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "Allocator" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:57:5: constructor_uses_global_object: The constructor of global object "::NewHeader[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewHeader[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| +# 56| cl::opt +# 57|-> NewHeader("new_header", +# 58| cl::desc("The relative/absolute file path of new header."), +# 59| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "Allocator" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:62:5: constructor_uses_global_object: The constructor of global object "::NewCC[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewCC[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 60| +# 61| cl::opt +# 62|-> NewCC("new_cc", cl::desc("The relative/absolute file path of new cc."), +# 63| cl::cat(ClangMoveCategory)); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "Allocator" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "fuzzer::TPC" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:66:5: constructor_uses_global_object: The constructor of global object "::OldDependOnNew" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::OldDependOnNew" might be created before "scudo::RegionPageMap::Buffers" is available. +# 64| +# 65| cl::opt +# 66|-> OldDependOnNew("old_depend_on_new", +# 67| cl::desc("Whether old header will depend on new header. If " +# 68| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "Allocator" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "fuzzer::TPC" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:73:5: constructor_uses_global_object: The constructor of global object "::NewDependOnOld" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::NewDependOnOld" might be created before "scudo::RegionPageMap::Buffers" is available. +# 71| +# 72| cl::opt +# 73|-> NewDependOnOld("new_depend_on_old", +# 74| cl::desc("Whether new header will depend on old header. If " +# 75| "true, clang-move will " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "Allocator" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:80:5: constructor_uses_global_object: The constructor of global object "::Style[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Style[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 78| +# 79| cl::opt +# 80|-> Style("style", +# 81| cl::desc("The style name used for reformatting. Default is \"llvm\""), +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "Allocator" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "fuzzer::TPC" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:84:15: constructor_uses_global_object: The constructor of global object "::Dump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Dump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 82| cl::init("llvm"), cl::cat(ClangMoveCategory)); +# 83| +# 84|-> cl::opt Dump("dump_result", +# 85| cl::desc("Dump results in JSON format to stdout."), +# 86| cl::cat(ClangMoveCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "Allocator" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "fuzzer::TPC" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-move/tool/ClangMove.cpp:88:15: constructor_uses_global_object: The constructor of global object "::DumpDecls" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::DumpDecls" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| cl::cat(ClangMoveCategory)); +# 87| +# 88|-> cl::opt DumpDecls( +# 89| "dump_decls", +# 90| cl::desc("Dump all declarations in old header (JSON format) to stdout. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:50:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 48| using namespace llvm; +# 49| +# 50|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51| static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "Allocator" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "GlobalParser" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "fuzzer::TPC" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:51:27: constructor_uses_global_object: The constructor of global object "ClangQueryCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangQueryCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 49| +# 50| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 51|-> static cl::OptionCategory ClangQueryCategory("clang-query options"); +# 52| +# 53| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "Allocator" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "fuzzer::TPC" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:54:5: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "scudo::RegionPageMap::Buffers" is available. +# 52| +# 53| static cl::opt +# 54|-> UseColor("use-color", +# 55| cl::desc( +# 56| R"(Use colors in detailed AST output. If not set, colors + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "Allocator" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:61:30: constructor_uses_global_object: The constructor of global object "Commands[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Commands[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 59| cl::init(false), cl::cat(ClangQueryCategory)); +# 60| +# 61|-> static cl::list Commands("c", cl::desc("Specify command to run"), +# 62| cl::value_desc("command"), +# 63| cl::cat(ClangQueryCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "Allocator" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:65:30: constructor_uses_global_object: The constructor of global object "CommandFiles[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "CommandFiles[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 63| cl::cat(ClangQueryCategory)); +# 64| +# 65|-> static cl::list CommandFiles("f", +# 66| cl::desc("Read commands from file"), +# 67| cl::value_desc("file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "Allocator" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-query/tool/ClangQuery.cpp:70:29: constructor_uses_global_object: The constructor of global object "PreloadFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "PreloadFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 68| cl::cat(ClangQueryCategory)); +# 69| +# 70|-> static cl::opt PreloadFile( +# 71| "preload", +# 72| cl::desc("Preload commands from file and start interactive mode"), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp:102:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp:116:3: uninit_use: Using uninitialized value "Results". Field "Results.vector_.InlineElts" is uninitialized. +# 114| if (auto *FD = dyn_cast(MemExpr->getMemberDecl())) +# 115| Results.insert(FD); +# 116|-> return Results; +# 117| } +# 118| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "Allocator" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "GlobalParser" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "fuzzer::TPC" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:35:20: constructor_uses_global_object: The constructor of global object "ClangReorderFieldsCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangReorderFieldsCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 33| using namespace clang; +# 34| +# 35|-> cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options"); +# 36| +# 37| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "Allocator" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:38:5: constructor_uses_global_object: The constructor of global object "RecordName[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "RecordName[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 36| +# 37| static cl::opt +# 38|-> RecordName("record-name", cl::Required, +# 39| cl::desc("The name of the struct/class."), +# 40| cl::cat(ClangReorderFieldsCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "Allocator" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:42:30: constructor_uses_global_object: The constructor of global object "FieldsOrder[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FieldsOrder[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 40| cl::cat(ClangReorderFieldsCategory)); +# 41| +# 42|-> static cl::list FieldsOrder("fields-order", cl::CommaSeparated, +# 43| cl::OneOrMore, +# 44| cl::desc("The desired fields order."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "Allocator" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "fuzzer::TPC" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp:47:22: constructor_uses_global_object: The constructor of global object "Inplace" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Inplace" might be created before "scudo::RegionPageMap::Buffers" is available. +# 45| cl::cat(ClangReorderFieldsCategory)); +# 46| +# 47|-> static cl::opt Inplace("i", cl::desc("Overwrite edited files."), +# 48| cl::cat(ClangReorderFieldsCategory)); +# 49| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:114:3: var_decl: Declaring variable "NoLints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:148:3: uninit_use: Using uninitialized value "NoLints". Field "NoLints.InlineElts" is uninitialized. +# 146| } +# 147| +# 148|-> return NoLints; +# 149| } +# 150| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:188:3: var_decl: Declaring variable "CompletedBlocks". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:211:3: uninit_use: Using uninitialized value "CompletedBlocks". Field "CompletedBlocks.InlineElts" is uninitialized. +# 209| +# 210| llvm::move(Stack, std::back_inserter(UnmatchedTokens)); +# 211|-> return CompletedBlocks; +# 212| } +# 213| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:366:3: var_decl: Declaring variable "Error". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp:377:3: uninit_use: Using uninitialized value "Error". Field "Error.Notes.InlineElts" is uninitialized. +# 375| SourceLocation Loc = SrcMgr.getComposedLoc(File, NoLint.Pos); +# 376| Error.Message = tooling::DiagnosticMessage(Message, SrcMgr, Loc); +# 377|-> return Error; +# 378| } +# 379| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp:236:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp:242:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 240| RHS->EvaluateAsRValue(Result, *Context); +# 241| else +# 242|-> return false; // Cannot evaluate either side. +# 243| if (!Result.Val.isInt()) +# 244| return false; // Cannot check number of iterations, return false to be + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1419:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1495:3: uninit_use: Using uninitialized value "Ret". Field "Ret.Mixes.InlineElts" is uninitialized. +# 1493| } +# 1494| +# 1495|-> return Ret; +# 1496| } +# 1497| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1917:3: var_decl: Declaring variable "Name". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp:1920:3: uninit_use: Using uninitialized value "Name". Field "Name.InlineElts" is uninitialized. +# 1918| llvm::raw_svector_ostream OS{Name}; +# 1919| ND->getNameForDiagnostic(OS, ND->getASTContext().getPrintingPolicy(), false); +# 1920|-> return Name; +# 1921| } +# 1922| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp:21:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Semantics, 1UL)". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/IncorrectRoundingsCheck.cpp:21:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 19| +# 20| static llvm::APFloat getHalf(const llvm::fltSemantics &Semantics) { +# 21|-> return llvm::APFloat(Semantics, 1U) / llvm::APFloat(Semantics, 2U); +# 22| } +# 23| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp:67:3: var_decl: Declaring variable "Length". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp:90:3: uninit_use_in_call: Using uninitialized value "Length.Val.Data" when calling "~EvalResult". +# 88| return SrcSL->getLength(); +# 89| +# 90|-> return 0; +# 91| } +# 92| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp:39:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp:56:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 54| } +# 55| +# 56|-> return Result; +# 57| } +# 58| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp:44:3: var_decl: Declaring variable "AllowedIdentifiers". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp:55:3: uninit_use: Using uninitialized value "AllowedIdentifiers". Field "AllowedIdentifiers.InlineElts" is uninitialized. +# 53| } +# 54| +# 55|-> return AllowedIdentifiers; +# 56| } +# 57| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:145:5: var_decl: Declaring variable "EVResult". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:156:3: uninit_use_in_call: Using uninitialized value "EVResult.Val.Data" when calling "~EvalResult". +# 154| diag(Comparison->getBeginLoc(), +# 155| "comparison between 'signed char' and 'unsigned char'"); +# 156|-> } else if (Result.Nodes.getNodeAs("arraySubscript")) { +# 157| diag(SignedCastExpression->getBeginLoc(), +# 158| "'signed char' to %0 conversion in array subscript; " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:131:3: var_decl: Declaring variable "EVResult". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SignedCharMisuseCheck.cpp:167:1: uninit_use_in_call: Using uninitialized value "EVResult.Val.Data" when calling "~EvalResult". +# 165| << *IntegerType; +# 166| } +# 167|-> } +# 168| +# 169| } // namespace clang::tidy::bugprone + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp:168:5: var_decl: Declaring variable "ConstPtr". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/StringConstructorCheck.cpp:181:3: uninit_use_in_call: Using uninitialized value "ConstPtr.Val.Data" when calling "~EvalResult". +# 179| diag(Loc, "constructing string from nullptr is undefined behaviour"); +# 180| } +# 181|-> } +# 182| } +# 183| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp:102:5: var_decl: Declaring variable "Value2". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp:106:7: uninit_use_in_call: Using uninitialized value "Value2.Val.Data" when calling "~EvalResult". +# 104| !ByteCount->EvaluateAsInt(Value2, *Result.Context) || +# 105| Value2.Val.getInt() != 0) +# 106|-> return; +# 107| +# 108| // Return if `fill_char` is known to be zero or negative at compile + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp:305:3: var_decl: Declaring variable "Str". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp:316:3: uninit_use: Using uninitialized value "Str". Field "Str.InlineElts" is uninitialized. +# 314| Str.append(")"); +# 315| } +# 316|-> return Str; +# 317| } +# 318| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp:202:3: var_decl: Declaring variable "Insertions". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp:237:3: uninit_use: Using uninitialized value "Insertions". Field "Insertions.InlineElts" is uninitialized. +# 235| } +# 236| } +# 237|-> return Insertions; +# 238| } +# 239| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp:39:32: constructor_uses_global_object: The constructor of global object "clang::tidy::llvm_libc::IgnoredFunctions" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::llvm_libc::IgnoredFunctions" might be created before "Allocator" is available. +# 37| // functions are specifically allowed to be external so that they can be +# 38| // intercepted. +# 39|-> static const llvm::StringSet<> IgnoredFunctions = { +# 40| "__errno_location", "malloc", "calloc", "realloc", "free", "aligned_alloc"}; +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp:39:32: constructor_uses_global_object: The constructor of global object "clang::tidy::llvm_libc::IgnoredFunctions" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::llvm_libc::IgnoredFunctions" might be created before "fuzzer::TPC" is available. +# 37| // functions are specifically allowed to be external so that they can be +# 38| // intercepted. +# 39|-> static const llvm::StringSet<> IgnoredFunctions = { +# 40| "__errno_location", "malloc", "calloc", "realloc", "free", "aligned_alloc"}; +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/llvmlibc/CalleeNamespaceCheck.cpp:39:32: constructor_uses_global_object: The constructor of global object "clang::tidy::llvm_libc::IgnoredFunctions" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::llvm_libc::IgnoredFunctions" might be created before "scudo::RegionPageMap::Buffers" is available. +# 37| // functions are specifically allowed to be external so that they can be +# 38| // intercepted. +# 39|-> static const llvm::StringSet<> IgnoredFunctions = { +# 40| "__errno_location", "malloc", "calloc", "realloc", "free", "aligned_alloc"}; +# 41| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp:51:3: var_decl: Declaring variable "Skeleton". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp:89:3: uninit_use: Using uninitialized value "Skeleton". Field "Skeleton.InlineElts" is uninitialized. +# 87| } +# 88| } +# 89|-> return Skeleton; +# 90| } +# 91| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp:257:3: var_decl: Declaring variable "BindArguments". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp:318:3: uninit_use: Using uninitialized value "BindArguments". Field "BindArguments.InlineElts" is uninitialized. +# 316| } +# 317| } +# 318|-> return BindArguments; +# 319| } +# 320| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:71:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::MemberNames" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::MemberNames" might be created before "Allocator" is available. +# 69| static const char DerefByValueResultName[] = "derefByValueResult"; +# 70| static const char DerefByRefResultName[] = "derefByRefResult"; +# 71|-> static const llvm::StringSet<> MemberNames{"begin", "cbegin", "rbegin", +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:71:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::MemberNames" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::MemberNames" might be created before "fuzzer::TPC" is available. +# 69| static const char DerefByValueResultName[] = "derefByValueResult"; +# 70| static const char DerefByRefResultName[] = "derefByRefResult"; +# 71|-> static const llvm::StringSet<> MemberNames{"begin", "cbegin", "rbegin", +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:71:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::MemberNames" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::MemberNames" might be created before "scudo::RegionPageMap::Buffers" is available. +# 69| static const char DerefByValueResultName[] = "derefByValueResult"; +# 70| static const char DerefByRefResultName[] = "derefByRefResult"; +# 71|-> static const llvm::StringSet<> MemberNames{"begin", "cbegin", "rbegin", +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:74:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ADLNames" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ADLNames" might be created before "Allocator" is available. +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; +# 74|-> static const llvm::StringSet<> ADLNames{"begin", "cbegin", "rbegin", +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:74:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ADLNames" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ADLNames" might be created before "fuzzer::TPC" is available. +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; +# 74|-> static const llvm::StringSet<> ADLNames{"begin", "cbegin", "rbegin", +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:74:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ADLNames" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ADLNames" might be created before "scudo::RegionPageMap::Buffers" is available. +# 72| "crbegin", "end", "cend", +# 73| "rend", "crend", "size"}; +# 74|-> static const llvm::StringSet<> ADLNames{"begin", "cbegin", "rbegin", +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:77:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::StdNames" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::StdNames" might be created before "Allocator" is available. +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; +# 77|-> static const llvm::StringSet<> StdNames{ +# 78| "std::begin", "std::cbegin", "std::rbegin", "std::crbegin", "std::end", +# 79| "std::cend", "std::rend", "std::crend", "std::size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:77:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::StdNames" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::StdNames" might be created before "fuzzer::TPC" is available. +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; +# 77|-> static const llvm::StringSet<> StdNames{ +# 78| "std::begin", "std::cbegin", "std::rbegin", "std::crbegin", "std::end", +# 79| "std::cend", "std::rend", "std::crend", "std::size"}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp:77:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::StdNames" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::StdNames" might be created before "scudo::RegionPageMap::Buffers" is available. +# 75| "crbegin", "end", "cend", +# 76| "rend", "crend", "size"}; +# 77|-> static const llvm::StringSet<> StdNames{ +# 78| "std::begin", "std::cbegin", "std::rbegin", "std::crbegin", "std::end", +# 79| "std::cend", "std::rend", "std::crend", "std::size"}; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:34:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:61:7: uninit_use: Using uninitialized value "Result". Field "Result.Args.InlineElts" is uninitialized. +# 59| Result.Compare = *ArgIterator; +# 60| +# 61|-> return Result; +# 62| } +# 63| Result.Args = SmallVector(Call->arguments()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:80:3: var_decl: Declaring variable "FixItHints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:94:5: uninit_use: Using uninitialized value "FixItHints". Field "FixItHints.InlineElts" is uninitialized. +# 92| +# 93| if ((!IsResultTypeTrivial && IgnoreNonTrivialTypes)) +# 94|-> return FixItHints; +# 95| +# 96| if (IsResultTypeTrivial && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:80:3: var_decl: Declaring variable "FixItHints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:100:5: uninit_use: Using uninitialized value "FixItHints". Field "FixItHints.InlineElts" is uninitialized. +# 98| Match.Context->getTypeSizeInChars(ResultType).getQuantity()) > +# 99| IgnoreTrivialTypesOfSizeAbove) +# 100|-> return FixItHints; +# 101| +# 102| for (const Expr *Arg : Result.Args) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:80:3: var_decl: Declaring variable "FixItHints". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/MinMaxUseInitializerListCheck.cpp:192:3: uninit_use: Using uninitialized value "FixItHints". Field "FixItHints.InlineElts" is uninitialized. +# 190| } +# 191| +# 192|-> return FixItHints; +# 193| } +# 194| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp:181:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp:186:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 184| for (const FunctionDecl *Redecl : Ctor->redecls()) +# 185| Results.push_back(Redecl->getParamDecl(ParamIdx)); +# 186|-> return Results; +# 187| } +# 188| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp:36:3: return_constant: Function call "Text.find('"', 0UL)" may return 18446744073709551615. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp:36:3: assignment: Assigning: "QuotePos" = "Text.find('"', 0UL)". The value of "QuotePos" is now 18446744073709551615. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp:38:3: overrun-buffer-arg: Calling "operator []" with "Text.Data" and "QuotePos - 1UL" is suspicious because of the very large index, 18446744073709551614. The index may be due to a negative parameter being interpreted as unsigned. +# 36| const size_t QuotePos = Text.find('"'); +# 37| assert(QuotePos != StringRef::npos); +# 38|-> return (QuotePos > 0) && (Text[QuotePos - 1] == 'R'); +# 39| } +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:18:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ValueTraits" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ValueTraits" might be created before "Allocator" is available. +# 16| namespace clang::tidy::modernize { +# 17| +# 18|-> static const llvm::StringSet<> ValueTraits = { +# 19| "alignment_of", +# 20| "conjunction", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:18:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ValueTraits" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ValueTraits" might be created before "fuzzer::TPC" is available. +# 16| namespace clang::tidy::modernize { +# 17| +# 18|-> static const llvm::StringSet<> ValueTraits = { +# 19| "alignment_of", +# 20| "conjunction", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:18:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::ValueTraits" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::ValueTraits" might be created before "scudo::RegionPageMap::Buffers" is available. +# 16| namespace clang::tidy::modernize { +# 17| +# 18|-> static const llvm::StringSet<> ValueTraits = { +# 19| "alignment_of", +# 20| "conjunction", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:105:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::TypeTraits" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::TypeTraits" might be created before "Allocator" is available. +# 103| }; +# 104| +# 105|-> static const llvm::StringSet<> TypeTraits = { +# 106| "remove_cv", +# 107| "remove_const", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:105:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::TypeTraits" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::TypeTraits" might be created before "fuzzer::TPC" is available. +# 103| }; +# 104| +# 105|-> static const llvm::StringSet<> TypeTraits = { +# 106| "remove_cv", +# 107| "remove_const", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/modernize/TypeTraitsCheck.cpp:105:32: constructor_uses_global_object: The constructor of global object "clang::tidy::modernize::TypeTraits" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::modernize::TypeTraits" might be created before "scudo::RegionPageMap::Buffers" is available. +# 103| }; +# 104| +# 105|-> static const llvm::StringSet<> TypeTraits = { +# 106| "remove_cv", +# 107| "remove_const", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp:74:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp:77:5: uninit_use: Using uninitialized value "Result". Field "Result.Hints.InlineElts" is uninitialized. +# 75| std::optional Tok = findConstToRemove(Def, MatchResult); +# 76| if (!Tok) +# 77|-> return Result; +# 78| +# 79| Result.ConstRange = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:103:3: var_decl: Declaring variable "DifferingParams". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:132:3: uninit_use: Using uninitialized value "DifferingParams". Field "DifferingParams.InlineElts" is uninitialized. +# 130| } +# 131| +# 132|-> return DifferingParams; +# 133| } +# 134| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:139:3: var_decl: Declaring variable "InconsistentDeclarations". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp:165:3: uninit_use: Using uninitialized value "InconsistentDeclarations". Field "InconsistentDeclarations.InlineElts" is uninitialized. +# 163| Info2.DeclarationLocation); +# 164| }); +# 165|-> return InconsistentDeclarations; +# 166| } +# 167| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:109:7: var_decl: Declaring variable "FloatValue". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:110:7: uninit_use_in_call: Using uninitialized value "FloatValue.U" when calling "convertFromString". +# 108| for (const auto &InputValue : IgnoredFloatingPointValuesInput) { +# 109| llvm::APFloat FloatValue(llvm::APFloat::IEEEsingle()); +# 110|-> auto StatusOrErr = +# 111| FloatValue.convertFromString(InputValue, DefaultRoundingMode); +# 112| assert(StatusOrErr && "Invalid floating point representation"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:116:7: var_decl: Declaring variable "DoubleValue". +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp:117:7: uninit_use_in_call: Using uninitialized value "DoubleValue.U" when calling "convertFromString". +# 115| +# 116| llvm::APFloat DoubleValue(llvm::APFloat::IEEEdouble()); +# 117|-> StatusOrErr = +# 118| DoubleValue.convertFromString(InputValue, DefaultRoundingMode); +# 119| assert(StatusOrErr && "Invalid floating point representation"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "Allocator" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "GlobalParser" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "fuzzer::TPC" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:36:27: constructor_uses_global_object: The constructor of global object "ClangTidyCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 34| static cl::desc desc(StringRef description) { return {description.ltrim()}; } +# 35| +# 36|-> static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:38:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 36| static cl::OptionCategory ClangTidyCategory("clang-tidy options"); +# 37| +# 38|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 39| static cl::extrahelp ClangTidyHelp(R"( +# 40| Configuration files: + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:39:22: constructor_uses_global_object: The constructor of global object "ClangTidyHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangTidyHelp" might be created before "GlobalParser" is available. +# 37| +# 38| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 39|-> static cl::extrahelp ClangTidyHelp(R"( +# 40| Configuration files: +# 41| clang-tidy attempts to read configuration for each source file from a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "Allocator" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:100:29: constructor_uses_global_object: The constructor of global object "Checks[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Checks[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 98| "clang-analyzer-*"; // * Static Analyzer checks +# 99| +# 100|-> static cl::opt Checks("checks", desc(R"( +# 101| Comma-separated list of globs with optional '-' +# 102| prefix. Globs are processed in order of + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "Allocator" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:113:29: constructor_uses_global_object: The constructor of global object "WarningsAsErrors[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "WarningsAsErrors[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 111| cl::init(""), cl::cat(ClangTidyCategory)); +# 112| +# 113|-> static cl::opt WarningsAsErrors("warnings-as-errors", desc(R"( +# 114| Upgrades warnings to errors. Same format as +# 115| '-checks'. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "Allocator" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:123:29: constructor_uses_global_object: The constructor of global object "HeaderFilter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "HeaderFilter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 121| cl::cat(ClangTidyCategory)); +# 122| +# 123|-> static cl::opt HeaderFilter("header-filter", desc(R"( +# 124| Regular expression matching the names of the +# 125| headers to output diagnostics from. Diagnostics + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "Allocator" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "fuzzer::TPC" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:135:22: constructor_uses_global_object: The constructor of global object "SystemHeaders" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SystemHeaders" might be created before "scudo::RegionPageMap::Buffers" is available. +# 133| cl::cat(ClangTidyCategory)); +# 134| +# 135|-> static cl::opt SystemHeaders("system-headers", desc(R"( +# 136| Display the errors from system headers. +# 137| This option overrides the 'SystemHeaders' option + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "Allocator" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:142:29: constructor_uses_global_object: The constructor of global object "LineFilter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "LineFilter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 140| cl::init(false), cl::cat(ClangTidyCategory)); +# 141| +# 142|-> static cl::opt LineFilter("line-filter", desc(R"( +# 143| List of files with line ranges to filter the +# 144| warnings. Can be used together with + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "Allocator" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "fuzzer::TPC" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:155:22: constructor_uses_global_object: The constructor of global object "Fix" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Fix" might be created before "scudo::RegionPageMap::Buffers" is available. +# 153| cl::cat(ClangTidyCategory)); +# 154| +# 155|-> static cl::opt Fix("fix", desc(R"( +# 156| Apply suggested fixes. Without -fix-errors +# 157| clang-tidy will bail out if any compilation + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "Allocator" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "fuzzer::TPC" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:162:22: constructor_uses_global_object: The constructor of global object "FixErrors" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FixErrors" might be created before "scudo::RegionPageMap::Buffers" is available. +# 160| cl::init(false), cl::cat(ClangTidyCategory)); +# 161| +# 162|-> static cl::opt FixErrors("fix-errors", desc(R"( +# 163| Apply suggested fixes even if compilation +# 164| errors were found. If compiler errors have + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "Allocator" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "fuzzer::TPC" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:170:22: constructor_uses_global_object: The constructor of global object "FixNotes" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FixNotes" might be created before "scudo::RegionPageMap::Buffers" is available. +# 168| cl::init(false), cl::cat(ClangTidyCategory)); +# 169| +# 170|-> static cl::opt FixNotes("fix-notes", desc(R"( +# 171| If a warning has no fix, but a single fix can +# 172| be found through an associated diagnostic note, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "Allocator" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:179:29: constructor_uses_global_object: The constructor of global object "FormatStyle[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FormatStyle[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 177| cl::init(false), cl::cat(ClangTidyCategory)); +# 178| +# 179|-> static cl::opt FormatStyle("format-style", desc(R"( +# 180| Style for formatting code around applied fixes: +# 181| - 'none' (default) turns off formatting + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "Allocator" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "fuzzer::TPC" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:196:22: constructor_uses_global_object: The constructor of global object "ListChecks" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ListChecks" might be created before "scudo::RegionPageMap::Buffers" is available. +# 194| cl::cat(ClangTidyCategory)); +# 195| +# 196|-> static cl::opt ListChecks("list-checks", desc(R"( +# 197| List all enabled checks and exit. Use with +# 198| -checks=* to list all available checks. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "Allocator" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "fuzzer::TPC" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:202:22: constructor_uses_global_object: The constructor of global object "ExplainConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ExplainConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 200| cl::init(false), cl::cat(ClangTidyCategory)); +# 201| +# 202|-> static cl::opt ExplainConfig("explain-config", desc(R"( +# 203| For each enabled check explains, where it is +# 204| enabled, i.e. in clang-tidy binary, command + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "Allocator" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:209:29: constructor_uses_global_object: The constructor of global object "Config[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Config[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 207| cl::init(false), cl::cat(ClangTidyCategory)); +# 208| +# 209|-> static cl::opt Config("config", desc(R"( +# 210| Specifies a configuration in YAML/JSON format: +# 211| -config="{Checks: '*', + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "Allocator" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:219:29: constructor_uses_global_object: The constructor of global object "ConfigFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ConfigFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 217| cl::init(""), cl::cat(ClangTidyCategory)); +# 218| +# 219|-> static cl::opt ConfigFile("config-file", desc(R"( +# 220| Specify the path of .clang-tidy or custom config file: +# 221| e.g. --config-file=/some/path/myTidyConfigFile + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "Allocator" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "fuzzer::TPC" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:229:22: constructor_uses_global_object: The constructor of global object "DumpConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DumpConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 227| cl::cat(ClangTidyCategory)); +# 228| +# 229|-> static cl::opt DumpConfig("dump-config", desc(R"( +# 230| Dumps configuration in the YAML format to +# 231| stdout. This option can be used along with a + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "Allocator" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "fuzzer::TPC" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:241:22: constructor_uses_global_object: The constructor of global object "EnableCheckProfile" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "EnableCheckProfile" might be created before "scudo::RegionPageMap::Buffers" is available. +# 239| cl::init(false), cl::cat(ClangTidyCategory)); +# 240| +# 241|-> static cl::opt EnableCheckProfile("enable-check-profile", desc(R"( +# 242| Enable per-check timing profiles, and print a +# 243| report to stderr. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "Allocator" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:248:29: constructor_uses_global_object: The constructor of global object "StoreCheckProfile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "StoreCheckProfile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 246| cl::cat(ClangTidyCategory)); +# 247| +# 248|-> static cl::opt StoreCheckProfile("store-check-profile", desc(R"( +# 249| By default reports are printed in tabulated +# 250| format to stderr. When this option is passed, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "Allocator" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "fuzzer::TPC" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:260:5: constructor_uses_global_object: The constructor of global object "AllowEnablingAnalyzerAlphaCheckers" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "AllowEnablingAnalyzerAlphaCheckers" might be created before "scudo::RegionPageMap::Buffers" is available. +# 258| /// highly not recommended for users. +# 259| static cl::opt +# 260|-> AllowEnablingAnalyzerAlphaCheckers("allow-enabling-analyzer-alpha-checkers", +# 261| cl::init(false), cl::Hidden, +# 262| cl::cat(ClangTidyCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "Allocator" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "fuzzer::TPC" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:264:22: constructor_uses_global_object: The constructor of global object "EnableModuleHeadersParsing" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleHeadersParsing" might be created before "scudo::RegionPageMap::Buffers" is available. +# 262| cl::cat(ClangTidyCategory)); +# 263| +# 264|-> static cl::opt EnableModuleHeadersParsing("enable-module-headers-parsing", +# 265| desc(R"( +# 266| Enables preprocessor-level module header parsing + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "Allocator" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:275:29: constructor_uses_global_object: The constructor of global object "ExportFixes[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ExportFixes[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 273| cl::cat(ClangTidyCategory)); +# 274| +# 275|-> static cl::opt ExportFixes("export-fixes", desc(R"( +# 276| YAML file to store suggested fixes in. The +# 277| stored fixes can be applied to the input source + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "Allocator" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "fuzzer::TPC" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:283:22: constructor_uses_global_object: The constructor of global object "Quiet" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Quiet" might be created before "scudo::RegionPageMap::Buffers" is available. +# 281| cl::cat(ClangTidyCategory)); +# 282| +# 283|-> static cl::opt Quiet("quiet", desc(R"( +# 284| Run clang-tidy in quiet mode. This suppresses +# 285| printing statistics about ignored warnings and + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "Allocator" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:291:29: constructor_uses_global_object: The constructor of global object "VfsOverlay[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "VfsOverlay[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 289| cl::init(false), cl::cat(ClangTidyCategory)); +# 290| +# 291|-> static cl::opt VfsOverlay("vfsoverlay", desc(R"( +# 292| Overlay the virtual filesystem described by file +# 293| over the real file system. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "Allocator" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "fuzzer::TPC" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:298:22: constructor_uses_global_object: The constructor of global object "UseColor" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "UseColor" might be created before "scudo::RegionPageMap::Buffers" is available. +# 296| cl::cat(ClangTidyCategory)); +# 297| +# 298|-> static cl::opt UseColor("use-color", desc(R"( +# 299| Use colors in diagnostics. If not set, colors +# 300| will be used if the terminal connected to + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "Allocator" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "fuzzer::TPC" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:307:22: constructor_uses_global_object: The constructor of global object "VerifyConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "VerifyConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 305| cl::init(false), cl::cat(ClangTidyCategory)); +# 306| +# 307|-> static cl::opt VerifyConfig("verify-config", desc(R"( +# 308| Check the config files to ensure each check and +# 309| option is recognized. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:20:3: var_decl: Declaring variable "Token" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:25:5: uninit_use_in_call: Using uninitialized value "Token". Field "Token.Loc" is uninitialized when calling "pair". +# 23| Location = Location.getLocWithOffset(-1); +# 24| if (Location.isInvalid()) +# 25|-> return {Token, Location}; +# 26| +# 27| auto StartOfFile = SM.getLocForStartOfFile(SM.getFileID(Location)); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:278:3: zero_return: Function call "FuncDecl->getNumParams()" returns 0. +llvm-project-19.0.0.src/clang-tools-extra/clang-tidy/utils/LexerUtils.cpp:278:3: overrun-buffer-arg: Calling "getParamDecl" with "FuncDecl->ParamInfo" and "FuncDecl->getNumParams() - 1U" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 276| +# 277| // FunctionDecl with parameters +# 278|-> const SourceLocation NoexceptLoc = +# 279| FuncDecl->getParamDecl(FuncDecl->getNumParams() - 1)->getEndLoc(); +# 280| if (NoexceptLoc.isValid()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/ClangdServer.cpp:196:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/clang-tools-extra/clangd/ClangdServer.cpp:200:3: uninit_use: Using uninitialized value "Opts". Field "Opts.ClangTidyProvider.callable" is uninitialized. +# 198| Opts.StorePreamblesInMemory = true; +# 199| Opts.AsyncThreadsCount = 4; // Consistent! +# 200|-> return Opts; +# 201| } +# 202| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/CodeComplete.cpp:2191:5: var_decl: Declaring variable "Item". +llvm-project-19.0.0.src/clang-tools-extra/clangd/CodeComplete.cpp:2197:5: uninit_use_in_call: Using uninitialized value "Item". Field "Item.Includes.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 2195| Item.CompletionTokenRange = CompletionRange; +# 2196| Item.Origin = SymbolOrigin::AST; +# 2197|-> Result.Completions.push_back(Item); +# 2198| } +# 2199| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/CompileCommands.cpp:190:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/CompileCommands.cpp:194:3: uninit_use: Using uninitialized value "Result". Field "Result.SystemIncludeExtractor.StorageUnion" is uninitialized. +# 192| Result.ResourceDir = detectStandardResourceDir(); +# 193| Result.Sysroot = detectSysroot(); +# 194|-> return Result; +# 195| } +# 196| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Compiler.cpp:163:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang-tools-extra/clangd/Compiler.cpp:163:3: leaked_storage: Ignoring storage allocated by "Buffer.release()" leaks it. +# 161| // RemappedFileBuffers will handle the lifetime of the Buffer pointer, +# 162| // release it. +# 163|-> Buffer.release(); +# 164| return Clang; +# 165| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:160:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:164:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 162| for (const auto &Elem : Decls) +# 163| Result[Elem.second.second] = {Elem.first, Elem.second.first}; +# 164|-> return Result; +# 165| } +# 166| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:584:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:589:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 587| Result.push_back(Entry.first); +# 588| } +# 589|-> return Result; +# 590| } +# 591| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:605:3: var_decl: Declaring variable "Targets". +llvm-project-19.0.0.src/clang-tools-extra/clangd/FindTarget.cpp:621:3: uninit_use: Using uninitialized value "Targets". Field "Targets.InlineElts" is uninitialized. +# 619| Targets.insert(Targets.end(), TemplatePatterns.begin(), +# 620| TemplatePatterns.end()); +# 621|-> return Targets; +# 622| } +# 623| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:486:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:501:7: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp:501:7: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 499| Queue.pop_front(); +# 500| +# 501|-> Lock.unlock(); +# 502| { +# 503| WithContext WithCtx(std::move(ActiveTask->Ctx)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:172:3: var_decl: Declaring variable "Headers". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:175:3: uninit_use: Using uninitialized value "Headers". Field "Headers.InlineElts" is uninitialized. +# 173| for (const auto &Include : Includes) +# 174| Headers.push_back({Include.IncludeHeader, Include.supportedDirectives()}); +# 175|-> return Headers; +# 176| } +# 177| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:257:3: var_decl: Declaring variable "Includes". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Headers.cpp:260:3: uninit_use: Using uninitialized value "Includes". Field "Includes.InlineElts" is uninitialized. +# 258| for (auto Idx : MainFileIncludesBySpelling.lookup(Spelling)) +# 259| Includes.push_back(&MainFileIncludes[Idx]); +# 260|-> return Includes; +# 261| } +# 262| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/IncludeCleaner.cpp:257:3: var_decl: Declaring variable "FixAll". +llvm-project-19.0.0.src/clang-tools-extra/clangd/IncludeCleaner.cpp:264:3: uninit_use: Using uninitialized value "FixAll". Field "FixAll.Edits.InlineElts" is uninitialized. +# 262| for (const auto &F : AddAllMissing.Edits) +# 263| FixAll.Edits.push_back(F); +# 264|-> return FixAll; +# 265| } +# 266| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/InlayHints.cpp:897:5: var_decl: Declaring variable "ParameterNames". +llvm-project-19.0.0.src/clang-tools-extra/clangd/InlayHints.cpp:922:5: uninit_use: Using uninitialized value "ParameterNames". Field "ParameterNames.InlineElts" is uninitialized. +# 920| stripLeadingUnderscores(Name); +# 921| +# 922|-> return ParameterNames; +# 923| } +# 924| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:112:5: var_decl: Declaring variable "Out". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:114:7: uninit_use: Using uninitialized value "Out". Field "Out.InlineElts" is uninitialized. +# 112| llvm::SmallVector> Out; +# 113| if (Claim.empty()) +# 114|-> return Out; +# 115| +# 116| // General case: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:112:5: var_decl: Declaring variable "Out". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:132:7: uninit_use: Using uninitialized value "Out". Field "Out.InlineElts" is uninitialized. +# 130| } +# 131| if (Overlap.first == Overlap.second) +# 132|-> return Out; +# 133| +# 134| // First, copy all overlapping ranges into the output. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:112:5: var_decl: Declaring variable "Out". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:157:5: uninit_use: Using uninitialized value "Out". Field "Out.InlineElts" is uninitialized. +# 155| UnclaimedRanges.insert(RemainingTail); +# 156| +# 157|-> return Out; +# 158| } +# 159| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:998:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:1010:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1008| Result.append(" …"); +# 1009| } +# 1010|-> return Result; +# 1011| } +# 1012| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:1041:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/Selection.cpp:1052:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1050| if (Result.empty()) +# 1051| Result.emplace_back(Offset, Offset); +# 1052|-> return Result; +# 1053| } +# 1054| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:159:5: extract: Calling "get" which extracts wrapped state from "Tail->parent". +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:159:5: assign: Assigning: "Tail" = "Tail->parent.get()". +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:158:5: invalidate: Calling "operator =" invalidates the internal representation of "Tail->parent". +llvm-project-19.0.0.src/clang-tools-extra/clangd/SemanticSelection.cpp:159:5: use_after_free: Using invalidated internal representation of "Tail->parent". +# 157| llvm::MutableArrayRef(Ranges.data(), Ranges.size()).drop_front()) { +# 158| Tail->parent = std::make_unique(); +# 159|-> Tail = Tail->parent.get(); +# 160| Tail->range = std::move(Range); +# 161| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/TUScheduler.cpp:170:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/TUScheduler.cpp:180:5: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/TUScheduler.cpp:180:5: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 178| LRU.pop_back(); +# 179| // Run the expensive destructor outside the lock. +# 180|-> Lock.unlock(); +# 181| ForCleanup.reset(); +# 182| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp:33:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/clang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp:38:3: uninit_use_in_call: Using uninitialized value "Opts.ClangTidyProvider". Field "Opts.ClangTidyProvider.callable" is uninitialized when calling "ClangdLSPServer". +# 36| +# 37| // Initialize and run ClangdLSPServer. +# 38|-> ClangdLSPServer LSPServer(*Transport, FS, Opts); +# 39| LSPServer.run(); +# 40| return 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/BackgroundQueue.cpp:48:7: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/BackgroundQueue.cpp:55:11: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/BackgroundQueue.cpp:55:11: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 53| Stat.LastIdle = Stat.Completed; +# 54| if (OnIdle) { +# 55|-> Lock.unlock(); +# 56| OnIdle(); +# 57| Lock.lock(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/StdLib.cpp:214:3: var_decl: Declaring variable "Symbols". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/StdLib.cpp:224:5: uninit_use: Using uninitialized value "Symbols". Field "Symbols.Arena.Slabs.InlineElts" is uninitialized. +# 222| if (!Clang) { +# 223| elog("Standard Library Index: Couldn't build compiler instance"); +# 224|-> return Symbols; +# 225| } +# 226| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:216:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:219:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 217| for (auto &H : Headers) +# 218| Result.emplace_back(H.IncludeHeader, H.References, H.SupportedDirectives); +# 219|-> return Result; +# 220| } +# 221| llvm::SmallVector Headers; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:373:5: var_decl: Declaring variable "Digest" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/YAMLSerialization.cpp:380:5: uninit_use: Using uninitialized value "Digest". +# 378| I.setError(std::string("Bad hex file digest: ") + HexString); +# 379| } +# 380|-> return Digest; +# 381| } +# 382| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp:30:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexLocation[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexLocation[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| namespace { +# 29| +# 30|-> llvm::cl::opt IndexLocation( +# 31| llvm::cl::desc(""), +# 32| llvm::cl::Positional); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp:35:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::ExecCommand[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ExecCommand[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| llvm::cl::opt +# 35|-> ExecCommand("c", llvm::cl::desc("Command to execute and then exit.")); +# 36| +# 37| llvm::cl::opt ProjectRoot( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp:37:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::ProjectRoot[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ProjectRoot[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| ExecCommand("c", llvm::cl::desc("Command to execute and then exit.")); +# 36| +# 37|-> llvm::cl::opt ProjectRoot( +# 38| "project-root", +# 39| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "Allocator" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "fuzzer::TPC" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:34:5: constructor_uses_global_object: The constructor of global object "clang::clangd::::Format" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Format" might be created before "scudo::RegionPageMap::Buffers" is available. +# 32| +# 33| static llvm::cl::opt +# 34|-> Format("format", llvm::cl::desc("Format of the index to be written"), +# 35| llvm::cl::values(clEnumValN(IndexFileFormat::YAML, "yaml", +# 36| "human-readable YAML format"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/indexer/IndexerMain.cpp:41:36: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| llvm::cl::init(IndexFileFormat::RIFF)); +# 40| +# 41|-> static llvm::cl::list QueryDriverGlobs{ +# 42| "query-driver", +# 43| llvm::cl::desc( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/refactor/tweaks/ObjCMemberwiseInitializer.cpp:104:3: var_decl: Declaring variable "Params". +llvm-project-19.0.0.src/clang-tools-extra/clangd/refactor/tweaks/ObjCMemberwiseInitializer.cpp:120:3: uninit_use: Using uninitialized value "Params". Field "Params.InlineElts" is uninitialized. +# 118| Params.push_back(P); +# 119| } +# 120|-> return Params; +# 121| } +# 122| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/support/Threading.cpp:66:3: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/support/Threading.cpp:68:3: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/support/Threading.cpp:68:3: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 66| std::unique_lock Lock(Mutex); +# 67| ++FreeSlots; +# 68|-> Lock.unlock(); +# 69| +# 70| SlotsChanged.notify_one(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:86:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckTidyTime[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckTidyTime[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| // These will never be shown in --help, ClangdMain doesn't list the category. +# 86|-> llvm::cl::opt CheckTidyTime{ +# 87| "check-tidy-time", +# 88| llvm::cl::desc("Print the overhead of checks matching this glob"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:90:28: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFileLines[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFileLines[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| llvm::cl::desc("Print the overhead of checks matching this glob"), +# 89| llvm::cl::init("")}; +# 90|-> llvm::cl::opt CheckFileLines{ +# 91| "check-lines", +# 92| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:98:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| "to one line. Default is testing entire file."), +# 97| llvm::cl::init("")}; +# 98|-> llvm::cl::opt CheckLocations{ +# 99| "check-locations", +# 100| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:104:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckCompletion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckCompletion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| "Somewhat slow."), +# 103| llvm::cl::init(true)}; +# 104|-> llvm::cl::opt CheckCompletion{ +# 105| "check-completion", +# 106| llvm::cl::desc("Run code-completion at each point (slow)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/Check.cpp:108:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckWarnings" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckWarnings" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| llvm::cl::desc("Run code-completion at each point (slow)"), +# 107| llvm::cl::init(false)}; +# 108|-> llvm::cl::opt CheckWarnings{ +# 109| "check-warnings", +# 110| llvm::cl::desc("Print warnings as well as errors"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "Allocator" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "GlobalParser" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "fuzzer::TPC" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:85:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommands" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommands" might be created before "scudo::RegionPageMap::Buffers" is available. +# 83| // All flags must be placed in a category, or they will be shown neither in +# 84| // --help, nor --help-hidden! +# 85|-> OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "Allocator" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "GlobalParser" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "fuzzer::TPC" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:86:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Features" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Features" might be created before "scudo::RegionPageMap::Buffers" is available. +# 84| // --help, nor --help-hidden! +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86|-> OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "Allocator" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "GlobalParser" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "fuzzer::TPC" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:87:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Misc" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Misc" might be created before "scudo::RegionPageMap::Buffers" is available. +# 85| OptionCategory CompileCommands("clangd compilation flags options"); +# 86| OptionCategory Features("clangd feature options"); +# 87|-> OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "Allocator" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "GlobalParser" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "fuzzer::TPC" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:88:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Protocol" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Protocol" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| OptionCategory Features("clangd feature options"); +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88|-> OptionCategory Protocol("clangd protocol and logging options"); +# 89| OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "Allocator" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "GlobalParser" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "fuzzer::TPC" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:89:16: constructor_uses_global_object: The constructor of global object "clang::clangd::::Retired" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Retired" might be created before "scudo::RegionPageMap::Buffers" is available. +# 87| OptionCategory Misc("clangd miscellaneous options"); +# 88| OptionCategory Protocol("clangd protocol and logging options"); +# 89|-> OptionCategory Retired("clangd flags no longer in use"); +# 90| const OptionCategory *ClangdCategories[] = {&Features, &Protocol, +# 91| &CompileCommands, &Misc, &Retired}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "Allocator" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "fuzzer::TPC" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:106:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileArgsFrom" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileArgsFrom" might be created before "scudo::RegionPageMap::Buffers" is available. +# 104| +# 105| enum CompileArgsFrom { LSPCompileArgs, FilesystemCompileArgs }; +# 106|-> opt CompileArgsFrom{ +# 107| "compile_args_from", +# 108| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "Allocator" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:120:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompileCommandsDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompileCommandsDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 118| }; +# 119| +# 120|-> opt CompileCommandsDir{ +# 121| "compile-commands-dir", +# 122| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "Allocator" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:128:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ResourceDir[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ResourceDir[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 126| }; +# 127| +# 128|-> opt ResourceDir{ +# 129| "resource-dir", +# 130| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "Allocator" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:136:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::QueryDriverGlobs[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::QueryDriverGlobs[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 134| }; +# 135| +# 136|-> list QueryDriverGlobs{ +# 137| "query-driver", +# 138| cat(CompileCommands), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "Allocator" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "fuzzer::TPC" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:149:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::AllScopesCompletion" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::AllScopesCompletion" might be created before "scudo::RegionPageMap::Buffers" is available. +# 147| // FIXME: Flags are the wrong mechanism for user preferences. +# 148| // We should probably read a dotfile or similar. +# 149|-> opt AllScopesCompletion{ +# 150| "all-scopes-completion", +# 151| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "Allocator" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "fuzzer::TPC" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:159:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ShowOrigins" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ShowOrigins" might be created before "scudo::RegionPageMap::Buffers" is available. +# 157| }; +# 158| +# 159|-> opt ShowOrigins{ +# 160| "debug-origin", +# 161| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "Allocator" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "fuzzer::TPC" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:167:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableBackgroundIndex" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableBackgroundIndex" might be created before "scudo::RegionPageMap::Buffers" is available. +# 165| }; +# 166| +# 167|-> opt EnableBackgroundIndex{ +# 168| "background-index", +# 169| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "Allocator" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "fuzzer::TPC" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:174:27: constructor_uses_global_object: The constructor of global object "clang::clangd::::BackgroundIndexPriority" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::BackgroundIndexPriority" might be created before "scudo::RegionPageMap::Buffers" is available. +# 172| }; +# 173| +# 174|-> opt BackgroundIndexPriority{ +# 175| "background-index-priority", +# 176| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "Allocator" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "fuzzer::TPC" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:189:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableClangTidy" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableClangTidy" might be created before "scudo::RegionPageMap::Buffers" is available. +# 187| }; +# 188| +# 189|-> opt EnableClangTidy{ +# 190| "clang-tidy", +# 191| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "Allocator" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "fuzzer::TPC" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:196:47: constructor_uses_global_object: The constructor of global object "clang::clangd::::CodeCompletionParse" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CodeCompletionParse" might be created before "scudo::RegionPageMap::Buffers" is available. +# 194| }; +# 195| +# 196|-> opt CodeCompletionParse{ +# 197| "completion-parse", +# 198| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "Allocator" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "fuzzer::TPC" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:211:54: constructor_uses_global_object: The constructor of global object "clang::clangd::::RankingModel" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RankingModel" might be created before "scudo::RegionPageMap::Buffers" is available. +# 209| }; +# 210| +# 211|-> opt RankingModel{ +# 212| "ranking-model", +# 213| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "Allocator" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "fuzzer::TPC" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:225:26: constructor_uses_global_object: The constructor of global object "clang::clangd::::CompletionStyle" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CompletionStyle" might be created before "scudo::RegionPageMap::Buffers" is available. +# 223| // FIXME: also support "plain" style where signatures are always omitted. +# 224| enum CompletionStyleFlag { Detailed, Bundled }; +# 225|-> opt CompletionStyle{ +# 226| "completion-style", +# 227| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "Allocator" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:237:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::FallbackStyle[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::FallbackStyle[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 235| }; +# 236| +# 237|-> opt FallbackStyle{ +# 238| "fallback-style", +# 239| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "Allocator" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "fuzzer::TPC" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:245:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableFunctionArgSnippets" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableFunctionArgSnippets" might be created before "scudo::RegionPageMap::Buffers" is available. +# 243| }; +# 244| +# 245|-> opt EnableFunctionArgSnippets{ +# 246| "function-arg-placeholders", +# 247| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "Allocator" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "fuzzer::TPC" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:254:44: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertion" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertion" might be created before "scudo::RegionPageMap::Buffers" is available. +# 252| }; +# 253| +# 254|-> opt HeaderInsertion{ +# 255| "header-insertion", +# 256| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "Allocator" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "fuzzer::TPC" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:270:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::ImportInsertions" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ImportInsertions" might be created before "scudo::RegionPageMap::Buffers" is available. +# 268| }; +# 269| +# 270|-> opt ImportInsertions{ +# 271| "import-insertions", +# 272| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "Allocator" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "fuzzer::TPC" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:278:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HeaderInsertionDecorators" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HeaderInsertionDecorators" might be created before "scudo::RegionPageMap::Buffers" is available. +# 276| }; +# 277| +# 278|-> opt HeaderInsertionDecorators{ +# 279| "header-insertion-decorators", +# 280| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "Allocator" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "fuzzer::TPC" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:287:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::HiddenFeatures" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::HiddenFeatures" might be created before "scudo::RegionPageMap::Buffers" is available. +# 285| }; +# 286| +# 287|-> opt HiddenFeatures{ +# 288| "hidden-features", +# 289| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "Allocator" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "fuzzer::TPC" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:295:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IncludeIneligibleResults" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IncludeIneligibleResults" might be created before "scudo::RegionPageMap::Buffers" is available. +# 293| }; +# 294| +# 295|-> opt IncludeIneligibleResults{ +# 296| "include-ineligible-results", +# 297| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "Allocator" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "fuzzer::TPC" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:315:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::LimitResults" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LimitResults" might be created before "scudo::RegionPageMap::Buffers" is available. +# 313| RetiredFlag IncludeCleanerStdlib("include-cleaner-stdlib"); +# 314| +# 315|-> opt LimitResults{ +# 316| "limit-results", +# 317| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "Allocator" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "fuzzer::TPC" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:323:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::ReferencesLimit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ReferencesLimit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 321| }; +# 322| +# 323|-> opt ReferencesLimit{ +# 324| "limit-references", +# 325| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "Allocator" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "fuzzer::TPC" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:331:10: constructor_uses_global_object: The constructor of global object "clang::clangd::::RenameFileLimit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::RenameFileLimit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 329| }; +# 330| +# 331|-> opt RenameFileLimit{ +# 332| "rename-file-limit", +# 333| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "Allocator" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:339:19: constructor_uses_global_object: The constructor of global object "clang::clangd::::TweakList[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::TweakList[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 337| }; +# 338| +# 339|-> list TweakList{ +# 340| "tweaks", +# 341| cat(Features), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "Allocator" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "fuzzer::TPC" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:347:15: constructor_uses_global_object: The constructor of global object "clang::clangd::::WorkerThreadsCount" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::WorkerThreadsCount" might be created before "scudo::RegionPageMap::Buffers" is available. +# 345| }; +# 346| +# 347|-> opt WorkerThreadsCount{ +# 348| "j", +# 349| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "Allocator" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:355:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::IndexFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::IndexFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 353| }; +# 354| +# 355|-> opt IndexFile{ +# 356| "index-file", +# 357| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "Allocator" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "fuzzer::TPC" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:367:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Test" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Test" might be created before "scudo::RegionPageMap::Buffers" is available. +# 365| }; +# 366| +# 367|-> opt Test{ +# 368| "lit-test", +# 369| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "Allocator" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "fuzzer::TPC" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:378:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CrashPragmas" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CrashPragmas" might be created before "scudo::RegionPageMap::Buffers" is available. +# 376| }; +# 377| +# 378|-> opt CrashPragmas{ +# 379| "crash-pragmas", +# 380| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "Allocator" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:386:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::CheckFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::CheckFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 384| }; +# 385| +# 386|-> opt CheckFile{ +# 387| "check", +# 388| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "Allocator" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "fuzzer::TPC" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:397:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::PCHStorage" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PCHStorage" might be created before "scudo::RegionPageMap::Buffers" is available. +# 395| +# 396| enum PCHStorageFlag { Disk, Memory }; +# 397|-> opt PCHStorage{ +# 398| "pch-storage", +# 399| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "Allocator" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "fuzzer::TPC" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:408:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::Sync" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::Sync" might be created before "scudo::RegionPageMap::Buffers" is available. +# 406| }; +# 407| +# 408|-> opt Sync{ +# 409| "sync", +# 410| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "Allocator" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "fuzzer::TPC" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:417:22: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputStyle" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputStyle" might be created before "scudo::RegionPageMap::Buffers" is available. +# 415| }; +# 416| +# 417|-> opt InputStyle{ +# 418| "input-style", +# 419| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "Allocator" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "fuzzer::TPC" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:429:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableTestScheme" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableTestScheme" might be created before "scudo::RegionPageMap::Buffers" is available. +# 427| }; +# 428| +# 429|-> opt EnableTestScheme{ +# 430| "enable-test-uri-scheme", +# 431| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "Allocator" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:437:18: constructor_uses_global_object: The constructor of global object "clang::clangd::::PathMappingsArg[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PathMappingsArg[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 435| }; +# 436| +# 437|-> opt PathMappingsArg{ +# 438| "path-mappings", +# 439| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "Allocator" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:449:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::InputMirrorFile[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::InputMirrorFile[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 447| }; +# 448| +# 449|-> opt InputMirrorFile{ +# 450| "input-mirror-file", +# 451| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "Allocator" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "fuzzer::TPC" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:457:20: constructor_uses_global_object: The constructor of global object "clang::clangd::::LogLevel" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::LogLevel" might be created before "scudo::RegionPageMap::Buffers" is available. +# 455| }; +# 456| +# 457|-> opt LogLevel{ +# 458| "log", +# 459| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "Allocator" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "fuzzer::TPC" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:467:21: constructor_uses_global_object: The constructor of global object "clang::clangd::::ForceOffsetEncoding" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::ForceOffsetEncoding" might be created before "scudo::RegionPageMap::Buffers" is available. +# 465| }; +# 466| +# 467|-> opt ForceOffsetEncoding{ +# 468| "offset-encoding", +# 469| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "Allocator" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "fuzzer::TPC" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:481:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PrettyPrint" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PrettyPrint" might be created before "scudo::RegionPageMap::Buffers" is available. +# 479| }; +# 480| +# 481|-> opt PrettyPrint{ +# 482| "pretty", +# 483| cat(Protocol), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "Allocator" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "fuzzer::TPC" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:488:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableConfig" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableConfig" might be created before "scudo::RegionPageMap::Buffers" is available. +# 486| }; +# 487| +# 488|-> opt EnableConfig{ +# 489| "enable-config", +# 490| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "Allocator" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "fuzzer::TPC" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:502:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::UseDirtyHeaders" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::UseDirtyHeaders" might be created before "scudo::RegionPageMap::Buffers" is available. +# 500| }; +# 501| +# 502|-> opt UseDirtyHeaders{"use-dirty-headers", cat(Misc), +# 503| desc("Use files open in the editor when parsing " +# 504| "headers instead of reading from the disk"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "Allocator" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "fuzzer::TPC" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:508:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::PreambleParseForwardingFunctions" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::PreambleParseForwardingFunctions" might be created before "scudo::RegionPageMap::Buffers" is available. +# 506| init(ClangdServer::Options().UseDirtyHeaders)}; +# 507| +# 508|-> opt PreambleParseForwardingFunctions{ +# 509| "parse-forwarding-functions", +# 510| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "Allocator" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "fuzzer::TPC" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/tool/ClangdMain.cpp:517:11: constructor_uses_global_object: The constructor of global object "clang::clangd::::EnableMallocTrim" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::::EnableMallocTrim" might be created before "scudo::RegionPageMap::Buffers" is available. +# 515| +# 516| #if defined(__GLIBC__) && CLANGD_MALLOC_TRIM +# 517|-> opt EnableMallocTrim{ +# 518| "malloc-trim", +# 519| cat(Misc), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:453:5: var_decl: Declaring variable "TargetDecl" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:469:9: uninit_use_in_call: Using uninitialized value "TargetDecl" when calling "getQualification". +# 467| const Decl *D = InsertionPoints[I]; +# 468| if (Case.VisibleNamespaces.empty()) { +# 469|-> EXPECT_EQ(getQualification(AST.getASTContext(), +# 470| D->getLexicalDeclContext(), D->getBeginLoc(), +# 471| TargetDecl), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:453:5: var_decl: Declaring variable "TargetDecl" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ASTTests.cpp:474:9: uninit_use_in_call: Using uninitialized value "TargetDecl" when calling "getQualification". +# 472| Case.Qualifications[I]); +# 473| } else { +# 474|-> EXPECT_EQ(getQualification(AST.getASTContext(), +# 475| D->getLexicalDeclContext(), TargetDecl, +# 476| Case.VisibleNamespaces), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:94:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_NoCrashOnErrorFile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_NoCrashOnErrorFile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 92| }; +# 93| +# 94|-> TEST_F(BackgroundIndexTest, NoCrashOnErrorFile) { +# 95| MockFS FS; +# 96| FS.Files[testPath("root/A.cc")] = "error file"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:113:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_Config_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_Config_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 111| } +# 112| +# 113|-> TEST_F(BackgroundIndexTest, Config) { +# 114| MockFS FS; +# 115| // Set up two identical TUs, foo and bar. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:165:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_IndexTwoFiles_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_IndexTwoFiles_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 163| } +# 164| +# 165|-> TEST_F(BackgroundIndexTest, IndexTwoFiles) { +# 166| MockFS FS; +# 167| // a.h yields different symbols when included by A.cc vs B.cc. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:236:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_MainFileRefs_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_MainFileRefs_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 234| } +# 235| +# 236|-> TEST_F(BackgroundIndexTest, MainFileRefs) { +# 237| MockFS FS; +# 238| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:265:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_ShardStorageTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_ShardStorageTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 263| } +# 264| +# 265|-> TEST_F(BackgroundIndexTest, ShardStorageTest) { +# 266| MockFS FS; +# 267| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:336:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_DirectIncludesTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_DirectIncludesTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 334| } +# 335| +# 336|-> TEST_F(BackgroundIndexTest, DirectIncludesTest) { +# 337| MockFS FS; +# 338| FS.Files[testPath("root/B.h")] = ""; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:387:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_ShardStorageLoad_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_ShardStorageLoad_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 385| } +# 386| +# 387|-> TEST_F(BackgroundIndexTest, ShardStorageLoad) { +# 388| MockFS FS; +# 389| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:458:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_ShardStorageEmptyFile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_ShardStorageEmptyFile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 456| } +# 457| +# 458|-> TEST_F(BackgroundIndexTest, ShardStorageEmptyFile) { +# 459| MockFS FS; +# 460| FS.Files[testPath("root/A.h")] = R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:526:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_NoDotsInAbsPath_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_NoDotsInAbsPath_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 524| } +# 525| +# 526|-> TEST_F(BackgroundIndexTest, NoDotsInAbsPath) { +# 527| MockFS FS; +# 528| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:557:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_UncompilableFiles_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_UncompilableFiles_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 555| } +# 556| +# 557|-> TEST_F(BackgroundIndexTest, UncompilableFiles) { +# 558| MockFS FS; +# 559| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:621:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_CmdLineHash_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_CmdLineHash_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 619| } +# 620| +# 621|-> TEST_F(BackgroundIndexTest, CmdLineHash) { +# 622| MockFS FS; +# 623| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:649:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexTest_Reindex_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexTest_Reindex_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 647| } +# 648| +# 649|-> TEST_F(BackgroundIndexTest, Reindex) { +# 650| MockFS FS; +# 651| llvm::StringMap Storage; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:724:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexRebuilderTest_IndexingTUs_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexRebuilderTest_IndexingTUs_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 722| }; +# 723| +# 724|-> TEST_F(BackgroundIndexRebuilderTest, IndexingTUs) { +# 725| for (unsigned I = 0; I < Rebuilder.TUsBeforeFirstBuild - 1; ++I) +# 726| EXPECT_FALSE(checkRebuild([&] { Rebuilder.indexedTU(); })); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:733:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndexRebuilderTest_LoadingShards_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndexRebuilderTest_LoadingShards_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 731| } +# 732| +# 733|-> TEST_F(BackgroundIndexRebuilderTest, LoadingShards) { +# 734| Rebuilder.startLoading(); +# 735| Rebuilder.loadedShard(10); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:760:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Priority_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Priority_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 758| } +# 759| +# 760|-> TEST(BackgroundQueueTest, Priority) { +# 761| // Create high and low priority tasks. +# 762| // Once a bunch of high priority tasks have run, the queue is stopped. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:792:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Boost_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Boost_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 790| } +# 791| +# 792|-> TEST(BackgroundQueueTest, Boost) { +# 793| std::string Sequence; +# 794| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:827:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Duplicates_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Duplicates_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 825| } +# 826| +# 827|-> TEST(BackgroundQueueTest, Duplicates) { +# 828| std::string Sequence; +# 829| BackgroundQueue::Task A([&] { Sequence.push_back('A'); }); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:852:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundQueueTest_Progress_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundQueueTest_Progress_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 850| } +# 851| +# 852|-> TEST(BackgroundQueueTest, Progress) { +# 853| using testing::AnyOf; +# 854| BackgroundQueue::Stats S; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp:900:1: constructor_uses_global_object: The constructor of global object "clang::clangd::BackgroundIndex_Profile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::BackgroundIndex_Profile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 898| } +# 899| +# 900|-> TEST(BackgroundIndex, Profile) { +# 901| MockFS FS; +# 902| MockCompilationDatabase CDB; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp:294:3: extract: Calling "get" which extracts wrapped state from local "CfgProvider". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp:294:3: escape: The internal representation of local "CfgProvider" escapes into "this->Opts.ConfigProvider", but is destroyed when it exits scope. +# 292| auto CfgProvider = +# 293| config::Provider::fromAncestorRelativeYAMLFiles(".clangd", FS); +# 294|-> Opts.ConfigProvider = CfgProvider.get(); +# 295| +# 296| // Map bar.cpp to a different compilation database which defines FOO->BAR. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:298:3: var_decl: Declaring variable "FS". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:323:3: uninit_use_in_call: Using uninitialized value "FS.Got" when calling "Compare". +# 321| } +# 322| ASSERT_TRUE(Server.blockUntilIdleForTest()); +# 323|-> EXPECT_EQ(FS.Got, 42); +# 324| EXPECT_EQ(Callbacks.Got, 42); +# 325| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:307:3: var_decl: Declaring variable "Callbacks". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ClangdTests.cpp:324:3: uninit_use_in_call: Using uninitialized value "Callbacks.Got" when calling "Compare". +# 322| ASSERT_TRUE(Server.blockUntilIdleForTest()); +# 323| EXPECT_EQ(FS.Got, 42); +# 324|-> EXPECT_EQ(Callbacks.Got, 42); +# 325| } +# 326| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/DecisionForestTests.cpp:8:1: constructor_uses_global_object: The constructor of global object "clang::clangd::DecisionForestRuntime_Evaluate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::DecisionForestRuntime_Evaluate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 6| namespace clangd { +# 7| +# 8|-> TEST(DecisionForestRuntime, Evaluate) { +# 9| using Example = ::ns1::ns2::test::Example; +# 10| using Cat = ::ns1::ns2::TestEnum; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp:1150:3: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp:1152:3: uninit_use_in_call: Using uninitialized value "F". Field "F.Edits.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1150| clangd::Fix F; +# 1151| F.Message = "do something"; +# 1152|-> D.Fixes.push_back(F); +# 1153| +# 1154| // Diagnostics should turn into these: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FileIndexTests.cpp:77:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FileIndexTests.cpp:80:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 78| Sym.ID = SymbolID(ID); +# 79| Sym.Name = ID; +# 80|-> return Sym; +# 81| } +# 82| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FindTargetTests.cpp:1281:5: var_decl: Declaring variable "TU". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FindTargetTests.cpp:1289:5: uninit_use: Using uninitialized value "TU". Field "TU.ClangTidyProvider.StorageUnion" is uninitialized. +# 1287| TU.ExtraArgs.push_back("-xobjective-c++"); +# 1288| +# 1289|-> return TU; +# 1290| } +# 1291| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FuzzyMatchTests.cpp:202:5: var_decl: Declaring variable "LastMatch" without initializer. +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/FuzzyMatchTests.cpp:221:11: uninit_use: Using uninitialized value "LastMatch". +# 219| Ok = false; +# 220| } else if (LastScore && *LastScore < *Score) { +# 221|-> *OS << "\nRanks '" << Str.Word << "'=" << *Score << " above '" +# 222| << LastMatch->Word << "'=" << *LastScore << "\n" +# 223| << Info.str(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp:517:1: constructor_uses_global_object: The constructor of global object "clang::clangd::DirectoryBasedGlobalCompilationDatabaseCacheTest_Cacheable_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::DirectoryBasedGlobalCompilationDatabaseCacheTest_Cacheable_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 515| } +# 516| +# 517|-> TEST_F(DirectoryBasedGlobalCompilationDatabaseCacheTest, Cacheable) { +# 518| MockFS FS; +# 519| auto Stale = std::chrono::steady_clock::now() - std::chrono::minutes(1); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:344:3: var_decl: Declaring variable "Inc". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:347:3: uninit_use_in_call: Using uninitialized value "Inc.Directive" when calling "Inclusion". +# 345| Inc.Written = "\"bar.h\""; +# 346| Inc.Resolved = ""; +# 347|-> EXPECT_EQ(calculate(testPath("sub/bar.h"), "\"bar.h\"", {Inc}), ""); +# 348| EXPECT_EQ(calculate("\"x.h\"", "\"bar.h\"", {Inc}), ""); +# 349| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:352:3: var_decl: Declaring variable "Inc". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/HeadersTests.cpp:355:3: uninit_use_in_call: Using uninitialized value "Inc.Directive" when calling "Inclusion". +# 353| Inc.Written = "fake-bar.h"; +# 354| Inc.Resolved = testPath("sub/bar.h"); +# 355|-> EXPECT_EQ(calculate(Inc.Resolved, "", {Inc}), ""); +# 356| // Do not insert preferred. +# 357| EXPECT_EQ(calculate(Inc.Resolved, "\"BAR.h\"", {Inc}), ""); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:528:3: move: "StaticRefs" is moved (indicated by "std::move(StaticRefs)"). +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:531:3: use_after_move: "StaticRefs" is used after it has been already moved. +# 529| std::make_pair(std::move(StaticSymbols), std::move(StaticRefs)); +# 530| llvm::StringSet<> StaticFiles = {"unittest:///foo.cc", "unittest:///bar.cc"}; +# 531|-> MemIndex StaticIndex( +# 532| std::move(StaticData.first), std::move(StaticData.second), RelationSlab(), +# 533| std::move(StaticFiles), IndexContents::References, std::move(StaticData), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:528:3: move: "StaticSymbols" is moved (indicated by "std::move(StaticSymbols)"). +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/IndexTests.cpp:531:3: use_after_move: "StaticSymbols" is used after it has been already moved. +# 529| std::make_pair(std::move(StaticSymbols), std::move(StaticRefs)); +# 530| llvm::StringSet<> StaticFiles = {"unittest:///foo.cc", "unittest:///bar.cc"}; +# 531|-> MemIndex StaticIndex( +# 532| std::move(StaticData.first), std::move(StaticData.second), RelationSlab(), +# 533| std::move(StaticFiles), IndexContents::References, std::move(StaticData), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/LSPClient.cpp:156:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/LSPClient.cpp:163:7: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/LSPClient.cpp:163:7: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 161| auto Action = std::move(Actions.front()); +# 162| Actions.pop(); +# 163|-> Lock.unlock(); +# 164| Action(H); +# 165| Lock.lock(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ProjectAwareIndexTests.cpp:35:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ProjectAware_Test_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ProjectAware_Test_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 33| } +# 34| +# 35|-> TEST(ProjectAware, Test) { +# 36| IndexFactory Gen = [](const Config::ExternalIndexSpec &, AsyncTaskRunner *) { +# 37| return createIndex(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/ProjectAwareIndexTests.cpp:55:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ProjectAware_CreatedOnce_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ProjectAware_CreatedOnce_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 53| } +# 54| +# 55|-> TEST(ProjectAware, CreatedOnce) { +# 56| unsigned InvocationCount = 0; +# 57| IndexFactory Gen = [&](const Config::ExternalIndexSpec &, AsyncTaskRunner *) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp:98:5: var_decl: Declaring variable "Inputs". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp:103:5: uninit_use: Using uninitialized value "Inputs". Field "Inputs.ClangTidyProvider.callable" is uninitialized. +# 101| Inputs.Contents = std::move(Contents); +# 102| Inputs.Opts = ParseOptions(); +# 103|-> return Inputs; +# 104| } +# 105| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:18:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:28:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 26| Sym.Scope = QName.substr(0, Pos + 2); +# 27| } +# 28|-> return Sym; +# 29| } +# 30| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:42:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:59:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 57| Sym.Origin = SymbolOrigin::Static; +# 58| Sym.Signature = Signature; +# 59|-> return Sym; +# 60| } +# 61| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:96:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestIndex.cpp:105:3: uninit_use: Using uninitialized value "Sym". Field "Sym.IncludeHeaders.InlineElts" is uninitialized. +# 103| Sym.Flags |= Symbol::IndexedForCodeCompletion; +# 104| Sym.Origin = SymbolOrigin::Static; +# 105|-> return Sym; +# 106| } +# 107| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:37:5: var_decl: Declaring variable "TU". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:39:5: uninit_use: Using uninitialized value "TU". Field "TU.ClangTidyProvider.StorageUnion" is uninitialized. +# 37| TestTU TU; +# 38| TU.Code = std::string(Code); +# 39|-> return TU; +# 40| } +# 41| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:43:5: var_decl: Declaring variable "TU". +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/TestTU.h:45:5: uninit_use: Using uninitialized value "TU". Field "TU.ClangTidyProvider.StorageUnion" is uninitialized. +# 43| TestTU TU; +# 44| TU.HeaderCode = std::string(HeaderCode); +# 45|-> return TU; +# 46| } +# 47| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ContextTests.cpp:16:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ContextTests_Simple_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ContextTests_Simple_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 14| namespace clangd { +# 15| +# 16|-> TEST(ContextTests, Simple) { +# 17| Key IntParam; +# 18| Key ExtraIntParam; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ContextTests.cpp:26:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ContextTests_MoveOps_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ContextTests_MoveOps_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 24| } +# 25| +# 26|-> TEST(ContextTests, MoveOps) { +# 27| Key> Param; +# 28| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ContextTests.cpp:36:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ContextTests_Builders_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ContextTests_Builders_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 34| } +# 35| +# 36|-> TEST(ContextTests, Builders) { +# 37| Key ParentParam; +# 38| Key ParentAndChildParam; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:20:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ThreadingTest_TaskRunner_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ThreadingTest_TaskRunner_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 18| class ThreadingTest : public ::testing::Test {}; +# 19| +# 20|-> TEST_F(ThreadingTest, TaskRunner) { +# 21| const int TasksCnt = 100; +# 22| // This should be const, but MSVC does not allow to use const vars in lambdas + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:67:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ThreadingTest_Memoize_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ThreadingTest_Memoize_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 65| } +# 66| +# 67|-> TEST_F(ThreadingTest, Memoize) { +# 68| const unsigned NumThreads = 5; +# 69| const unsigned NumKeys = 100; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::clangd::ThreadingTest_MemoizeDeterministic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::ThreadingTest_MemoizeDeterministic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST_F(ThreadingTest, MemoizeDeterministic) { +# 97| Memoize> Cache; +# 98| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/clangd/unittests/support/ThreadingTests.cpp:127:1: constructor_uses_global_object: The constructor of global object "clang::clangd::PeriodicThrottlerTest_Minimal_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::clangd::PeriodicThrottlerTest_Minimal_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 125| // It's hard to write a real test of this class, std::chrono is awkward to mock. +# 126| // But test some degenerate cases at least. +# 127|-> TEST(PeriodicThrottlerTest, Minimal) { +# 128| PeriodicThrottler Once(std::chrono::hours(24)); +# 129| EXPECT_TRUE(Once()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/FindHeaders.cpp:99:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/FindHeaders.cpp:111:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 109| if (!Results.empty()) +# 110| Results.front().Hint |= Hints::PreferredHeader; +# 111|-> return Results; +# 112| } +# 113| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Record.cpp:392:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Record.cpp:399:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 397| Results.push_back(*FE); +# 398| } +# 399|-> return Results; +# 400| } +# 401| llvm::SmallVector + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Types.cpp:157:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/lib/Types.cpp:177:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 175| } +# 176| } +# 177|-> return Result; +# 178| } +# 179| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "Allocator" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "GlobalParser" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "fuzzer::TPC" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:51:20: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IncludeCleaner" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IncludeCleaner" might be created before "scudo::RegionPageMap::Buffers" is available. +# 49| .trim(); +# 50| +# 51|-> cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53| cl::opt HTMLReportPath{ + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "Allocator" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:53:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::HTMLReportPath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 51| cl::OptionCategory IncludeCleaner("clang-include-cleaner"); +# 52| +# 53|-> cl::opt HTMLReportPath{ +# 54| "html", +# 55| cl::desc("Specify an output filename for an HTML report. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "Allocator" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:60:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::OnlyHeaders[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 58| }; +# 59| +# 60|-> cl::opt OnlyHeaders{ +# 61| "only-headers", +# 62| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "Allocator" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:68:22: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::IgnoreHeaders[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 66| }; +# 67| +# 68|-> cl::opt IgnoreHeaders{ +# 69| "ignore-headers", +# 70| cl::desc("A comma-separated list of regexes to match against suffix of a " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "Allocator" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "fuzzer::TPC" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:77:21: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Print" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Print" might be created before "scudo::RegionPageMap::Buffers" is available. +# 75| +# 76| enum class PrintStyle { Changes, Final }; +# 77|-> cl::opt Print{ +# 78| "print", +# 79| cl::values( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "Allocator" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "fuzzer::TPC" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:88:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Edit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Edit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| }; +# 87| +# 88|-> cl::opt Edit{ +# 89| "edit", +# 90| cl::desc("Apply edits to analyzed source files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "Allocator" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "fuzzer::TPC" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:94:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Insert" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Insert" might be created before "scudo::RegionPageMap::Buffers" is available. +# 92| }; +# 93| +# 94|-> cl::opt Insert{ +# 95| "insert", +# 96| cl::desc("Allow header insertions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "Allocator" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "fuzzer::TPC" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/include-cleaner/tool/IncludeCleaner.cpp:100:15: constructor_uses_global_object: The constructor of global object "clang::include_cleaner::::Remove" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::include_cleaner::::Remove" might be created before "scudo::RegionPageMap::Buffers" is available. +# 98| cl::cat(IncludeCleaner), +# 99| }; +# 100|-> cl::opt Remove{ +# 101| "remove", +# 102| cl::desc("Allow header removals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:265:5: constructor_uses_global_object: The constructor of global object "ListFileNames[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ListFileNames[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 263| // Option to specify a file name for a list of header files to check. +# 264| static cl::list +# 265|-> ListFileNames(cl::Positional, cl::value_desc("list"), +# 266| cl::desc(""), +# 267| cl::CommaSeparated); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:271:5: constructor_uses_global_object: The constructor of global object "CC1Arguments[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CC1Arguments[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 269| // Collect all other arguments, which will be passed to the front end. +# 270| static cl::list +# 271|-> CC1Arguments(cl::ConsumeAfter, +# 272| cl::desc("...")); +# 273| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:275:29: constructor_uses_global_object: The constructor of global object "HeaderPrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HeaderPrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 273| +# 274| // Option to specify a prefix to be prepended to the header names. +# 275|-> static cl::opt HeaderPrefix( +# 276| "prefix", cl::init(""), +# 277| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:284:29: constructor_uses_global_object: The constructor of global object "ModuleMapPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ModuleMapPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 282| // Option for assistant mode, telling modularize to output a module map +# 283| // based on the headers list, and where to put it. +# 284|-> static cl::opt ModuleMapPath( +# 285| "module-map-path", cl::init(""), +# 286| cl::desc("Turn on module map output and specify output path or file name." + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:292:29: constructor_uses_global_object: The constructor of global object "ProblemFilesList[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProblemFilesList[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 290| // Option to specify list of problem files for assistant. +# 291| // This will cause assistant to exclude these files. +# 292|-> static cl::opt ProblemFilesList( +# 293| "problem-files-list", cl::init(""), +# 294| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:300:1: constructor_uses_global_object: The constructor of global object "RootModule[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RootModule[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 298| // Option for assistant mode, telling modularize the name of the root module. +# 299| static cl::opt +# 300|-> RootModule("root-module", cl::init(""), +# 301| cl::desc("Specify the name of the root module.")); +# 302| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:308:1: constructor_uses_global_object: The constructor of global object "BlockCheckHeaderListOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockCheckHeaderListOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 306| // included inside blocks. +# 307| static cl::opt +# 308|-> BlockCheckHeaderListOnly("block-check-header-list-only", cl::init(false), +# 309| cl::desc("Only warn if #include directives are inside extern or namespace" +# 310| " blocks if the included header is in the header list.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:314:5: constructor_uses_global_object: The constructor of global object "IncludePaths[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IncludePaths[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 312| // Option for include paths for coverage check. +# 313| static cl::list +# 314|-> IncludePaths("I", cl::desc("Include path for coverage check."), +# 315| cl::value_desc("path")); +# 316| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:318:22: constructor_uses_global_object: The constructor of global object "NoCoverageCheck" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoCoverageCheck" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 316| +# 317| // Option for disabling the coverage check. +# 318|-> static cl::opt NoCoverageCheck("no-coverage-check", +# 319| cl::desc("Don't do the coverage check.")); +# 320| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:323:1: constructor_uses_global_object: The constructor of global object "CoverageCheckOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CoverageCheckOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 321| // Option for just doing the coverage check. +# 322| static cl::opt +# 323|-> CoverageCheckOnly("coverage-check-only", cl::init(false), +# 324| cl::desc("Only do the coverage check.")); +# 325| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/modularize/Modularize.cpp:328:1: constructor_uses_global_object: The constructor of global object "DisplayFileLists" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisplayFileLists" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 326| // Option for displaying lists of good, bad, and mixed files. +# 327| static cl::opt +# 328|-> DisplayFileLists("display-file-lists", cl::init(false), +# 329| cl::desc("Display lists of good files (no compile errors), problem files," +# 330| " and a combined list with problem files preceded by a '#'.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "Allocator" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "GlobalParser" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "fuzzer::TPC" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:57:27: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Cat" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Cat" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| namespace pp_trace { +# 56| +# 57|-> static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59| static cl::opt Callbacks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "Allocator" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:59:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::Callbacks[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::Callbacks[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 57| static cl::OptionCategory Cat("pp-trace options"); +# 58| +# 59|-> static cl::opt Callbacks( +# 60| "callbacks", cl::init("*"), +# 61| cl::desc("Comma-separated list of globs describing the list of callbacks " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "Allocator" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pp-trace/PPTrace.cpp:67:29: constructor_uses_global_object: The constructor of global object "clang::pp_trace::OutputFileName[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::pp_trace::OutputFileName[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 65| cl::cat(Cat)); +# 66| +# 67|-> static cl::opt OutputFileName( +# 68| "output", cl::init("-"), +# 69| cl::desc("Output trace to the given file name or '-' for stdout."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:37:18: constructor_uses_global_object: The constructor of global object "::Grammar[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Grammar[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| }; +# 36| +# 37|-> opt Grammar("grammar", desc("Parse a BNF grammar file."), +# 38| Required); +# 39| opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "Allocator" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "fuzzer::TPC" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:40:5: constructor_uses_global_object: The constructor of global object "::Emit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::Emit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 38| Required); +# 39| opt +# 40|-> Emit(desc("which information to emit:"), +# 41| values(clEnumValN(EmitSymbolList, "emit-symbol-list", +# 42| "Print nonterminal symbols (default)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/gen/Main.cpp:46:18: constructor_uses_global_object: The constructor of global object "::OutputFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OutputFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| "Print the BNF grammar content as a string"))); +# 45| +# 46|-> opt OutputFilename("o", init("-"), desc("Output"), +# 47| value_desc("file")); +# 48| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/lib/Token.cpp:98:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/clang-tools-extra/pseudo/lib/Token.cpp:115:3: uninit_use: Using uninitialized value "Opts". Field "Opts.GPUDefaultStream" is uninitialized. +# 113| Opts.WChar = true; +# 114| +# 115|-> return Opts; +# 116| } +# 117| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/lib/cli/CLI.cpp:16:35: constructor_uses_global_object: The constructor of global object "Grammar[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Grammar[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 14| #include "llvm/Support/MemoryBuffer.h" +# 15| +# 16|-> static llvm::cl::opt Grammar( +# 17| "grammar", +# 18| llvm::cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:36:18: constructor_uses_global_object: The constructor of global object "PrintGrammar" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintGrammar" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| using llvm::cl::opt; +# 35| +# 36|-> static opt PrintGrammar("print-grammar", desc("Print the grammar")); +# 37| static opt PrintGraph("print-graph", +# 38| desc("Print the LR graph for the grammar")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:37:18: constructor_uses_global_object: The constructor of global object "PrintGraph" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintGraph" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static opt PrintGrammar("print-grammar", desc("Print the grammar")); +# 37|-> static opt PrintGraph("print-graph", +# 38| desc("Print the LR graph for the grammar")); +# 39| static opt PrintTable("print-table", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:39:18: constructor_uses_global_object: The constructor of global object "PrintTable" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintTable" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| static opt PrintGraph("print-graph", +# 38| desc("Print the LR graph for the grammar")); +# 39|-> static opt PrintTable("print-table", +# 40| desc("Print the LR table for the grammar")); +# 41| static opt Source("source", desc("Source file")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:41:25: constructor_uses_global_object: The constructor of global object "Source[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Source[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| static opt PrintTable("print-table", +# 40| desc("Print the LR table for the grammar")); +# 41|-> static opt Source("source", desc("Source file")); +# 42| static opt PrintSource("print-source", desc("Print token stream")); +# 43| static opt PrintTokens("print-tokens", desc("Print detailed token info")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:42:18: constructor_uses_global_object: The constructor of global object "PrintSource" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintSource" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| desc("Print the LR table for the grammar")); +# 41| static opt Source("source", desc("Source file")); +# 42|-> static opt PrintSource("print-source", desc("Print token stream")); +# 43| static opt PrintTokens("print-tokens", desc("Print detailed token info")); +# 44| static opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:43:18: constructor_uses_global_object: The constructor of global object "PrintTokens" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintTokens" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| static opt Source("source", desc("Source file")); +# 42| static opt PrintSource("print-source", desc("Print token stream")); +# 43|-> static opt PrintTokens("print-tokens", desc("Print detailed token info")); +# 44| static opt +# 45| PrintDirectiveTree("print-directive-tree", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:45:5: constructor_uses_global_object: The constructor of global object "PrintDirectiveTree" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintDirectiveTree" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| static opt PrintTokens("print-tokens", desc("Print detailed token info")); +# 44| static opt +# 45|-> PrintDirectiveTree("print-directive-tree", +# 46| desc("Print directive structure of source code")); +# 47| static opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:48:5: constructor_uses_global_object: The constructor of global object "StripDirectives" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StripDirectives" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| desc("Print directive structure of source code")); +# 47| static opt +# 48|-> StripDirectives("strip-directives", +# 49| desc("Strip directives and select conditional sections")); +# 50| static opt Disambiguate("disambiguate", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:50:18: constructor_uses_global_object: The constructor of global object "Disambiguate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Disambiguate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| StripDirectives("strip-directives", +# 49| desc("Strip directives and select conditional sections")); +# 50|-> static opt Disambiguate("disambiguate", +# 51| desc("Choose best tree from parse forest")); +# 52| static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:52:18: constructor_uses_global_object: The constructor of global object "PrintStatistics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintStatistics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| static opt Disambiguate("disambiguate", +# 51| desc("Choose best tree from parse forest")); +# 52|-> static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); +# 53| static opt PrintForest("print-forest", desc("Print parse forest")); +# 54| static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:53:18: constructor_uses_global_object: The constructor of global object "PrintForest" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintForest" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| desc("Choose best tree from parse forest")); +# 52| static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); +# 53|-> static opt PrintForest("print-forest", desc("Print parse forest")); +# 54| static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), +# 55| init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:54:18: constructor_uses_global_object: The constructor of global object "ForestAbbrev" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForestAbbrev" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| static opt PrintStatistics("print-statistics", desc("Print GLR parser statistics")); +# 53| static opt PrintForest("print-forest", desc("Print parse forest")); +# 54|-> static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), +# 55| init(true)); +# 56| static opt HTMLForest("html-forest", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:56:25: constructor_uses_global_object: The constructor of global object "HTMLForest[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HTMLForest[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| static opt ForestAbbrev("forest-abbrev", desc("Abbreviate parse forest"), +# 55| init(true)); +# 56|-> static opt HTMLForest("html-forest", +# 57| desc("output file for HTML forest")); +# 58| static opt StartSymbol("start-symbol", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/tool/ClangPseudo.cpp:58:25: constructor_uses_global_object: The constructor of global object "StartSymbol[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StartSymbol[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| static opt HTMLForest("html-forest", +# 57| desc("output file for HTML forest")); +# 58|-> static opt StartSymbol("start-symbol", +# 59| desc("Specify the start symbol to parse"), +# 60| init("translation-unit")); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:45:8: address_of: Taking address with "*__begin2" yields a singleton pointer. +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:45:8: assign: Assigning: "Tok" = "*__begin2". +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:50:7: callee_ptr_arith: Passing "Tok" to function "pair" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 48| else if (Tok.Pair < 0) { +# 49| ASSERT_FALSE(Stack.empty()) << Tok; +# 50|-> ASSERT_EQ(Stack.back(), Tok.pair()) +# 51| << *Stack.back() << " != " << *Tok.pair() << " = pair of " << Tok; +# 52| Stack.pop_back(); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:60:8: address_of: Taking address with "*__begin2" yields a singleton pointer. +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:60:8: assign: Assigning: "Tok" = "*__begin2". +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:83:5: callee_ptr_arith: Passing "Tok" to function "pair" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 81| }(); +# 82| EXPECT_EQ(Tok.Pair > 0, Want.first) << Tok; +# 83|-> EXPECT_EQ(Tok.pair()->Kind, Want.second) << Tok; +# 84| } +# 85| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/pseudo/unittests/BracketTest.cpp:110:1: constructor_uses_global_object: The constructor of global object "clang::pseudo::Bracket_SimplePair_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::pseudo::Bracket_SimplePair_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 108| } +# 109| +# 110|-> TEST(Bracket, SimplePair) { +# 111| verifyBrackets("^{ ^[ ^( ^) ^( ^) ^] ^}"); +# 112| verifyBrackets(") ^{ ^[ ^] ^} ("); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:87:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 85| +# 86| // Set up the command line options +# 87|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88| static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "Allocator" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "GlobalParser" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "fuzzer::TPC" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/tool-template/ToolTemplate.cpp:88:27: constructor_uses_global_object: The constructor of global object "ToolTemplateCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ToolTemplateCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| // Set up the command line options +# 87| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 88|-> static cl::OptionCategory ToolTemplateCategory("tool-template options"); +# 89| +# 90| int main(int argc, const char **argv) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-apply-replacements/ApplyReplacementsTest.cpp:34:1: constructor_uses_global_object: The constructor of global object "clang::tooling::ApplyReplacementsTest_mergeDiagnosticsWithNoFixes_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::ApplyReplacementsTest_mergeDiagnosticsWithNoFixes_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 32| // Test to ensure diagnostics with no fixes, will be merged correctly +# 33| // before applying. +# 34|-> TEST(ApplyReplacementsTest, mergeDiagnosticsWithNoFixes) { +# 35| IntrusiveRefCntPtr DiagOpts(new DiagnosticOptions()); +# 36| DiagnosticsEngine Diagnostics( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:57:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitNamespaceInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitNamespaceInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 55| } +# 56| +# 57|-> TEST(BitcodeTest, emitNamespaceInfoBitcode) { +# 58| NamespaceInfo I; +# 59| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:75:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitRecordInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitRecordInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 73| } +# 74| +# 75|-> TEST(BitcodeTest, emitRecordInfoBitcode) { +# 76| RecordInfo I; +# 77| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:117:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitFunctionInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitFunctionInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 115| } +# 116| +# 117|-> TEST(BitcodeTest, emitFunctionInfoBitcode) { +# 118| FunctionInfo I; +# 119| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:137:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitMethodInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitMethodInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 135| } +# 136| +# 137|-> TEST(BitcodeTest, emitMethodInfoBitcode) { +# 138| FunctionInfo I; +# 139| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:159:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitEnumInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitEnumInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 157| } +# 158| +# 159|-> TEST(BitcodeTest, emitEnumInfoBitcode) { +# 160| EnumInfo I; +# 161| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:177:1: constructor_uses_global_object: The constructor of global object "clang::doc::BitcodeTest_emitTypedefInfoBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::BitcodeTest_emitTypedefInfoBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 175| } +# 176| +# 177|-> TEST(BitcodeTest, emitTypedefInfoBitcode) { +# 178| TypedefInfo I; +# 179| I.Name = "MyInt"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp:215:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInfoWithCommentBitcode_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInfoWithCommentBitcode_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 213| } +# 214| +# 215|-> TEST(SerializeTest, emitInfoWithCommentBitcode) { +# 216| FunctionInfo F; +# 217| F.Name = "F"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/GeneratorTest.cpp:18:1: constructor_uses_global_object: The constructor of global object "clang::doc::GeneratorTest_emitIndex_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::GeneratorTest_emitIndex_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 16| namespace doc { +# 17| +# 18|-> TEST(GeneratorTest, emitIndex) { +# 19| Index Idx; +# 20| auto InfoA = std::make_unique(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/GeneratorTest.cpp:73:1: constructor_uses_global_object: The constructor of global object "clang::doc::GeneratorTest_sortIndex_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::GeneratorTest_sortIndex_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 71| } +# 72| +# 73|-> TEST(GeneratorTest, sortIndex) { +# 74| Index Idx; +# 75| Idx.Children.emplace_back("b"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:32:3: var_decl: Declaring variable "CDCtx". +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:38:3: uninit_use: Using uninitialized value "CDCtx". Field "CDCtx.Idx.Path.InlineElts" is uninitialized. +# 36| "../share/clang/clang-doc-default-stylesheet.css"); +# 37| CDCtx.JsScripts.emplace_back("index.js"); +# 38|-> return CDCtx; +# 39| } +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:41:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitNamespaceHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitNamespaceHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 39| } +# 40| +# 41|-> TEST(HTMLGeneratorTest, emitNamespaceHTML) { +# 42| NamespaceInfo I; +# 43| I.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:145:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitRecordHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitRecordHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 143| } +# 144| +# 145|-> TEST(HTMLGeneratorTest, emitRecordHTML) { +# 146| RecordInfo I; +# 147| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:264:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitFunctionHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitFunctionHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 262| } +# 263| +# 264|-> TEST(HTMLGeneratorTest, emitFunctionHTML) { +# 265| FunctionInfo I; +# 266| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:318:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitEnumHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitEnumHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 316| } +# 317| +# 318|-> TEST(HTMLGeneratorTest, emitEnumHTML) { +# 319| EnumInfo I; +# 320| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp:367:1: constructor_uses_global_object: The constructor of global object "clang::doc::HTMLGeneratorTest_emitCommentHTML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::HTMLGeneratorTest_emitCommentHTML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 365| } +# 366| +# 367|-> TEST(HTMLGeneratorTest, emitCommentHTML) { +# 368| FunctionInfo I; +# 369| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:24:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitNamespaceMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitNamespaceMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 22| } +# 23| +# 24|-> TEST(MDGeneratorTest, emitNamespaceMD) { +# 25| NamespaceInfo I; +# 26| I.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:80:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitRecordMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitRecordMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 78| } +# 79| +# 80|-> TEST(MDGeneratorTest, emitRecordMD) { +# 81| RecordInfo I; +# 82| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:147:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitFunctionMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitFunctionMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 145| } +# 146| +# 147|-> TEST(MDGeneratorTest, emitFunctionMD) { +# 148| FunctionInfo I; +# 149| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:179:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitEnumMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitEnumMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 177| } +# 178| +# 179|-> TEST(MDGeneratorTest, emitEnumMD) { +# 180| EnumInfo I; +# 181| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp:210:1: constructor_uses_global_object: The constructor of global object "clang::doc::MDGeneratorTest_emitCommentMD_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MDGeneratorTest_emitCommentMD_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 208| } +# 209| +# 210|-> TEST(MDGeneratorTest, emitCommentMD) { +# 211| FunctionInfo I; +# 212| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:16:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeNamespaceInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeNamespaceInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 14| namespace doc { +# 15| +# 16|-> TEST(MergeTest, mergeNamespaceInfos) { +# 17| NamespaceInfo One; +# 18| One.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:78:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeRecordInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeRecordInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 76| } +# 77| +# 78|-> TEST(MergeTest, mergeRecordInfos) { +# 79| RecordInfo One; +# 80| One.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:156:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeFunctionInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeFunctionInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 154| } +# 155| +# 156|-> TEST(MergeTest, mergeFunctionInfos) { +# 157| FunctionInfo One; +# 158| One.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/MergeTest.cpp:231:1: constructor_uses_global_object: The constructor of global object "clang::doc::MergeTest_mergeEnumInfos_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::MergeTest_mergeEnumInfos_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 229| } +# 230| +# 231|-> TEST(MergeTest, mergeEnumInfos) { +# 232| EnumInfo One; +# 233| One.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:108:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitNamespaceInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitNamespaceInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 106| +# 107| // Test serialization of namespace declarations. +# 108|-> TEST(SerializeTest, emitNamespaceInfo) { +# 109| EmittedInfoList Infos; +# 110| ExtractInfosFromCode("namespace A { namespace B { void f() {} } }", 5, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:135:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitAnonymousNamespaceInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitAnonymousNamespaceInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 133| } +# 134| +# 135|-> TEST(SerializeTest, emitAnonymousNamespaceInfo) { +# 136| EmittedInfoList Infos; +# 137| ExtractInfosFromCode("namespace { }", 2, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:146:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 144| +# 145| // Test serialization of record declarations. +# 146|-> TEST(SerializeTest, emitRecordInfo) { +# 147| EmittedInfoList Infos; +# 148| ExtractInfosFromCode(R"raw(class E { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:263:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitEnumInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitEnumInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 261| +# 262| // Test serialization of enum declarations. +# 263|-> TEST(SerializeTest, emitEnumInfo) { +# 264| EmittedInfoList Infos; +# 265| ExtractInfosFromCode("enum E { X, Y }; enum class G { A, B };", 2, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:290:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitUndefinedRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitUndefinedRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 288| } +# 289| +# 290|-> TEST(SerializeTest, emitUndefinedRecordInfo) { +# 291| EmittedInfoList Infos; +# 292| ExtractInfosFromCode("class E;", 2, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:303:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitRecordMemberInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitRecordMemberInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 301| } +# 302| +# 303|-> TEST(SerializeTest, emitRecordMemberInfo) { +# 304| EmittedInfoList Infos; +# 305| ExtractInfosFromCode("struct E { int I; };", 2, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:318:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInternalRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInternalRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 316| } +# 317| +# 318|-> TEST(SerializeTest, emitInternalRecordInfo) { +# 319| EmittedInfoList Infos; +# 320| ExtractInfosFromCode("class E { class G {}; };", 4, /*Public=*/false, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:342:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitPublicAnonymousNamespaceInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitPublicAnonymousNamespaceInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 340| } +# 341| +# 342|-> TEST(SerializeTest, emitPublicAnonymousNamespaceInfo) { +# 343| EmittedInfoList Infos; +# 344| ExtractInfosFromCode("namespace { class A; }", 0, /*Public=*/true, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:347:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitPublicFunctionInternalInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitPublicFunctionInternalInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 345| } +# 346| +# 347|-> TEST(SerializeTest, emitPublicFunctionInternalInfo) { +# 348| EmittedInfoList Infos; +# 349| ExtractInfosFromCode("int F() { class G {}; return 0; };", 1, /*Public=*/true, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:363:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInlinedFunctionInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInlinedFunctionInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 361| } +# 362| +# 363|-> TEST(SerializeTest, emitInlinedFunctionInfo) { +# 364| EmittedInfoList Infos; +# 365| ExtractInfosFromCode("inline void F(int I) { };", 1, /*Public=*/true, Infos); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:379:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitInheritedRecordInfo_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitInheritedRecordInfo_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 377| } +# 378| +# 379|-> TEST(SerializeTest, emitInheritedRecordInfo) { +# 380| EmittedInfoList Infos; +# 381| ExtractInfosFromCode(R"raw(class F { protected: void set(int N); }; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:521:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitModulePublicLFunctions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitModulePublicLFunctions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 519| } +# 520| +# 521|-> TEST(SerializeTest, emitModulePublicLFunctions) { +# 522| EmittedInfoList Infos; +# 523| std::vector Args; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:559:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitChildRecords_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitChildRecords_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 557| +# 558| // Test serialization of child records in namespaces and other records +# 559|-> TEST(SerializeTest, emitChildRecords) { +# 560| EmittedInfoList Infos; +# 561| ExtractInfosFromCode("class A { class B {}; }; namespace { class C {}; } ", 8, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:586:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTest_emitChildNamespaces_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTest_emitChildNamespaces_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 584| +# 585| // Test serialization of child namespaces +# 586|-> TEST(SerializeTest, emitChildNamespaces) { +# 587| EmittedInfoList Infos; +# 588| ExtractInfosFromCode("namespace A { namespace B { } }", 4, /*Public=*/false, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:604:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTests_emitTypedefs_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTests_emitTypedefs_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 602| } +# 603| +# 604|-> TEST(SerializeTests, emitTypedefs) { +# 605| EmittedInfoList Infos; +# 606| ExtractInfosFromCode("typedef int MyInt; using MyDouble = double;", 2, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:631:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTests_emitFunctionTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTests_emitFunctionTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 629| } +# 630| +# 631|-> TEST(SerializeTests, emitFunctionTemplate) { +# 632| EmittedInfoList Infos; +# 633| // A template and a specialization. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/SerializeTest.cpp:671:1: constructor_uses_global_object: The constructor of global object "clang::doc::SerializeTests_emitClassTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::SerializeTests_emitClassTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 669| } +# 670| +# 671|-> TEST(SerializeTests, emitClassTemplate) { +# 672| EmittedInfoList Infos; +# 673| // This will generate 2x the number of infos: each Record will be followed by + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:25:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitNamespaceYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitNamespaceYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 23| } +# 24| +# 25|-> TEST(YAMLGeneratorTest, emitNamespaceYAML) { +# 26| NamespaceInfo I; +# 27| I.Name = "Namespace"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:80:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitRecordYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitRecordYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 78| } +# 79| +# 80|-> TEST(YAMLGeneratorTest, emitRecordYAML) { +# 81| RecordInfo I; +# 82| I.Name = "r"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:205:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitFunctionYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitFunctionYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 203| } +# 204| +# 205|-> TEST(YAMLGeneratorTest, emitFunctionYAML) { +# 206| FunctionInfo I; +# 207| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:270:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitSimpleEnumYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitSimpleEnumYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 268| // enum e { X }; +# 269| // } +# 270|-> TEST(YAMLGeneratorTest, emitSimpleEnumYAML) { +# 271| EnumInfo I; +# 272| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:311:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_enumTypedScopedEnumYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_enumTypedScopedEnumYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 309| // Tests the equivalent of: +# 310| // enum class e : short { X = FOO_BAR + 2 }; +# 311|-> TEST(YAMLGeneratorTest, enumTypedScopedEnumYAML) { +# 312| EnumInfo I; +# 313| I.Name = "e"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:343:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_enumTypedefYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_enumTypedefYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 341| } +# 342| +# 343|-> TEST(YAMLGeneratorTest, enumTypedefYAML) { +# 344| TypedefInfo I; +# 345| I.Name = "MyUsing"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp:368:1: constructor_uses_global_object: The constructor of global object "clang::doc::YAMLGeneratorTest_emitCommentYAML_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::doc::YAMLGeneratorTest_emitCommentYAML_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 366| } +# 367| +# 368|-> TEST(YAMLGeneratorTest, emitCommentYAML) { +# 369| FunctionInfo I; +# 370| I.Name = "f"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:141:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_VariableSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_VariableSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 139| }; +# 140| +# 141|-> TEST_F(FindAllSymbolsTest, VariableSymbols) { +# 142| static const char Header[] = R"( +# 143| extern int xargc; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:171:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_ExternCSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_ExternCSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 169| } +# 170| +# 171|-> TEST_F(FindAllSymbolsTest, ExternCSymbols) { +# 172| static const char Header[] = R"( +# 173| extern "C" { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:198:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 196| } +# 197| +# 198|-> TEST_F(FindAllSymbolsTest, CXXRecordSymbols) { +# 199| static const char Header[] = R"( +# 200| struct Glob {}; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:235:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbolsTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_CXXRecordSymbolsTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 233| } +# 234| +# 235|-> TEST_F(FindAllSymbolsTest, CXXRecordSymbolsTemplate) { +# 236| static const char Header[] = R"( +# 237| template + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:262:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_DontIgnoreTemplatePartialSpecialization_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_DontIgnoreTemplatePartialSpecialization_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 260| } +# 261| +# 262|-> TEST_F(FindAllSymbolsTest, DontIgnoreTemplatePartialSpecialization) { +# 263| static const char Code[] = R"( +# 264| template class Class; // undefined + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:280:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_FunctionSymbols_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_FunctionSymbols_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 278| } +# 279| +# 280|-> TEST_F(FindAllSymbolsTest, FunctionSymbols) { +# 281| static const char Header[] = R"( +# 282| namespace na { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:327:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_NamespaceTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_NamespaceTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 325| } +# 326| +# 327|-> TEST_F(FindAllSymbolsTest, NamespaceTest) { +# 328| static const char Header[] = R"( +# 329| int X1; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:373:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_DecayedTypeTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_DecayedTypeTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 371| } +# 372| +# 373|-> TEST_F(FindAllSymbolsTest, DecayedTypeTest) { +# 374| static const char Header[] = "void DecayedFunc(int x[], int y[10]) {}"; +# 375| static const char Main[] = R"(int main() { DecayedFunc(nullptr, nullptr); })"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:383:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_CTypedefTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_CTypedefTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 381| } +# 382| +# 383|-> TEST_F(FindAllSymbolsTest, CTypedefTest) { +# 384| static const char Header[] = R"( +# 385| typedef unsigned size_t_; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:412:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_EnumTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_EnumTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 410| } +# 411| +# 412|-> TEST_F(FindAllSymbolsTest, EnumTest) { +# 413| static const char Header[] = R"( +# 414| enum Glob_E { G1, G2 }; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:485:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_IWYUPrivatePragmaTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_IWYUPrivatePragmaTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 483| } +# 484| +# 485|-> TEST_F(FindAllSymbolsTest, IWYUPrivatePragmaTest) { +# 486| static const char Header[] = R"( +# 487| // IWYU pragma: private, include "bar.h" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:502:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_MacroTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_MacroTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 500| } +# 501| +# 502|-> TEST_F(FindAllSymbolsTest, MacroTest) { +# 503| static const char Header[] = R"( +# 504| #define X + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:528:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_MacroTestWithIWYU_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_MacroTestWithIWYU_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 526| } +# 527| +# 528|-> TEST_F(FindAllSymbolsTest, MacroTestWithIWYU) { +# 529| static const char Header[] = R"( +# 530| // IWYU pragma: private, include "bar.h" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-include-fixer/find-all-symbols/FindAllSymbolsTests.cpp:555:1: constructor_uses_global_object: The constructor of global object "clang::find_all_symbols::FindAllSymbolsTest_NoFriendTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::find_all_symbols::FindAllSymbolsTest_NoFriendTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 553| } +# 554| +# 555|-> TEST_F(FindAllSymbolsTest, NoFriendTest) { +# 556| static const char Header[] = R"( +# 557| class WorstFriend { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryEngineTest.cpp:50:1: constructor_uses_global_object: The constructor of global object "QueryEngineTest_Basic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryEngineTest_Basic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 48| }; +# 49| +# 50|-> TEST_F(QueryEngineTest, Basic) { +# 51| DynTypedMatcher FnMatcher = functionDecl(); +# 52| DynTypedMatcher FooMatcher = functionDecl(hasName("foo1")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryEngineTest.cpp:138:1: constructor_uses_global_object: The constructor of global object "QueryEngineTest_LetAndMatch_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryEngineTest_LetAndMatch_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 136| } +# 137| +# 138|-> TEST_F(QueryEngineTest, LetAndMatch) { +# 139| EXPECT_TRUE(QueryParser::parse("let x \"foo1\"", S)->run(OS, S)); +# 140| EXPECT_EQ("", OS.str()); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:27:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_NoOp_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_NoOp_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 25| }; +# 26| +# 27|-> TEST_F(QueryParserTest, NoOp) { +# 28| QueryRef Q = parse(""); +# 29| EXPECT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:35:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Invalid_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Invalid_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 33| } +# 34| +# 35|-> TEST_F(QueryParserTest, Invalid) { +# 36| QueryRef Q = parse("foo"); +# 37| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:41:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Help_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Help_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 39| } +# 40| +# 41|-> TEST_F(QueryParserTest, Help) { +# 42| QueryRef Q = parse("help"); +# 43| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:50:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Quit_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Quit_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 48| } +# 49| +# 50|-> TEST_F(QueryParserTest, Quit) { +# 51| QueryRef Q = parse("quit"); +# 52| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:62:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Set_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Set_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 60| } +# 61| +# 62|-> TEST_F(QueryParserTest, Set) { +# 63| +# 64| bool HasIntrospection = tooling::NodeIntrospection::hasIntrospectionSupport(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:99:3: overrun-local: Overrunning array of 8 bytes at byte offset 15 by dereferencing pointer "llvm::cast(Q)->Var". +# 97| Q = parse("set output dump"); +# 98| ASSERT_TRUE(isa(Q)); +# 99|-> EXPECT_EQ(&QuerySession::DetailedASTOutput, cast(Q)->Var); +# 100| +# 101| Q = parse("set output detailed-ast"); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:103:3: overrun-local: Overrunning array of 8 bytes at byte offset 15 by dereferencing pointer "llvm::cast(Q)->Var". +# 101| Q = parse("set output detailed-ast"); +# 102| ASSERT_TRUE(isa(Q)); +# 103|-> EXPECT_EQ(&QuerySession::DetailedASTOutput, cast(Q)->Var); +# 104| +# 105| Q = parse("enable output detailed-ast"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:138:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Match_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Match_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 136| } +# 137| +# 138|-> TEST_F(QueryParserTest, Match) { +# 139| QueryRef Q = parse("match decl()"); +# 140| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:148:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_LetUnlet_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_LetUnlet_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 146| } +# 147| +# 148|-> TEST_F(QueryParserTest, LetUnlet) { +# 149| QueryRef Q = parse("let foo decl()"); +# 150| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:186:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Comment_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Comment_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 184| } +# 185| +# 186|-> TEST_F(QueryParserTest, Comment) { +# 187| QueryRef Q = parse("# let foo decl()"); +# 188| ASSERT_TRUE(isa(Q)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:197:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Complete_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Complete_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 195| } +# 196| +# 197|-> TEST_F(QueryParserTest, Complete) { +# 198| std::vector Comps = +# 199| QueryParser::complete("", 0, QS); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp:276:1: constructor_uses_global_object: The constructor of global object "QueryParserTest_Multiline_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "QueryParserTest_Multiline_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 274| } +# 275| +# 276|-> TEST_F(QueryParserTest, Multiline) { +# 277| +# 278| // Single string with multiple commands + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:54:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_Builtin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_Builtin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 52| // ---------------------------------------------------------------------------- +# 53| +# 54|-> TEST(Values, Builtin) { +# 55| StringRef Snippet = "int target = 0;"; +# 56| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:65:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_TypedefBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_TypedefBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 63| runCheckOnCode(Snippet)); +# 64| } +# 65|-> TEST(Values, TypedefBuiltin) { +# 66| StringRef T = "typedef int MyInt;"; +# 67| StringRef S = "MyInt target = 0;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:80:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_TypedefBuiltinPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_TypedefBuiltinPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 78| runCheckOnCode(Cat(S))); +# 79| } +# 80|-> TEST(Values, TypedefBuiltinPointer) { +# 81| StringRef T = "typedef int* MyInt;"; +# 82| StringRef S = "MyInt target = nullptr;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:95:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_UsingBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_UsingBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 93| runCheckOnCode(Cat(S))); +# 94| } +# 95|-> TEST(Values, UsingBuiltin) { +# 96| StringRef T = "using MyInt = int;"; +# 97| StringRef S = "MyInt target = 0;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:110:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_UsingBuiltinPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_UsingBuiltinPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 108| runCheckOnCode(Cat(S))); +# 109| } +# 110|-> TEST(Values, UsingBuiltinPointer) { +# 111| StringRef T = "using MyInt = int*;"; +# 112| StringRef S = "MyInt target = nullptr;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:125:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_AutoValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_AutoValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 123| runCheckOnCode(Cat(S))); +# 124| } +# 125|-> TEST(Values, AutoValue) { +# 126| StringRef T = "int f() { return 42; }\n"; +# 127| StringRef S = "auto target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:140:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_AutoPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_AutoPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 138| runCheckOnCode(Cat(S))); +# 139| } +# 140|-> TEST(Values, AutoPointer) { +# 141| StringRef T = "int* f() { return nullptr; }\n"; +# 142| StringRef S = "auto target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:155:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_AutoReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_AutoReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 153| runCheckOnCode(Cat(S))); +# 154| } +# 155|-> TEST(Values, AutoReference) { +# 156| StringRef T = "static int global = 42; int& f() { return global; }\n"; +# 157| StringRef S = "auto target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:170:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_DeclTypeValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_DeclTypeValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 168| runCheckOnCode(Cat(S))); +# 169| } +# 170|-> TEST(Values, DeclTypeValue) { +# 171| StringRef T = "int f() { return 42; }\n"; +# 172| StringRef S = "decltype(f()) target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:185:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_DeclTypePointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_DeclTypePointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 183| runCheckOnCode(Cat(S))); +# 184| } +# 185|-> TEST(Values, DeclTypePointer) { +# 186| // The pointer itself will be changed to 'const'. There is no +# 187| // way to make the pointee 'const' with this syntax. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:202:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_DeclTypeReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_DeclTypeReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 200| runCheckOnCode(Cat(S))); +# 201| } +# 202|-> TEST(Values, DeclTypeReference) { +# 203| // Same as pointer, but the reference itself will be marked 'const'. +# 204| // This has no effect and will result in a warning afterwards. The + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:220:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Values_Parens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Values_Parens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 218| runCheckOnCode(Cat(S))); +# 219| } +# 220|-> TEST(Values, Parens) { +# 221| StringRef Snippet = "int ((target)) = 0;"; +# 222| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:238:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_Builtin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_Builtin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 236| // ---------------------------------------------------------------------------- +# 237| +# 238|-> TEST(Arrays, Builtin) { +# 239| StringRef Snippet = "int target[][1] = {{1}, {2}, {3}};"; +# 240| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:251:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_BuiltinParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_BuiltinParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 249| runCheckOnCode(Snippet)); +# 250| } +# 251|-> TEST(Arrays, BuiltinParens) { +# 252| StringRef Snippet = "int ((target))[][1] = {{1}, {2}, {3}};"; +# 253| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:264:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_Pointers_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_Pointers_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 262| runCheckOnCode(Snippet)); +# 263| } +# 264|-> TEST(Arrays, Pointers) { +# 265| StringRef Snippet = "int x; int* target[] = {&x, &x, &x};"; +# 266| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:277:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_PointerPointers_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_PointerPointers_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 275| runCheckOnCode(Snippet)); +# 276| } +# 277|-> TEST(Arrays, PointerPointers) { +# 278| StringRef Snippet = "int* x = nullptr; int** target[] = {&x, &x, &x};"; +# 279| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:290:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Arrays_PointersParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Arrays_PointersParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 288| runCheckOnCode(Snippet)); +# 289| } +# 290|-> TEST(Arrays, PointersParens) { +# 291| StringRef Snippet = "int x; int* (target)[] = {&x, &x, &x};"; +# 292| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:308:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_LValueBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_LValueBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 306| // ---------------------------------------------------------------------------- +# 307| +# 308|-> TEST(Reference, LValueBuiltin) { +# 309| StringRef Snippet = "int x = 42; int& target = x;"; +# 310| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:321:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_RValueBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_RValueBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 319| runCheckOnCode(Snippet)); +# 320| } +# 321|-> TEST(Reference, RValueBuiltin) { +# 322| StringRef Snippet = "int&& target = 42;"; +# 323| EXPECT_EQ("const int&& target = 42;", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:333:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_LValueToPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_LValueToPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 331| runCheckOnCode(Snippet)); +# 332| } +# 333|-> TEST(Reference, LValueToPointer) { +# 334| StringRef Snippet = "int* p; int *& target = p;"; +# 335| EXPECT_EQ("int* p; int * const& target = p;", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:345:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_LValueParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_LValueParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 343| runCheckOnCode(Snippet)); +# 344| } +# 345|-> TEST(Reference, LValueParens) { +# 346| StringRef Snippet = "int x = 42; int ((& target)) = x;"; +# 347| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:358:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_ToArray_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_ToArray_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 356| runCheckOnCode(Snippet)); +# 357| } +# 358|-> TEST(Reference, ToArray) { +# 359| StringRef ArraySnippet = "int a[4] = {1, 2, 3, 4};"; +# 360| StringRef Snippet = "int (&target)[4] = a;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:373:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Reference_Auto_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Reference_Auto_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 371| runCheckOnCode(Cat(Snippet))); +# 372| } +# 373|-> TEST(Reference, Auto) { +# 374| StringRef T = "static int global = 42; int& f() { return global; }\n"; +# 375| StringRef S = "auto& target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:393:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_SingleBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_SingleBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 391| // ---------------------------------------------------------------------------- +# 392| +# 393|-> TEST(Pointers, SingleBuiltin) { +# 394| StringRef Snippet = "int* target = nullptr;"; +# 395| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:406:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_MultiBuiltin_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_MultiBuiltin_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 404| runCheckOnCode(Snippet)); +# 405| } +# 406|-> TEST(Pointers, MultiBuiltin) { +# 407| StringRef Snippet = "int** target = nullptr;"; +# 408| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:419:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_ToArray_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_ToArray_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 417| runCheckOnCode(Snippet)); +# 418| } +# 419|-> TEST(Pointers, ToArray) { +# 420| StringRef ArraySnippet = "int a[4] = {1, 2, 3, 4};"; +# 421| StringRef Snippet = "int (*target)[4] = &a;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:434:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_Parens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_Parens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 432| runCheckOnCode(Cat(Snippet))); +# 433| } +# 434|-> TEST(Pointers, Parens) { +# 435| StringRef Snippet = "int ((**target)) = nullptr;"; +# 436| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:447:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_Auto_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_Auto_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 445| runCheckOnCode(Snippet)); +# 446| } +# 447|-> TEST(Pointers, Auto) { +# 448| StringRef T = "int* f() { return nullptr; }\n"; +# 449| StringRef S = "auto* target = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:462:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_AutoParens_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_AutoParens_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 460| runCheckOnCode(Cat(S))); +# 461| } +# 462|-> TEST(Pointers, AutoParens) { +# 463| StringRef T = "int* f() { return nullptr; }\n"; +# 464| StringRef S = "auto (((* target))) = f();"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:477:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_FunctionPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_FunctionPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 475| runCheckOnCode(Cat(S))); +# 476| } +# 477|-> TEST(Pointers, FunctionPointer) { +# 478| StringRef S = "int (*target)(float, int, double) = nullptr;"; +# 479| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:494:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_MemberFunctionPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_MemberFunctionPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 492| runCheckOnCode(S)); +# 493| } +# 494|-> TEST(Pointers, MemberFunctionPointer) { +# 495| StringRef T = "struct A { int f() { return 1; } };"; +# 496| StringRef S = "int (A::*target)() = &A::f;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:513:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Pointers_MemberDataPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Pointers_MemberDataPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 511| runCheckOnCode(Cat(S))); +# 512| } +# 513|-> TEST(Pointers, MemberDataPointer) { +# 514| StringRef T = "struct A { int member = 0; };"; +# 515| StringRef S = "int A::*target = &A::member;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:537:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Struct_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Struct_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 535| // ---------------------------------------------------------------------------- +# 536| +# 537|-> TEST(TagTypes, Struct) { +# 538| StringRef T = "struct Foo { int data; int method(); };\n"; +# 539| StringRef S = "struct Foo target{0};"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:596:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Class_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Class_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 594| runCheckOnCode(S)); +# 595| } +# 596|-> TEST(TagTypes, Class) { +# 597| StringRef T = "class Foo { int data; int method(); };\n"; +# 598| StringRef S = "class Foo target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:631:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Enum_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Enum_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 629| runCheckOnCode(Cat(S))); +# 630| } +# 631|-> TEST(TagTypes, Enum) { +# 632| StringRef T = "enum Foo { N_ONE, N_TWO, N_THREE };\n"; +# 633| StringRef S = "enum Foo target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:666:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::TagTypes_Union_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::TagTypes_Union_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 664| runCheckOnCode(Cat(S))); +# 665| } +# 666|-> TEST(TagTypes, Union) { +# 667| StringRef T = "union Foo { int yay; float nej; };\n"; +# 668| StringRef S = "union Foo target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:706:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_AllInMacro_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_AllInMacro_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 704| // ---------------------------------------------------------------------------- +# 705| +# 706|-> TEST(Macro, AllInMacro) { +# 707| StringRef T = "#define DEFINE_VARIABLE int target = 42\n"; +# 708| StringRef S = "DEFINE_VARIABLE;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:717:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroParameter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroParameter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 715| EXPECT_EQ(Cat("DEFINE_VARIABLE;"), runCheckOnCode(Cat(S))); +# 716| } +# 717|-> TEST(Macro, MacroParameter) { +# 718| StringRef T = "#define DEFINE_VARIABLE(X) int X = 42\n"; +# 719| StringRef S = "DEFINE_VARIABLE(target);"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:732:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroTypeValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroTypeValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 730| runCheckOnCode(Cat(S))); +# 731| } +# 732|-> TEST(Macro, MacroTypeValue) { +# 733| StringRef T = "#define BAD_TYPEDEF int\n"; +# 734| StringRef S = "BAD_TYPEDEF target = 42;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:747:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroTypePointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroTypePointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 745| runCheckOnCode(Cat(S))); +# 746| } +# 747|-> TEST(Macro, MacroTypePointer) { +# 748| StringRef T = "#define BAD_TYPEDEF int *\n"; +# 749| StringRef S = "BAD_TYPEDEF target = nullptr;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:764:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_MacroTypeReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_MacroTypeReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 762| runCheckOnCode(Cat(S))); +# 763| } +# 764|-> TEST(Macro, MacroTypeReference) { +# 765| StringRef T = "static int g = 42;\n#define BAD_TYPEDEF int&\n"; +# 766| StringRef S = "BAD_TYPEDEF target = g;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:782:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_Variable_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_Variable_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 780| } +# 781| // This failed in LLVM. +# 782|-> TEST(Macro, Variable) { +# 783| StringRef M = "#define DEBUG(X) do { if (1) { X; } } while (0)\n"; +# 784| StringRef F = "void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:794:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Macro_RangeLoop_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Macro_RangeLoop_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 792| runCheckOnCode(Cat(V))); +# 793| } +# 794|-> TEST(Macro, RangeLoop) { +# 795| StringRef M = "#define DEBUG(X) do { if (1) { X; }} while (false)\n"; +# 796| StringRef F = "void foo() { char array[] = {'a', 'b', 'c'}; "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:812:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_TemplateVariable_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_TemplateVariable_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 810| // ---------------------------------------------------------------------------- +# 811| +# 812|-> TEST(Template, TemplateVariable) { +# 813| StringRef T = "template T target = 3.1415;"; +# 814| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:825:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_FunctionValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_FunctionValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 823| runCheckOnCode(T)); +# 824| } +# 825|-> TEST(Template, FunctionValue) { +# 826| StringRef T = "template void f(T v) \n"; +# 827| StringRef S = "{ T target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:840:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_FunctionPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_FunctionPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 838| runCheckOnCode(Cat(S))); +# 839| } +# 840|-> TEST(Template, FunctionPointer) { +# 841| StringRef T = "template void f(T* v) \n"; +# 842| StringRef S = "{ T* target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:855:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_FunctionReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_FunctionReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 853| runCheckOnCode(Cat(S))); +# 854| } +# 855|-> TEST(Template, FunctionReference) { +# 856| StringRef T = "template void f(T& v) \n"; +# 857| StringRef S = "{ T& target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:870:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_MultiInstantiationsFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_MultiInstantiationsFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 868| runCheckOnCode(Cat(S))); +# 869| } +# 870|-> TEST(Template, MultiInstantiationsFunction) { +# 871| StringRef T = "template void f(T v) \n"; +# 872| StringRef S = "{ T target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:901:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_StructValue_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_StructValue_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 899| } +# 900| +# 901|-> TEST(Template, StructValue) { +# 902| StringRef T = "template struct S { void f(T& v) \n"; +# 903| StringRef S = "{ T target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:917:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_StructPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_StructPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 915| runCheckOnCode(Cat(S))); +# 916| } +# 917|-> TEST(Template, StructPointer) { +# 918| StringRef T = "template struct S { void f(T* v) \n"; +# 919| StringRef S = "{ T* target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:933:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_StructReference_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_StructReference_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 931| runCheckOnCode(Cat(S))); +# 932| } +# 933|-> TEST(Template, StructReference) { +# 934| StringRef T = "template struct S { void f(T& v) \n"; +# 935| StringRef S = "{ T& target = v; }"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:949:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_DependentReturnFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_DependentReturnFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 947| runCheckOnCode(Cat(S))); +# 948| } +# 949|-> TEST(Template, DependentReturnFunction) { +# 950| StringRef TS = "template struct TS { using value_type = T; };"; +# 951| StringRef T = "template void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:965:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_DependentReturnPointerFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_DependentReturnPointerFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 963| runCheckOnCode(Cat(S))); +# 964| } +# 965|-> TEST(Template, DependentReturnPointerFunction) { +# 966| StringRef TS = "template struct TS { using value_type = T; };"; +# 967| StringRef T = "template void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:981:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_DependentReturnReferenceFunction_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_DependentReturnReferenceFunction_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 979| runCheckOnCode(Cat(S))); +# 980| } +# 981|-> TEST(Template, DependentReturnReferenceFunction) { +# 982| StringRef TS = "template struct TS { using value_type = T; };"; +# 983| StringRef T = "template void foo(T& f) "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:997:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_VectorLikeType_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_VectorLikeType_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 995| runCheckOnCode(Cat(S))); +# 996| } +# 997|-> TEST(Template, VectorLikeType) { +# 998| StringRef TS = "template struct TS { TS(const T&) {} }; "; +# 999| StringRef T = "void foo() "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1013:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::Template_SpecializedTemplate_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::Template_SpecializedTemplate_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1011| runCheckOnCode(Cat(S))); +# 1012| } +# 1013|-> TEST(Template, SpecializedTemplate) { +# 1014| StringRef TS = "template struct TS { TS(const T&) {} }; "; +# 1015| StringRef TS2 = "template <> struct TS { TS(const double&) {} }; "; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1035:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjC_SimplePointers_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjC_SimplePointers_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1033| // ----------------------------------------------------------------------------- +# 1034| +# 1035|-> TEST(ObjC, SimplePointers) { +# 1036| StringRef S = "int * target = 0;"; +# 1037| EXPECT_EQ(runCheckOnCode(S, nullptr, "input.m"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1046:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjC_ClassPointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjC_ClassPointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1044| "int * const target = 0;"); +# 1045| } +# 1046|-> TEST(ObjC, ClassPointer) { +# 1047| StringRef TB = "@class Object;\nint main() {\n"; +# 1048| StringRef S = "Object *target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp:1062:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjC_InterfacePointer_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjC_InterfacePointer_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 1060| Cat("Object *const target;")); +# 1061| } +# 1062|-> TEST(ObjC, InterfacePointer) { +# 1063| StringRef TB = "@interface I\n"; +# 1064| StringRef S = "- (void) foo: (int *) target;"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:69:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyDiagnosticConsumer_SortsErrors_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyDiagnosticConsumer_SortsErrors_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 67| } // namespace +# 68| +# 69|-> TEST(ClangTidyDiagnosticConsumer, SortsErrors) { +# 70| std::vector Errors; +# 71| runCheckOnCode("int a;", &Errors); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:78:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyDiagnosticConsumer_HandlesSourceRangeHighlight_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyDiagnosticConsumer_HandlesSourceRangeHighlight_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 76| } +# 77| +# 78|-> TEST(ClangTidyDiagnosticConsumer, HandlesSourceRangeHighlight) { +# 79| std::vector Errors; +# 80| runCheckOnCode("int abc;", &Errors); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyDiagnosticConsumer_InvalidSourceLocationRangesIgnored_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyDiagnosticConsumer_InvalidSourceLocationRangesIgnored_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST(ClangTidyDiagnosticConsumer, InvalidSourceLocationRangesIgnored) { +# 97| std::vector Errors; +# 98| runCheckOnCode("int x;", &Errors); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:29:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseLineFilter_EmptyFilter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseLineFilter_EmptyFilter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 27| namespace test { +# 28| +# 29|-> TEST(ParseLineFilter, EmptyFilter) { +# 30| ClangTidyGlobalOptions Options; +# 31| EXPECT_FALSE(parseLineFilter("", Options)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:37:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseLineFilter_InvalidFilter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseLineFilter_InvalidFilter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 35| } +# 36| +# 37|-> TEST(ParseLineFilter, InvalidFilter) { +# 38| ClangTidyGlobalOptions Options; +# 39| EXPECT_TRUE(!!parseLineFilter("asdf", Options)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:52:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseLineFilter_ValidFilter_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseLineFilter_ValidFilter_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 50| } +# 51| +# 52|-> TEST(ParseLineFilter, ValidFilter) { +# 53| ClangTidyGlobalOptions Options; +# 54| std::error_code Error = parseLineFilter( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:77:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_ValidConfiguration_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_ValidConfiguration_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 75| } +# 76| +# 77|-> TEST(ParseConfiguration, ValidConfiguration) { +# 78| llvm::ErrorOr Options = +# 79| parseConfiguration(llvm::MemoryBufferRef( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_ChecksSeparatedByNewlines_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_ChecksSeparatedByNewlines_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST(ParseConfiguration, ChecksSeparatedByNewlines) { +# 97| auto MemoryBuffer = llvm::MemoryBufferRef("Checks: |\n" +# 98| " -*,misc-*\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:110:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_MergeConfigurations_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_MergeConfigurations_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 108| } +# 109| +# 110|-> TEST(ParseConfiguration, MergeConfigurations) { +# 111| llvm::ErrorOr Options1 = +# 112| parseConfiguration(llvm::MemoryBufferRef(R"( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:227:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ParseConfiguration_CollectDiags_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ParseConfiguration_CollectDiags_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 225| using ::testing::UnorderedElementsAre; +# 226| +# 227|-> TEST(ParseConfiguration, CollectDiags) { +# 228| DiagCollecter Collector; +# 229| auto ParseWithDiags = [&](llvm::StringRef Buffer) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:315:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::CheckOptionsValidation_MissingOptions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::CheckOptionsValidation_MissingOptions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 313| namespace test { +# 314| +# 315|-> TEST(CheckOptionsValidation, MissingOptions) { +# 316| ClangTidyOptions Options; +# 317| ClangTidyContext Context(std::make_unique( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:330:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::CheckOptionsValidation_ValidIntOptions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::CheckOptionsValidation_ValidIntOptions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 328| } +# 329| +# 330|-> TEST(CheckOptionsValidation, ValidIntOptions) { +# 331| ClangTidyOptions Options; +# 332| auto &CheckOptions = Options.CheckOptions; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp:395:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ValidConfiguration_ValidEnumOptions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ValidConfiguration_ValidEnumOptions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 393| } +# 394| +# 395|-> TEST(ValidConfiguration, ValidEnumOptions) { +# 396| +# 397| ClangTidyOptions Options; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:106:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstValueVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstValueVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 104| } +# 105| +# 106|-> TEST(ConstReferenceDeclRefExprsTest, ConstValueVar) { +# 107| RunTest<0>(R"( +# 108| void f(const S target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:139:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstRefVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstRefVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 137| } +# 138| +# 139|-> TEST(ConstReferenceDeclRefExprsTest, ConstRefVar) { +# 140| RunTest<0>(R"( +# 141| void f(const S& target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:171:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_DEBUGREMOVEME_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_DEBUGREMOVEME_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 169| } +# 170| +# 171|-> TEST(ConstReferenceDeclRefExprsTest, DEBUGREMOVEME) { +# 172| RunTest<0>(R"( +# 173| void f(S target, const S& other) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:179:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ValueVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ValueVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 177| } +# 178| +# 179|-> TEST(ConstReferenceDeclRefExprsTest, ValueVar) { +# 180| RunTest<0>(R"( +# 181| void f(S target, const S& other) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:218:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_RefVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_RefVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 216| } +# 217| +# 218|-> TEST(ConstReferenceDeclRefExprsTest, RefVar) { +# 219| RunTest<0>(R"( +# 220| void f(S& target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:256:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_PtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_PtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 254| } +# 255| +# 256|-> TEST(ConstReferenceDeclRefExprsTest, PtrVar) { +# 257| RunTest<1>(R"( +# 258| void f(S* target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:292:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 290| } +# 291| +# 292|-> TEST(ConstReferenceDeclRefExprsTest, ConstPtrVar) { +# 293| RunTest<1>(R"( +# 294| void f(const S* target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:326:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrPtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrPtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 324| } +# 325| +# 326|-> TEST(ConstReferenceDeclRefExprsTest, ConstPtrPtrVar) { +# 327| RunTest<2>(R"( +# 328| void f(const S** target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/DeclRefExprUtilsTest.cpp:356:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrConstPtrVar_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ConstReferenceDeclRefExprsTest_ConstPtrConstPtrVar_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 354| } +# 355| +# 356|-> TEST(ConstReferenceDeclRefExprsTest, ConstPtrConstPtrVar) { +# 357| RunTest<2>(R"( +# 358| void f(const S* const* target) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:12:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_SingleArgumentConstructorsOnly_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_SingleArgumentConstructorsOnly_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 10| namespace test { +# 11| +# 12|-> TEST(ExplicitConstructorCheckTest, SingleArgumentConstructorsOnly) { +# 13| EXPECT_NO_CHANGES(ExplicitConstructorCheck, "class C { C(); };"); +# 14| EXPECT_NO_CHANGES(ExplicitConstructorCheck, "class C { C(int i, int j); };"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:23:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_Basic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_Basic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 21| } +# 22| +# 23|-> TEST(ExplicitConstructorCheckTest, Basic) { +# 24| EXPECT_EQ("class C { explicit C(int i); };", +# 25| runCheckOnCode("class C { C(int i); };")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:28:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_DefaultParameters_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_DefaultParameters_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 26| } +# 27| +# 28|-> TEST(ExplicitConstructorCheckTest, DefaultParameters) { +# 29| EXPECT_EQ("class C { explicit C(int i, int j = 0); };", +# 30| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:34:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_OutOfLineDefinitions_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_OutOfLineDefinitions_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 32| } +# 33| +# 34|-> TEST(ExplicitConstructorCheckTest, OutOfLineDefinitions) { +# 35| EXPECT_EQ("class C { explicit C(int i); }; C::C(int i) {}", +# 36| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:40:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicit_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicit_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 38| } +# 39| +# 40|-> TEST(ExplicitConstructorCheckTest, RemoveExplicit) { +# 41| EXPECT_EQ("class A { A(const A&); };\n" +# 42| "class B { /*asdf*/ B(B&&); };\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:50:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicitWithMacros_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ExplicitConstructorCheckTest_RemoveExplicitWithMacros_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 48| } +# 49| +# 50|-> TEST(ExplicitConstructorCheckTest, RemoveExplicitWithMacros) { +# 51| EXPECT_EQ( +# 52| "#define A(T) class T##Bar { explicit T##Bar(const T##Bar &b) {} };\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:84:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDeclarations_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDeclarations_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 82| }; +# 83| +# 84|-> TEST_F(GlobalNamesInHeadersCheckTest, UsingDeclarations) { +# 85| EXPECT_TRUE(runCheckOnCode("using std::string;", "foo.h")); +# 86| EXPECT_FALSE(runCheckOnCode("using std::string;", "foo.cpp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:94:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDirectives_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::GlobalNamesInHeadersCheckTest_UsingDirectives_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 92| } +# 93| +# 94|-> TEST_F(GlobalNamesInHeadersCheckTest, UsingDirectives) { +# 95| EXPECT_TRUE(runCheckOnCode("using namespace std;", "foo.h")); +# 96| EXPECT_FALSE(runCheckOnCode("using namespace std;", "foo.cpp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/GoogleModuleTest.cpp:104:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::GlobalNamesInHeadersCheckTest_RegressionAnonymousNamespace_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::GlobalNamesInHeadersCheckTest_RegressionAnonymousNamespace_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 102| } +# 103| +# 104|-> TEST_F(GlobalNamesInHeadersCheckTest, RegressionAnonymousNamespace) { +# 105| EXPECT_FALSE(runCheckOnCode("namespace {}", "foo.h")); +# 106| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/LLVMModuleTest.cpp:65:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::LLVMHeaderGuardCheckTest_FixHeaderGuards_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::LLVMHeaderGuardCheckTest_FixHeaderGuards_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 63| } // namespace +# 64| +# 65|-> TEST(LLVMHeaderGuardCheckTest, FixHeaderGuards) { +# 66| EXPECT_EQ("#ifndef LLVM_ADT_FOO_H\n" +# 67| "#define LLVM_ADT_FOO_H\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/LLVMModuleTest.cpp:302:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::IncludeOrderCheck_GTestHeaders_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::IncludeOrderCheck_GTestHeaders_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 300| } +# 301| +# 302|-> TEST(IncludeOrderCheck, GTestHeaders) { +# 303| EXPECT_EQ( +# 304| R"cpp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:67:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_AddNewAlias_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_AddNewAlias_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 65| } +# 66| +# 67|-> TEST(NamespaceAliaserTest, AddNewAlias) { +# 68| EXPECT_EQ("#include \"foo.h\"\n" +# 69| "void f() {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:77:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_ReuseAlias_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_ReuseAlias_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 75| } +# 76| +# 77|-> TEST(NamespaceAliaserTest, ReuseAlias) { +# 78| EXPECT_EQ( +# 79| "#include \"foo.h\"\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:86:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_AddsOnlyOneAlias_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_AddsOnlyOneAlias_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 84| } +# 85| +# 86|-> TEST(NamespaceAliaserTest, AddsOnlyOneAlias) { +# 87| EXPECT_EQ("#include \"foo.h\"\n" +# 88| "void f() {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:96:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_LocalConflict_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_LocalConflict_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 94| } +# 95| +# 96|-> TEST(NamespaceAliaserTest, LocalConflict) { +# 97| EXPECT_EQ("#include \"foo.h\"\n" +# 98| "void f() {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/NamespaceAliaserTest.cpp:106:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::NamespaceAliaserTest_GlobalConflict_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::NamespaceAliaserTest_GlobalConflict_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 104| } +# 105| +# 106|-> TEST(NamespaceAliaserTest, GlobalConflict) { +# 107| EXPECT_EQ("#include \"foo.h\"\n" +# 108| "namespace b = foo;\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ObjCModuleTest.cpp:19:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjCForbiddenSubclassing_AllowedSubclass_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjCForbiddenSubclassing_AllowedSubclass_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 17| namespace test { +# 18| +# 19|-> TEST(ObjCForbiddenSubclassing, AllowedSubclass) { +# 20| std::vector Errors; +# 21| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ObjCModuleTest.cpp:31:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ObjCForbiddenSubclassing_ForbiddenSubclass_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ObjCForbiddenSubclassing_ForbiddenSubclass_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 29| } +# 30| +# 31|-> TEST(ObjCForbiddenSubclassing, ForbiddenSubclass) { +# 32| std::vector Errors; +# 33| runCheckOnCode( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OptionsProviderTest.cpp:19:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::ClangTidyOptionsProvider_InMemoryFileSystems_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::ClangTidyOptionsProvider_InMemoryFileSystems_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 17| namespace test { +# 18| +# 19|-> TEST(ClangTidyOptionsProvider, InMemoryFileSystems) { +# 20| llvm::IntrusiveRefCntPtr FileSystem( +# 21| new llvm::vfs::InMemoryFileSystem); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:137:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_UseCharCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_UseCharCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 135| } // namespace +# 136| +# 137|-> TEST(OverlappingReplacementsTest, UseCharCheckTest) { +# 138| const char Code[] = +# 139| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:156:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_IfFalseCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_IfFalseCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 154| } +# 155| +# 156|-> TEST(OverlappingReplacementsTest, IfFalseCheckTest) { +# 157| const char Code[] = +# 158| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:179:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_StartsWithCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_StartsWithCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 177| } +# 178| +# 179|-> TEST(OverlappingReplacementsTest, StartsWithCheckTest) { +# 180| const char Code[] = +# 181| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:204:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_EndsWithCheckTest_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_EndsWithCheckTest_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 202| } +# 203| +# 204|-> TEST(OverlappingReplacementsTest, EndsWithCheckTest) { +# 205| const char Code[] = +# 206| R"(void f() { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:229:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementTest_ReplacementsDoNotOverlap_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementTest_ReplacementsDoNotOverlap_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 227| } +# 228| +# 229|-> TEST(OverlappingReplacementTest, ReplacementsDoNotOverlap) { +# 230| std::string Res; +# 231| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:271:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_ReplacementInsideOtherReplacement_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_ReplacementInsideOtherReplacement_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 269| } +# 270| +# 271|-> TEST(OverlappingReplacementsTest, ReplacementInsideOtherReplacement) { +# 272| std::string Res; +# 273| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:328:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacements_TwoReplacementsInsideOne_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacements_TwoReplacementsInsideOne_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 326| } +# 327| +# 328|-> TEST(OverlappingReplacements, TwoReplacementsInsideOne) { +# 329| std::string Res; +# 330| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:357:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_ApplyAtMostOneOfTheChangesWhenPartialOverlapping_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_ApplyAtMostOneOfTheChangesWhenPartialOverlapping_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 355| } +# 356| +# 357|-> TEST(OverlappingReplacementsTest, +# 358| ApplyAtMostOneOfTheChangesWhenPartialOverlapping) { +# 359| std::string Res; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/OverlappingReplacementsTest.cpp:387:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::OverlappingReplacementsTest_TwoErrorsHavePerfectOverlapping_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::OverlappingReplacementsTest_TwoErrorsHavePerfectOverlapping_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 385| } +# 386| +# 387|-> TEST(OverlappingReplacementsTest, TwoErrorsHavePerfectOverlapping) { +# 388| std::string Res; +# 389| const char Code[] = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:15:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_Basic_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_Basic_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 13| using readability::SimplifyBooleanExprCheck; +# 14| +# 15|-> TEST(NamespaceCommentCheckTest, Basic) { +# 16| EXPECT_EQ("namespace i {\n} // namespace i", +# 17| runCheckOnCode("namespace i {\n}")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:25:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_SingleLineNamespaces_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_SingleLineNamespaces_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 23| } +# 24| +# 25|-> TEST(NamespaceCommentCheckTest, SingleLineNamespaces) { +# 26| EXPECT_EQ( +# 27| "namespace i { namespace j { } }", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:31:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_CheckExistingComments_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_CheckExistingComments_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 29| } +# 30| +# 31|-> TEST(NamespaceCommentCheckTest, CheckExistingComments) { +# 32| EXPECT_EQ("namespace i { namespace j {\n" +# 33| "} /* namespace j */ } // namespace i\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:83:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::NamespaceCommentCheckTest_FixWrongComments_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::NamespaceCommentCheckTest_FixWrongComments_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 81| } +# 82| +# 83|-> TEST(NamespaceCommentCheckTest, FixWrongComments) { +# 84| EXPECT_EQ("namespace i { namespace jJ0_ {\n" +# 85| "} // namespace jJ0_\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:103:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_IfWithComments_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_IfWithComments_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 101| } +# 102| +# 103|-> TEST(BracesAroundStatementsCheckTest, IfWithComments) { +# 104| EXPECT_EQ("int main() {\n" +# 105| " if (false /*dummy token*/) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:140:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_If_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_If_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 138| } +# 139| +# 140|-> TEST(BracesAroundStatementsCheckTest, If) { +# 141| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 142| " if (false) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:241:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_IfElseWithShortStatements_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_IfElseWithShortStatements_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 239| } +# 240| +# 241|-> TEST(BracesAroundStatementsCheckTest, IfElseWithShortStatements) { +# 242| ClangTidyOptions Options; +# 243| Options.CheckOptions["test-check-0.ShortStatementLines"] = "1"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:275:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_For_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_For_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 273| } +# 274| +# 275|-> TEST(BracesAroundStatementsCheckTest, For) { +# 276| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 277| " for (;;) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:310:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_ForRange_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_ForRange_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 308| } +# 309| +# 310|-> TEST(BracesAroundStatementsCheckTest, ForRange) { +# 311| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 312| " int arr[4];\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:335:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_DoWhile_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_DoWhile_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 333| } +# 334| +# 335|-> TEST(BracesAroundStatementsCheckTest, DoWhile) { +# 336| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 337| " do {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:353:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_While_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_While_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 351| } +# 352| +# 353|-> TEST(BracesAroundStatementsCheckTest, While) { +# 354| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, "int main() {\n" +# 355| " while (false) {\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:417:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_Nested_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_Nested_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 415| } +# 416| +# 417|-> TEST(BracesAroundStatementsCheckTest, Nested) { +# 418| EXPECT_EQ("int main() {\n" +# 419| " do { if (true) {}} while (false);\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:452:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_Macros_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_Macros_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 450| } +# 451| +# 452|-> TEST(BracesAroundStatementsCheckTest, Macros) { +# 453| EXPECT_NO_CHANGES(BracesAroundStatementsCheck, +# 454| "#define IF(COND) if (COND) return -1;\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:489:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::BracesAroundStatementsCheckTest_ImplicitCastInReturn_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::BracesAroundStatementsCheckTest_ImplicitCastInReturn_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 487| EXPECT_EQ(Code, runCheckOnCode(Code, nullptr, "input.cc", \ +# 488| std::nullopt, Opts)) +# 489|-> TEST(BracesAroundStatementsCheckTest, ImplicitCastInReturn) { +# 490| ClangTidyOptions Opts; +# 491| Opts.CheckOptions["test-check-0.ShortStatementLines"] = "1"; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp:506:1: constructor_uses_global_object: The constructor of global object "clang::tidy::test::SimplifyBooleanExprCheckTest_CodeWithError_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::test::SimplifyBooleanExprCheckTest_CodeWithError_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 504| } +# 505| +# 506|-> TEST(SimplifyBooleanExprCheckTest, CodeWithError) { +# 507| // Fixes PR55557 +# 508| // Need to downgrade Wreturn-type from error as runCheckOnCode will fatal_exit + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/UsingInserterTest.cpp:71:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::UsingInserterTest_ReusesExisting_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::UsingInserterTest_ReusesExisting_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 69| } +# 70| +# 71|-> TEST(UsingInserterTest, ReusesExisting) { +# 72| EXPECT_EQ("#include \"foo.h\"\n" +# 73| "namespace {" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/UsingInserterTest.cpp:85:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::UsingInserterTest_ReusesExistingGlobal_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::UsingInserterTest_ReusesExistingGlobal_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 83| } +# 84| +# 85|-> TEST(UsingInserterTest, ReusesExistingGlobal) { +# 86| EXPECT_EQ("#include \"foo.h\"\n" +# 87| "using ::foo::func;\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang-tools-extra/unittests/clang-tidy/UsingInserterTest.cpp:99:1: constructor_uses_global_object: The constructor of global object "clang::tidy::utils::UsingInserterTest_AvoidsConflict_Test::test_info_" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::tidy::utils::UsingInserterTest_AvoidsConflict_Test::test_info_" might be created before "fuzzer::TPC" is available. +# 97| } +# 98| +# 99|-> TEST(UsingInserterTest, AvoidsConflict) { +# 100| EXPECT_EQ("#include \"foo.h\"\n" +# 101| "namespace {" + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/APValue.h:367:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/include/clang/AST/APValue.h:369:5: uninit_use: Using uninitialized value "Result". Field "Result.Data" is uninitialized. +# 367| APValue Result; +# 368| Result.Kind = Indeterminate; +# 369|-> return Result; +# 370| } +# 371| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:376:7: var_decl: Declaring variable "Node". +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:378:7: uninit_use: Using uninitialized value "Node". Field "Node.Storage" is uninitialized. +# 376| DynTypedNode Node; +# 377| Node.NodeKind = ASTNodeKind::DenseMapInfo::getEmptyKey(); +# 378|-> return Node; +# 379| } +# 380| static inline DynTypedNode getTombstoneKey() { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:381:7: var_decl: Declaring variable "Node". +llvm-project-19.0.0.src/clang/include/clang/AST/ASTTypeTraits.h:383:7: uninit_use: Using uninitialized value "Node". Field "Node.Storage" is uninitialized. +# 381| DynTypedNode Node; +# 382| Node.NodeKind = ASTNodeKind::DenseMapInfo::getTombstoneKey(); +# 383|-> return Node; +# 384| } +# 385| static unsigned getHashValue(const DynTypedNode &Val) { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclCXX.h:3288:5: address_of: Taking address with "&this->ExprWithTemporary" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/DeclCXX.h:3288:5: ptr_arith: Using "&this->ExprWithTemporary" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3286| // Iterators +# 3287| Stmt::child_range childrenExpr() { +# 3288|-> return Stmt::child_range(&ExprWithTemporary, &ExprWithTemporary + 1); +# 3289| } +# 3290| + +Error: RETURN_LOCAL (CWE-562): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclContextInternals.h:54:5: local_ptr_assign_local: Assigning: "NewTail" = "&NewHead" (address of local variable "NewHead"). +llvm-project-19.0.0.src/clang/include/clang/AST/DeclContextInternals.h:57:9: local_ptr_assign_ptr: Assigning: "NewLast" = "NewTail". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclContextInternals.h:92:7: return_local_addr_alias: Returning pointer "NewLast" which points to local variable "NewHead". +# 90| else { +# 91| assert(NewLast && NewLast->is() && "Not the tail?"); +# 92|-> return NewLast; +# 93| } +# 94| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:107:7: address_of: Taking address with "&this->D" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:107:7: ptr_arith: Using "&this->D" as an array. This might corrupt or misinterpret adjacent memory locations. +# 105| iterator end() { +# 106| if (isSingleDecl()) +# 107|-> return D ? &D+1 : nullptr; +# 108| DeclGroup &G = getDeclGroup(); +# 109| return &G[0] + G.size(); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:120:7: address_of: Taking address with "&this->D" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/DeclGroup.h:120:7: ptr_arith: Using "&this->D" as an array. This might corrupt or misinterpret adjacent memory locations. +# 118| const_iterator end() const { +# 119| if (isSingleDecl()) +# 120|-> return D ? &D+1 : nullptr; +# 121| const DeclGroup &G = getDeclGroup(); +# 122| return &G[0] + G.size(); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:53:5: new_object: Calling single-object form of 'new': "new (C, DC, clang::OMPDeclarativeDirective::size(Clauses.size(), NumChildren)) clang::OMPAllocateDecl(DC, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:53:5: assign: Assigning: "Inst" = "new (C, DC, clang::OMPDeclarativeDirective::size(Clauses.size(), NumChildren)) clang::OMPAllocateDecl(DC, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:55:5: ptr_arith: Using "Inst" as an array. This might corrupt or misinterpret adjacent memory locations. +# 53| auto *Inst = new (C, DC, size(Clauses.size(), NumChildren)) +# 54| T(DC, std::forward(P)...); +# 55|-> Inst->Data = OMPChildren::Create(Inst + 1, Clauses, +# 56| /*AssociatedStmt=*/nullptr, NumChildren); +# 57| Inst->Data->setClauses(Clauses); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:65:5: new_object: Calling single-object form of 'new': "new (C, ID, clang::OMPDeclarativeDirective::size(NumClauses, NumChildren)) clang::OMPAllocateDecl(NULL, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:65:5: assign: Assigning: "Inst" = "new (C, ID, clang::OMPDeclarativeDirective::size(NumClauses, NumChildren)) clang::OMPAllocateDecl(NULL, std::forward(P))". +llvm-project-19.0.0.src/clang/include/clang/AST/DeclOpenMP.h:67:5: ptr_arith: Using "Inst" as an array. This might corrupt or misinterpret adjacent memory locations. +# 65| auto *Inst = new (C, ID, size(NumClauses, NumChildren)) +# 66| T(nullptr, std::forward(P)...); +# 67|-> Inst->Data = OMPChildren::CreateEmpty( +# 68| Inst + 1, NumClauses, /*HasAssociatedStmt=*/false, NumChildren); +# 69| return Inst; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1153:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1153:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1151| llvm::APSInt getResultAsAPSInt() const; +# 1152| // Iterators +# 1153|-> child_range children() { return child_range(&SubExpr, &SubExpr+1); } +# 1154| const_child_range children() const { +# 1155| return const_child_range(&SubExpr, &SubExpr + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1738:28: address_of: Taking address with "&this->Val" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:1738:28: ptr_arith: Using "&this->Val" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1736| +# 1737| // Iterators +# 1738|-> child_range children() { return child_range(&Val, &Val+1); } +# 1739| const_child_range children() const { +# 1740| return const_child_range(&Val, &Val + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:2318:28: address_of: Taking address with "&this->Val" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:2318:28: ptr_arith: Using "&this->Val" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2316| +# 2317| // Iterators +# 2318|-> child_range children() { return child_range(&Val, &Val+1); } +# 2319| const_child_range children() const { +# 2320| return const_child_range(&Val, &Val + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3405:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3405:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3403| +# 3404| // Iterators +# 3405|-> child_range children() { return child_range(&Base, &Base+1); } +# 3406| const_child_range children() const { +# 3407| return const_child_range(&Base, &Base + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3628:28: address_of: Taking address with "&this->Op" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:3628:28: ptr_arith: Using "&this->Op" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3626| +# 3627| // Iterators +# 3628|-> child_range children() { return child_range(&Op, &Op+1); } +# 3629| const_child_range children() const { return const_child_range(&Op, &Op + 1); } +# 3630| }; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4419:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4419:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4417| +# 4418| // Iterators +# 4419|-> child_range children() { return child_range(&SubStmt, &SubStmt+1); } +# 4420| const_child_range children() const { +# 4421| return const_child_range(&SubStmt, &SubStmt + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4543:28: address_of: Taking address with "&this->SrcExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4543:28: ptr_arith: Using "&this->SrcExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4541| +# 4542| // Iterators +# 4543|-> child_range children() { return child_range(&SrcExpr, &SrcExpr+1); } +# 4544| const_child_range children() const { +# 4545| return const_child_range(&SrcExpr, &SrcExpr + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4708:28: address_of: Taking address with "&this->Val" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:4708:28: ptr_arith: Using "&this->Val" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4706| +# 4707| // Iterators +# 4708|-> child_range children() { return child_range(&Val, &Val+1); } +# 4709| const_child_range children() const { +# 4710| return const_child_range(&Val, &Val + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6165:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6165:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 6163| +# 6164| // Iterators +# 6165|-> child_range children() { return child_range(&Base, &Base+1); } +# 6166| const_child_range children() const { +# 6167| return const_child_range(&Base, &Base + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6269:28: address_of: Taking address with "&this->SrcExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Expr.h:6269:28: ptr_arith: Using "&this->SrcExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 6267| +# 6268| // Iterators +# 6269|-> child_range children() { return child_range(&SrcExpr, &SrcExpr+1); } +# 6270| const_child_range children() const { +# 6271| return const_child_range(&SrcExpr, &SrcExpr + 1); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:357:5: address_of: Taking address with "&this->SemanticForm" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:357:5: ptr_arith: Using "&this->SemanticForm" as an array. This might corrupt or misinterpret adjacent memory locations. +# 355| +# 356| child_range children() { +# 357|-> return child_range(&SemanticForm, &SemanticForm + 1); +# 358| } +# 359| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:833:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:833:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 831| } +# 832| +# 833|-> child_range children() { return child_range(&SubExpr, &SubExpr + 1); } +# 834| +# 835| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:910:5: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:910:5: assign: Assigning: "begin" = "reinterpret_cast(&this->Operand)". +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:911:5: ptr_arith: Using "begin" as an array. This might corrupt or misinterpret adjacent memory locations. +# 909| return child_range(child_iterator(), child_iterator()); +# 910| auto **begin = reinterpret_cast(&Operand); +# 911|-> return child_range(begin, begin + 1); +# 912| } +# 913| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1123:5: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1123:5: assign: Assigning: "begin" = "reinterpret_cast(&this->Operand)". +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1124:5: ptr_arith: Using "begin" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1122| return child_range(child_iterator(), child_iterator()); +# 1123| auto **begin = reinterpret_cast(&Operand); +# 1124|-> return child_range(begin, begin + 1); +# 1125| } +# 1126| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1249:5: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:1249:5: ptr_arith: Using "&this->Operand" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1247| // Iterators +# 1248| child_range children() { +# 1249|-> return child_range(&Operand, Operand ? &Operand + 1 : &Operand); +# 1250| } +# 1251| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:2746:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:2746:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2744| +# 2745| // Iterators +# 2746|-> child_range children() { return child_range(&Base, &Base + 1); } +# 2747| +# 2748| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3520:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3520:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3518| +# 3519| // Iterators +# 3520|-> child_range children() { return child_range(&SubExpr, &SubExpr + 1); } +# 3521| +# 3522| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3907:5: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:3907:5: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3905| if (isImplicitAccess()) +# 3906| return child_range(child_iterator(), child_iterator()); +# 3907|-> return child_range(&Base, &Base + 1); +# 3908| } +# 3909| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4076:5: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4076:5: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4074| if (isImplicitAccess()) +# 4075| return child_range(child_iterator(), child_iterator()); +# 4076|-> return child_range(&Base, &Base + 1); +# 4077| } +# 4078| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4149:28: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4149:28: ptr_arith: Using "&this->Operand" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4147| +# 4148| // Iterators +# 4149|-> child_range children() { return child_range(&Operand, &Operand + 1); } +# 4150| +# 4151| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4532:28: address_of: Taking address with "&this->Replacement" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprCXX.h:4532:28: ptr_arith: Using "&this->Replacement" as an array. This might corrupt or misinterpret adjacent memory locations. +# 4530| +# 4531| // Iterators +# 4532|-> child_range children() { return child_range(&Replacement, &Replacement + 1); } +# 4533| +# 4534| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:75:28: address_of: Taking address with "&this->String" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:75:28: ptr_arith: Using "&this->String" as an array. This might corrupt or misinterpret adjacent memory locations. +# 73| +# 74| // Iterators +# 75|-> child_range children() { return child_range(&String, &String+1); } +# 76| +# 77| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:166:28: address_of: Taking address with "&this->SubExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:166:28: ptr_arith: Using "&this->SubExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 164| +# 165| // Iterators +# 166|-> child_range children() { return child_range(&SubExpr, &SubExpr+1); } +# 167| +# 168| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:604:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:604:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 602| +# 603| // Iterators +# 604|-> child_range children() { return child_range(&Base, &Base+1); } +# 605| +# 606| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1542:28: address_of: Taking address with "&this->Base" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1542:28: ptr_arith: Using "&this->Base" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1540| +# 1541| // Iterators +# 1542|-> child_range children() { return child_range(&Base, &Base+1); } +# 1543| +# 1544| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1605:28: address_of: Taking address with "&this->Operand" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ExprObjC.h:1605:28: ptr_arith: Using "&this->Operand" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1603| bool shouldCopy() const { return ObjCIndirectCopyRestoreExprBits.ShouldCopy; } +# 1604| +# 1605|-> child_range children() { return child_range(&Operand, &Operand+1); } +# 1606| +# 1607| const_child_range children() const { + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/AST/IgnoreExpr.h:38:5: move: "Fns" is moved (indicated by "std::forward(Fns)"). +llvm-project-19.0.0.src/clang/include/clang/AST/IgnoreExpr.h:38:5: use_after_move: "Fns" is used after it has been already moved. +# 36| while (E != LastE) { +# 37| LastE = E; +# 38|-> E = detail::IgnoreExprNodesImpl(E, std::forward(Fns)...); +# 39| } +# 40| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:604:28: address_of: Taking address with "&this->Condition" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:604:28: ptr_arith: Using "&this->Condition" as an array. This might corrupt or misinterpret adjacent memory locations. +# 602| SourceLocation getNameModifierLoc() const { return NameModifierLoc; } +# 603| +# 604|-> child_range children() { return child_range(&Condition, &Condition + 1); } +# 605| +# 606| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:1901:28: address_of: Taking address with "&this->NumForLoops" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/OpenMPClause.h:1901:28: ptr_arith: Using "&this->NumForLoops" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1899| const Expr *getLoopCounter(unsigned NumLoop) const; +# 1900| +# 1901|-> child_range children() { return child_range(&NumForLoops, &NumForLoops + 1); } +# 1902| +# 1903| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/ParentMapContext.h:113:5: address_of: Taking address with "&(*this).SingleNode" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/ParentMapContext.h:113:5: ptr_arith: Using "&(*this).SingleNode" as an array. This might corrupt or misinterpret adjacent memory locations. +# 111| +# 112| const DynTypedNode *end() const { +# 113|-> return !IsSingleNode ? Nodes.end() : &SingleNode + 1; +# 114| } +# 115| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:1983:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:1983:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1981| +# 1982| // Iterators +# 1983|-> child_range children() { return child_range(&SubStmt, &SubStmt + 1); } +# 1984| +# 1985| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2061:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2061:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2059| SourceLocation getEndLoc() const LLVM_READONLY { return SubStmt->getEndLoc();} +# 2060| +# 2061|-> child_range children() { return child_range(&SubStmt, &SubStmt + 1); } +# 2062| +# 2063| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2124:28: address_of: Taking address with "&this->SubStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:2124:28: ptr_arith: Using "&this->SubStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 2122| SourceLocation getEndLoc() const LLVM_READONLY { return SubStmt->getEndLoc();} +# 2123| +# 2124|-> child_range children() { return child_range(&SubStmt, &SubStmt + 1); } +# 2125| +# 2126| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:3088:7: address_of: Taking address with "&this->RetExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/Stmt.h:3088:7: ptr_arith: Using "&this->RetExpr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 3086| child_range children() { +# 3087| if (RetExpr) +# 3088|-> return child_range(&RetExpr, &RetExpr + 1); +# 3089| return child_range(child_iterator(), child_iterator()); +# 3090| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/StmtObjC.h:119:28: address_of: Taking address with "&this->Body" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/StmtObjC.h:119:28: ptr_arith: Using "&this->Body" as an array. This might corrupt or misinterpret adjacent memory locations. +# 117| } +# 118| +# 119|-> child_range children() { return child_range(&Body, &Body + 1); } +# 120| +# 121| const_child_range children() const { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/include/clang/AST/StmtOpenACC.h:98:7: address_of: Taking address with "&this->AssociatedStmt" yields a singleton pointer. +llvm-project-19.0.0.src/clang/include/clang/AST/StmtOpenACC.h:98:7: ptr_arith: Using "&this->AssociatedStmt" as an array. This might corrupt or misinterpret adjacent memory locations. +# 96| child_range children() { +# 97| if (getAssociatedStmt()) +# 98|-> return child_range(&AssociatedStmt, &AssociatedStmt + 1); +# 99| return child_range(child_iterator(), child_iterator()); +# 100| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/ExtractAPI/ExtractAPIVisitor.h:172:5: var_decl: Declaring variable "Bases". +llvm-project-19.0.0.src/clang/include/clang/ExtractAPI/ExtractAPIVisitor.h:194:5: uninit_use: Using uninitialized value "Bases". Field "Bases.InlineElts" is uninitialized. +# 192| Bases.emplace_back(BaseClass); +# 193| } +# 194|-> return Bases; +# 195| } +# 196| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Frontend/CommandLineSourceLoc.h:34:5: var_decl: Declaring variable "PSL". +llvm-project-19.0.0.src/clang/include/clang/Frontend/CommandLineSourceLoc.h:50:5: uninit_use: Using uninitialized value "PSL". Field "PSL.Line" is uninitialized. +# 48| } +# 49| +# 50|-> return PSL; +# 51| } +# 52| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1670:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1680:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1678| I.Ptr.AtomicQualLoc = AtomicQualLoc; +# 1679| I.Ptr.UnalignedQualLoc = UnalignedQualLoc; +# 1680|-> return I; +# 1681| } +# 1682| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1686:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1691:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1689| I.Ref.HasRestrict = (TypeQuals & DeclSpec::TQ_restrict) != 0; +# 1690| I.Ref.LValueRef = lvalue; +# 1691|-> return I; +# 1692| } +# 1693| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1698:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1706:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1704| I.Arr.isStar = isStar; +# 1705| I.Arr.NumElts = NumElts; +# 1706|-> return I; +# 1707| } +# 1708| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1740:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1744:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1742| I.Loc = Loc; +# 1743| I.Cls.TypeQuals = TypeQuals; +# 1744|-> return I; +# 1745| } +# 1746| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1750:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1754:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1752| I.Loc = Loc; +# 1753| I.Cls.TypeQuals = TypeQuals; +# 1754|-> return I; +# 1755| } +# 1756| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1761:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1769:5: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 1767| I.Mem.TypeQuals = TypeQuals; +# 1768| new (I.Mem.ScopeMem) CXXScopeSpec(SS); +# 1769|-> return I; +# 1770| } +# 1771| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1775:5: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/include/clang/Sema/DeclSpec.h:1779:5: uninit_use: Using uninitialized value "I". Field "I" is uninitialized. +# 1777| I.Loc = LParenLoc; +# 1778| I.EndLoc = RParenLoc; +# 1779|-> return I; +# 1780| } +# 1781| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:225:3: var_decl: Declaring variable "APINotes". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:293:9: uninit_use: Using uninitialized value "APINotes". Field "APINotes.InlineElts" is uninitialized. +# 291| if (auto File = findAPINotesFile(*SearchDir, ModuleName)) { +# 292| APINotes.push_back(*File); +# 293|-> return APINotes; +# 294| } +# 295| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:225:3: var_decl: Declaring variable "APINotes". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:299:3: uninit_use: Using uninitialized value "APINotes". Field "APINotes.InlineElts" is uninitialized. +# 297| +# 298| // Didn't find any API notes. +# 299|-> return APINotes; +# 300| } +# 301| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:338:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 336| Results.append(getCurrentModuleReaders().begin(), +# 337| getCurrentModuleReaders().end()); +# 338|-> return Results; +# 339| } +# 340| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:343:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 341| // If we're not allowed to implicitly load API notes files, we're done. +# 342| if (!ImplicitAPINotes) +# 343|-> return Results; +# 344| +# 345| // If we don't have source location information, we're done. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:347:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 345| // If we don't have source location information, we're done. +# 346| if (Loc.isInvalid()) +# 347|-> return Results; +# 348| +# 349| // API notes are associated with the expansion location. Retrieve the + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:354:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 352| FileID ID = SM.getFileID(ExpansionLoc); +# 353| if (ID.isInvalid()) +# 354|-> return Results; +# 355| OptionalFileEntryRef File = SM.getFileEntryRefForID(ID); +# 356| if (!File) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:357:5: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 355| OptionalFileEntryRef File = SM.getFileEntryRefForID(ID); +# 356| if (!File) +# 357|-> return Results; +# 358| +# 359| // Look for API notes in the directory corresponding to this file, or one of + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:332:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:462:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 460| Readers[Visited] = Dir ? ReaderEntry(*Dir) : ReaderEntry(); +# 461| +# 462|-> return Results; +# 463| } +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesManager.cpp:462:3: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:81:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:92:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 90| Result.push_back({version, UnversionedData}); +# 91| } +# 92|-> return Result; +# 93| } +# 94| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:414:5: var_decl: Declaring variable "Key". +llvm-project-19.0.0.src/clang/lib/APINotes/APINotesReader.cpp:421:5: uninit_use: Using uninitialized value "Key". Field "Key.Identifiers.InlineElts" is uninitialized. +# 419| endian::readNext(Data)); +# 420| } +# 421|-> return Key; +# 422| } +# 423| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:167:60: uninit_use_in_call: Using uninitialized value "I.DGE" when calling "operator ++". +# 165| +# 166| for (Stmt::child_iterator +# 167|-> I = S->body_begin(), E = S->body_end(); I != E; ++I) { +# 168| Stmt *child = getEssential(*I); +# 169| if (DeclStmt *DclS = dyn_cast(child)) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:182:17: uninit_use: Using uninitialized value "I". Field "I.DGE" is uninitialized. +# 180| Scopes.back().PoolVar = VD; +# 181| Scopes.back().CompoundParent = S; +# 182|-> Scopes.back().Begin = I; +# 183| } +# 184| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:197:15: uninit_use: Using uninitialized value "I". Field "I.DGE" is uninitialized. +# 195| Scopes.back().PoolVar = VD; +# 196| Scopes.back().CompoundParent = S; +# 197|-> Scopes.back().Begin = I; +# 198| } +# 199| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:166:10: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransAutoreleasePool.cpp:208:9: uninit_use: Using uninitialized value "I". Field "I.DGE" is uninitialized. +# 206| if (isPoolDrain(Scopes.back().PoolVar, child)) { +# 207| PoolScope &scope = Scopes.back(); +# 208|-> scope.End = I; +# 209| handlePoolScope(scope, S); +# 210| Scopes.pop_back(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:287:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:291:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 289| data.Loc = loc; +# 290| data.Text1 = text; +# 291|-> CachedActions.push_back(data); +# 292| } +# 293| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:297:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:301:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 299| data.Loc = loc; +# 300| data.Text1 = text; +# 301|-> CachedActions.push_back(data); +# 302| } +# 303| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:306:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:309:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 307| data.Kind = Act_Remove; +# 308| data.R1 = range; +# 309|-> CachedActions.push_back(data); +# 310| } +# 311| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:314:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:319:3: uninit_use_in_call: Using uninitialized value "data". Field "data.DiagIDs.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 317| S = E->IgnoreImplicit(); // important for uniquing +# 318| data.S = S; +# 319|-> CachedActions.push_back(data); +# 320| } +# 321| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:332:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:336:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 334| data.R1 = range; +# 335| data.R2 = replacementRange; +# 336|-> CachedActions.push_back(data); +# 337| } +# 338| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:343:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:348:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 346| data.Text1 = text; +# 347| data.Text2 = replacementText; +# 348|-> CachedActions.push_back(data); +# 349| } +# 350| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:362:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:366:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 364| data.R1 = range; +# 365| data.Loc = parentIndent; +# 366|-> CachedActions.push_back(data); +# 367| } +# 368| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:375:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/ARCMigrate/TransformActions.cpp:379:3: uninit_use_in_call: Using uninitialized value "data". Field "data.S" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 377| data.R1 = range; +# 378| data.DiagIDs.append(IDs.begin(), IDs.end()); +# 379|-> CachedActions.push_back(data); +# 380| return true; +# 381| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:311:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:355:7: uninit_use_in_call: Using uninitialized value "this->Data" when calling "getArrayInitializedElt". +# 353| MakeArray(RHS.getArrayInitializedElts(), RHS.getArraySize()); +# 354| for (unsigned I = 0, N = RHS.getArrayInitializedElts(); I != N; ++I) +# 355|-> getArrayInitializedElt(I) = RHS.getArrayInitializedElt(I); +# 356| if (RHS.hasArrayFiller()) +# 357| getArrayFiller() = RHS.getArrayFiller(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:311:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/clang/lib/AST/APValue.cpp:362:7: uninit_use_in_call: Using uninitialized value "this->Data" when calling "getStructBase". +# 360| MakeStruct(RHS.getStructNumBases(), RHS.getStructNumFields()); +# 361| for (unsigned I = 0, N = RHS.getStructNumBases(); I != N; ++I) +# 362|-> getStructBase(I) = RHS.getStructBase(I); +# 363| for (unsigned I = 0, N = RHS.getStructNumFields(); I != N; ++I) +# 364| getStructField(I) = RHS.getStructField(I); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:171:3: var_decl: Declaring variable "Locations". +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:212:3: uninit_use: Using uninitialized value "Locations". Field "Locations.InlineElts" is uninitialized. +# 210| } +# 211| +# 212|-> return Locations; +# 213| } +# 214| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:12634:3: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:12638:3: uninit_use: Using uninitialized value "R". Field "R.InlineElts" is uninitialized. +#12636| assert(!Different); +#12637| (void)Different; +#12638|-> return R; +#12639| } +#12640| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:13349:3: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/AST/ASTContext.cpp:13358:3: uninit_use: Using uninitialized value "R". Field "R.InlineElts" is uninitialized. +#13356| T = NT.split(); +#13357| } +#13358|-> return R; +#13359| } +#13360| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:111:5: var_decl: Declaring variable "Redecls". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:118:5: uninit_use: Using uninitialized value "Redecls". Field "Redecls.InlineElts" is uninitialized. +# 116| Redecls.push_back(D->getFirstDecl()); +# 117| std::reverse(Redecls.begin(), Redecls.end()); +# 118|-> return Redecls; +# 119| } +# 120| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10262:5: uninit_use_in_call: Using uninitialized value "((clang::APValue::Arr const *)(char const *)&Result.Data)->Elts" when calling "operator ()". +#10260| Result.MakeArray(FromValue.getArrayInitializedElts(), +#10261| FromValue.getArraySize()); +#10262|-> ImportLoop(((const APValue::Arr *)(const char *)&FromValue.Data)->Elts, +#10263| ((const APValue::Arr *)(const char *)&Result.Data)->Elts, +#10264| FromValue.getArrayInitializedElts()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10269:5: uninit_use_in_call: Using uninitialized value "((clang::APValue::StructData const *)(char const *)&Result.Data)->Elts" when calling "operator ()". +#10267| Result.MakeStruct(FromValue.getStructNumBases(), +#10268| FromValue.getStructNumFields()); +#10269|-> ImportLoop( +#10270| ((const APValue::StructData *)(const char *)&FromValue.Data)->Elts, +#10271| ((const APValue::StructData *)(const char *)&Result.Data)->Elts, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10279:7: uninit_use_in_call: Using uninitialized value "Result.Data" when calling "~APValue". +#10277| APValue ImpValue = importChecked(Err, FromValue.getUnionValue()); +#10278| if (Err) +#10279|-> return std::move(Err); +#10280| Result.setUnion(cast(ImpFDecl), ImpValue); +#10281| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10233:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/AST/ASTImporter.cpp:10389:3: uninit_use_in_call: Using uninitialized value "Result.Data" when calling "Expected". +#10387| if (Err) +#10388| return std::move(Err); +#10389|-> return Result; +#10390| } +#10391| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Availability.cpp:24:3: var_decl: Declaring variable "Availability". +llvm-project-19.0.0.src/clang/lib/AST/Availability.cpp:45:3: uninit_use: Using uninitialized value "Availability". Field "Availability.Domain.InlineElts" is uninitialized. +# 43| Availability.UnconditionallyDeprecated = true; +# 44| } +# 45|-> return Availability; +# 46| } +# 47| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:3105:3: new_object: Calling single-object form of 'new': "new (Context->Allocate(Size, 8U)) clang::FunctionDecl::DefaultedOrDeletedFunctionInfo". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:3105:3: assign: Assigning: "Info" = "new (Context->Allocate(Size, 8U)) clang::FunctionDecl::DefaultedOrDeletedFunctionInfo". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:3110:3: callee_ptr_arith: Passing "Info" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3108| Info->HasDeletedMessage = DeletedMessage != nullptr; +# 3109| +# 3110|-> std::uninitialized_copy(Lookups.begin(), Lookups.end(), +# 3111| Info->getTrailingObjects()); +# 3112| if (DeletedMessage) + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5292:3: new_object: Calling single-object form of 'new': "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(Arg.size() + 1UL)) clang::PragmaCommentDecl(DC, CommentLoc, CommentKind)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5292:3: assign: Assigning: "PCD" = "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(Arg.size() + 1UL)) clang::PragmaCommentDecl(DC, CommentLoc, CommentKind)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5295:3: callee_ptr_arith: Passing "PCD" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 5293| new (C, DC, additionalSizeToAlloc(Arg.size() + 1)) +# 5294| PragmaCommentDecl(DC, CommentLoc, CommentKind); +# 5295|-> memcpy(PCD->getTrailingObjects(), Arg.data(), Arg.size()); +# 5296| PCD->getTrailingObjects()[Arg.size()] = '\0'; +# 5297| return PCD; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5314:3: new_object: Calling single-object form of 'new': "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(ValueStart + Value.size() + 1UL)) clang::PragmaDetectMismatchDecl(DC, Loc, ValueStart)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5314:3: assign: Assigning: "PDMD" = "new (C, DC, llvm::TrailingObjects::additionalSizeToAlloc(ValueStart + Value.size() + 1UL)) clang::PragmaDetectMismatchDecl(DC, Loc, ValueStart)". +llvm-project-19.0.0.src/clang/lib/AST/Decl.cpp:5317:3: callee_ptr_arith: Passing "PDMD" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 5315| new (C, DC, additionalSizeToAlloc(ValueStart + Value.size() + 1)) +# 5316| PragmaDetectMismatchDecl(DC, Loc, ValueStart); +# 5317|-> memcpy(PDMD->getTrailingObjects(), Name.data(), Name.size()); +# 5318| PDMD->getTrailingObjects()[Name.size()] = '\0'; +# 5319| memcpy(PDMD->getTrailingObjects() + ValueStart, Value.data(), + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/DeclBase.cpp:109:5: new_object: Calling single-object form of 'new': "new (Buffer) clang::Module *ParentModule". +llvm-project-19.0.0.src/clang/lib/AST/DeclBase.cpp:109:5: ptr_arith: Using "new (Buffer) clang::Module *ParentModule" as an array. This might corrupt or misinterpret adjacent memory locations. +# 107| auto *ParentModule = +# 108| Parent ? cast(Parent)->getOwningModule() : nullptr; +# 109|-> return new (Buffer) Module*(ParentModule) + 1; +# 110| } +# 111| return ::operator new(Size + Extra, Ctx); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3227:3: new_object: Calling single-object form of 'new': "new (C, ID, Extra) clang::UsingPackDecl(NULL, NULL, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3227:3: assign: Assigning: "Result" = "new (C, ID, Extra) clang::UsingPackDecl(NULL, NULL, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3230:3: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3228| new (C, ID, Extra) UsingPackDecl(nullptr, nullptr, std::nullopt); +# 3229| Result->NumExpansions = NumExpansions; +# 3230|-> auto *Trail = Result->getTrailingObjects(); +# 3231| for (unsigned I = 0; I != NumExpansions; ++I) +# 3232| new (Trail + I) NamedDecl*(nullptr); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3375:3: new_object: Calling single-object form of 'new': "new (C, ID, Extra) clang::DecompositionDecl(C, NULL, clang::SourceLocation(), clang::SourceLocation(), clang::QualType(), NULL, (clang::StorageClass)0, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3375:3: assign: Assigning: "Result" = "new (C, ID, Extra) clang::DecompositionDecl(C, NULL, clang::SourceLocation(), clang::SourceLocation(), clang::QualType(), NULL, (clang::StorageClass)0, llvm::ArrayRef(std::nullopt))". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3380:3: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3378| // Set up and clean out the bindings array. +# 3379| Result->NumBindings = NumBindings; +# 3380|-> auto *Trail = Result->getTrailingObjects(); +# 3381| for (unsigned I = 0; I != NumBindings; ++I) +# 3382| new (Trail + I) BindingDecl*(nullptr); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3497:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), 0U, 4U)". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3497:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 3495| using llvm::APInt; +# 3496| using llvm::APSInt; +# 3497|-> APVal = APValue(APValue::UninitStruct(), 0, 4); +# 3498| APVal.getStructField(0) = APValue(APSInt(APInt(32, PartVal.Part1), true)); +# 3499| APVal.getStructField(1) = APValue(APSInt(APInt(16, PartVal.Part2), true)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3501:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 8U, 8U)". +llvm-project-19.0.0.src/clang/lib/AST/DeclCXX.cpp:3501:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 3499| APVal.getStructField(1) = APValue(APSInt(APInt(16, PartVal.Part2), true)); +# 3500| APVal.getStructField(2) = APValue(APSInt(APInt(16, PartVal.Part3), true)); +# 3501|-> APValue &Arr = APVal.getStructField(3) = +# 3502| APValue(APValue::UninitArray(), 8, 8); +# 3503| for (unsigned I = 0; I != 8; ++I) { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2088:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::ImplicitCastExpr(T, Kind, Operand, PathSize, FPO, VK)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2088:3: assign: Assigning: "E" = "new (Buffer) clang::ImplicitCastExpr(T, Kind, Operand, PathSize, FPO, VK)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2091:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2089| new (Buffer) ImplicitCastExpr(T, Kind, Operand, PathSize, FPO, VK); +# 2090| if (PathSize) +# 2091|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 2092| E->getTrailingObjects()); +# 2093| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2115:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CStyleCastExpr(T, VK, K, Op, PathSize, FPO, WrittenTy, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2115:3: assign: Assigning: "E" = "new (Buffer) clang::CStyleCastExpr(T, VK, K, Op, PathSize, FPO, WrittenTy, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2118:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2116| new (Buffer) CStyleCastExpr(T, VK, K, Op, PathSize, FPO, WrittenTy, L, R); +# 2117| if (PathSize) +# 2118|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 2119| E->getTrailingObjects()); +# 2120| return E; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2347:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2345| clang::Preprocessor::processPathForFileMacro(Path, Ctx.getLangOpts(), +# 2346| Ctx.getTargetInfo()); +# 2347|-> Value.getStructField(F->getFieldIndex()) = MakeStringLiteral(Path); +# 2348| } else if (Name == "_M_function_name") { +# 2349| // Note: this emits the PrettyFunction name -- different than what + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2352:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2350| // __builtin_FUNCTION() above returns! +# 2351| const auto *CurDecl = dyn_cast(Context); +# 2352|-> Value.getStructField(F->getFieldIndex()) = MakeStringLiteral( +# 2353| CurDecl && !isa(CurDecl) +# 2354| ? StringRef(PredefinedExpr::ComputeName( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2359:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2357| } else if (Name == "_M_line") { +# 2358| llvm::APSInt IntVal = Ctx.MakeIntValue(PLoc.getLine(), F->getType()); +# 2359|-> Value.getStructField(F->getFieldIndex()) = APValue(IntVal); +# 2360| } else if (Name == "_M_column") { +# 2361| llvm::APSInt IntVal = Ctx.MakeIntValue(PLoc.getColumn(), F->getType()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2340:5: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/clang/lib/AST/Expr.cpp:2362:9: uninit_use_in_call: Using uninitialized value "Value.Data" when calling "getStructField". +# 2360| } else if (Name == "_M_column") { +# 2361| llvm::APSInt IntVal = Ctx.MakeIntValue(PLoc.getColumn(), F->getType()); +# 2362|-> Value.getStructField(F->getFieldIndex()) = APValue(IntVal); +# 2363| } +# 2364| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:721:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXStaticCastExpr(T, VK, K, Op, PathSize, WrittenTy, FPO, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:721:3: assign: Assigning: "E" = "new (Buffer) clang::CXXStaticCastExpr(T, VK, K, Op, PathSize, WrittenTy, FPO, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:724:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 722| FPO, L, RParenLoc, AngleBrackets); +# 723| if (PathSize) +# 724|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 725| E->getTrailingObjects()); +# 726| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:748:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXDynamicCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:748:3: assign: Assigning: "E" = "new (Buffer) clang::CXXDynamicCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:752:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 750| RParenLoc, AngleBrackets); +# 751| if (PathSize) +# 752|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 753| E->getTrailingObjects()); +# 754| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:811:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXReinterpretCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:811:3: assign: Assigning: "E" = "new (Buffer) clang::CXXReinterpretCastExpr(T, VK, K, Op, PathSize, WrittenTy, L, RParenLoc, AngleBrackets)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:815:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 813| RParenLoc, AngleBrackets); +# 814| if (PathSize) +# 815|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 816| E->getTrailingObjects()); +# 817| return E; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:860:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CXXFunctionalCastExpr(T, VK, Written, K, Op, PathSize, FPO, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:860:3: assign: Assigning: "E" = "new (Buffer) clang::CXXFunctionalCastExpr(T, VK, Written, K, Op, PathSize, FPO, L, R)". +llvm-project-19.0.0.src/clang/lib/AST/ExprCXX.cpp:863:5: callee_ptr_arith: Passing "E" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 861| CXXFunctionalCastExpr(T, VK, Written, K, Op, PathSize, FPO, L, R); +# 862| if (PathSize) +# 863|-> std::uninitialized_copy_n(BasePath->data(), BasePath->size(), +# 864| E->getTrailingObjects()); +# 865| return E; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:1789:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(this->getDecl(), this->isDerivedMember(), llvm::ArrayRef(this->Path))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:1789:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 1787| +# 1788| void moveInto(APValue &V) const { +# 1789|-> V = APValue(getDecl(), isDerivedMember(), Path); +# 1790| } +# 1791| void setFrom(const APValue &V) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:2739:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Info.Ctx->getFloatTypeSemantics(DestType), 1UL)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:2739:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2737| QualType SrcType, const APSInt &Value, +# 2738| QualType DestType, APFloat &Result) { +# 2739|-> Result = APFloat(Info.Ctx.getFloatTypeSemantics(DestType), 1); +# 2740| llvm::RoundingMode RM = getActiveRoundingMode(Info, E); +# 2741| APFloat::opStatus St = Result.convertFromAPInt(Value, Value.isSigned(), RM); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3484:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), std::min(unsigned int const(S->getLength()), Elts), Elts)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3484:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 3482| +# 3483| unsigned Elts = CAT->getZExtSize(); +# 3484|-> Result = APValue(APValue::UninitArray(), +# 3485| std::min(S->getLength(), Elts), Elts); +# 3486| APSInt Value(Info.Ctx.getTypeSize(CharType), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3507:3: var_decl: Declaring variable "NewValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:3509:5: uninit_use_in_call: Using uninitialized value "NewValue.Data" when calling "getArrayInitializedElt". +# 3507| APValue NewValue(APValue::UninitArray(), NewElts, Size); +# 3508| for (unsigned I = 0; I != OldElts; ++I) +# 3509|-> NewValue.getArrayInitializedElt(I).swap(Array.getArrayInitializedElt(I)); +# 3510| for (unsigned I = OldElts; I != NewElts; ++I) +# 3511| NewValue.getArrayInitializedElt(I) = Array.getArrayFiller(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4894:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), RD->getNumBases(), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4894:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 4892| return true; +# 4893| } +# 4894|-> Result = APValue(APValue::UninitStruct(), RD->getNumBases(), +# 4895| std::distance(RD->field_begin(), RD->field_end())); +# 4896| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4915:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, AT->getZExtSize())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:4915:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 4913| if (auto *AT = +# 4914| dyn_cast_or_null(T->getAsArrayTypeUnsafe())) { +# 4915|-> Result = APValue(APValue::UninitArray(), 0, AT->getZExtSize()); +# 4916| if (Result.hasArrayFiller()) +# 4917| Success &= + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:6412:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), RD->getNumBases(), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:6412:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 6410| if (!Result.hasValue()) { +# 6411| if (!RD->isUnion()) +# 6412|-> Result = APValue(APValue::UninitStruct(), RD->getNumBases(), +# 6413| std::distance(RD->field_begin(), RD->field_end())); +# 6414| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7332:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Semantics, Val)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7332:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7330| const llvm::fltSemantics &Semantics = +# 7331| Info.Ctx.getFloatTypeSemantics(QualType(T, 0)); +# 7332|-> return APValue(APFloat(Semantics, Val)); +# 7333| } +# 7334| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7358:11: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "~APValue". +# 7356| BS.getType(), Layout.getBaseClassOffset(BaseDecl) + Offset); +# 7357| if (!SubObj) +# 7358|-> return std::nullopt; +# 7359| ResultVal.getStructBase(I) = *SubObj; +# 7360| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7359:9: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "getStructBase". +# 7357| if (!SubObj) +# 7358| return std::nullopt; +# 7359|-> ResultVal.getStructBase(I) = *SubObj; +# 7360| } +# 7361| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7371:9: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "~APValue". +# 7369| Info.FFDiag(BCE->getBeginLoc(), +# 7370| diag::note_constexpr_bit_cast_unsupported_bitfield); +# 7371|-> return std::nullopt; +# 7372| } +# 7373| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7383:9: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "~APValue". +# 7381| std::optional SubObj = visitType(FieldTy, FieldOffset); +# 7382| if (!SubObj) +# 7383|-> return std::nullopt; +# 7384| ResultVal.getStructField(FieldIdx) = *SubObj; +# 7385| ++FieldIdx; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7346:5: var_decl: Declaring variable "ResultVal". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7384:7: uninit_use_in_call: Using uninitialized value "ResultVal.Data" when calling "getStructField". +# 7382| if (!SubObj) +# 7383| return std::nullopt; +# 7384|-> ResultVal.getStructField(FieldIdx) = *SubObj; +# 7385| ++FieldIdx; +# 7386| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7406:5: var_decl: Declaring variable "ArrayValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7411:9: uninit_use_in_call: Using uninitialized value "ArrayValue.Data" when calling "~APValue". +# 7409| visitType(Ty->getElementType(), Offset + I * ElementWidth); +# 7410| if (!ElementValue) +# 7411|-> return std::nullopt; +# 7412| ArrayValue.getArrayInitializedElt(I) = std::move(*ElementValue); +# 7413| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7406:5: var_decl: Declaring variable "ArrayValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:7412:7: uninit_use_in_call: Using uninitialized value "ArrayValue.Data" when calling "getArrayInitializedElt". +# 7410| if (!ElementValue) +# 7411| return std::nullopt; +# 7412|-> ArrayValue.getArrayInitializedElt(I) = std::move(*ElementValue); +# 7413| } +# 7414| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10206:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), (CD ? CD->getNumBases() : 0U), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10206:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10204| assert(!RD->isUnion() && "Expected non-union class type"); +#10205| const CXXRecordDecl *CD = dyn_cast(RD); +#10206|-> Result = APValue(APValue::UninitStruct(), CD ? CD->getNumBases() : 0, +#10207| std::distance(RD->field_begin(), RD->field_end())); +#10208| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10367:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), (CXXRD ? CXXRD->getNumBases() : 0U), std::distance(RD->field_begin(), RD->field_end()))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10367:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10365| +#10366| if (!Result.hasValue()) +#10367|-> Result = APValue(APValue::UninitStruct(), CXXRD ? CXXRD->getNumBases() : 0, +#10368| std::distance(RD->field_begin(), RD->field_end())); +#10369| unsigned ElementNo = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10550:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), 0U, 2U)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10550:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10548| +#10549| // FIXME: What if the initializer_list type has base classes, etc? +#10550|-> Result = APValue(APValue::UninitStruct(), 0, 2); +#10551| Array.moveInto(Result.getStructField(0)); +#10552| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10590:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), 0U, NumFields)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10590:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#10588| "fields within the closure type"); +#10589| +#10590|-> Result = APValue(APValue::UninitStruct(), /*NumBases*/0, NumFields); +#10591| // Iterate through all the lambda's closure object's fields and initialize +#10592| // them. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10978:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:10978:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#10976| if (SourceTy->isIntegerType()) { +#10977| if (DestTy->isRealFloatingType()) { +#10978|-> Result = APValue(APFloat(0.0)); +#10979| return HandleIntToFloatCast(Info, E, FPO, SourceTy, Original.getInt(), +#10980| DestTy, Result.getFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11116:11: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, 0U)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11116:11: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11114| // is represented as an ImplicitValueInitExpr of incomplete array +#11115| // type. In this case, the array has zero elements. +#11116|-> Result = APValue(APValue::UninitArray(), 0, 0); +#11117| return true; +#11118| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11123:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, CAT->getZExtSize())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11123:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11121| } +#11122| +#11123|-> Result = APValue(APValue::UninitArray(), 0, CAT->getZExtSize()); +#11124| if (!Result.hasArrayFiller()) +#11125| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11258:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), NumEltsToInit, NumElts)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11258:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11256| << NumEltsToInit << ".\n"); +#11257| +#11258|-> Result = APValue(APValue::UninitArray(), NumEltsToInit, NumElts); +#11259| +#11260| // If the array was previously zero-initialized, preserve the + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11307:3: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), Elements, Elements)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11307:3: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11305| +#11306| uint64_t Elements = CAT->getZExtSize(); +#11307|-> Result = APValue(APValue::UninitArray(), Elements, Elements); +#11308| +#11309| LValue Subobject = This; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11358:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, FinalSize)". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11358:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11356| : APValue(); +#11357| +#11358|-> *Value = APValue(APValue::UninitArray(), 0, FinalSize); +#11359| if (FinalSize == 0) +#11360| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11378:7: var_decl: Declaring variable "NewValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11380:9: uninit_use_in_call: Using uninitialized value "NewValue.Data" when calling "getArrayInitializedElt". +#11378| APValue NewValue(APValue::UninitArray(), N, FinalSize); +#11379| for (unsigned I = 0; I < OldElts; ++I) +#11380|-> NewValue.getArrayInitializedElt(I).swap( +#11381| Value->getArrayInitializedElt(I)); +#11382| Value->swap(NewValue); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11606:5: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::APFixedPoint(V))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:11606:5: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +#11604| assert(V.getWidth() == Info.Ctx.getIntWidth(E->getType()) && +#11605| "Invalid evaluation result."); +#11606|-> Result = APValue(V); +#11607| return true; +#11608| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13409:7: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13410:7: uninit_use_in_call: Using uninitialized value "RHS.Val.Data" when calling "swap". +#13408| const BinaryOperator *Bop = cast(job.E); +#13409| EvalResult RHS; +#13410|-> RHS.swap(Result); +#13411| Result.Failed = !VisitBinOp(job.LHSResult, RHS, Bop, Result.Val); +#13412| Queue.pop_back(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13492:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(LHS.FloatReal.getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13492:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#13490| if (LHSOK) { +#13491| LHS.makeComplexFloat(); +#13492|-> LHS.FloatImag = APFloat(LHS.FloatReal.getSemantics()); +#13493| } +#13494| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "LHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "LHS.FloatImag.U" when calling "~ComplexValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "LHS.FloatReal.U" when calling "~ComplexValue". +#13496| } +#13497| if (!LHSOK && !Info.noteFailure()) +#13498|-> return false; +#13499| +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "RHS.FloatImag.U" when calling "~ComplexValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13498:7: uninit_use_in_call: Using uninitialized value "RHS.FloatReal.U" when calling "~ComplexValue". +#13496| } +#13497| if (!LHSOK && !Info.noteFailure()) +#13498|-> return false; +#13499| +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "LHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13502:9: uninit_use_in_call: Using uninitialized value "LHS.FloatImag.U" when calling "~ComplexValue". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13502:9: uninit_use_in_call: Using uninitialized value "LHS.FloatReal.U" when calling "~ComplexValue". +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { +#13501| if (!EvaluateFloat(E->getRHS(), RHS.FloatReal, Info) || !LHSOK) +#13502|-> return false; +#13503| RHS.makeComplexFloat(); +#13504| RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13482:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13502:9: uninit_use_in_call: Using uninitialized value "RHS.FloatImag.U" when calling "~ComplexValue". +#13500| if (E->getRHS()->getType()->isRealFloatingType()) { +#13501| if (!EvaluateFloat(E->getRHS(), RHS.FloatReal, Info) || !LHSOK) +#13502|-> return false; +#13503| RHS.makeComplexFloat(); +#13504| RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13504:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(RHS.FloatReal.getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13504:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#13502| return false; +#13503| RHS.makeComplexFloat(); +#13504|-> RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); +#13505| } else if (!EvaluateComplex(E->getRHS(), RHS, Info) || !LHSOK) +#13506| return false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13525:5: var_decl: Declaring variable "LHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:13529:7: uninit_use_in_call: Using uninitialized value "LHS.U" when calling "~APFloat". +#13527| bool LHSOK = EvaluateFloat(E->getRHS(), RHS, Info); +#13528| if (!LHSOK && !Info.noteFailure()) +#13529|-> return false; +#13530| +#13531| if (!EvaluateFloat(E->getLHS(), LHS, Info) || !LHSOK) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14751:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14754:7: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14752| if (!EvaluateFloat(E->getArg(0), Result, Info) || +#14753| !EvaluateFloat(E->getArg(1), RHS, Info)) +#14754|-> return false; +#14755| Result.copySign(RHS); +#14756| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14765:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14768:7: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14766| if (!EvaluateFloat(E->getArg(0), Result, Info) || +#14767| !EvaluateFloat(E->getArg(1), RHS, Info)) +#14768|-> return false; +#14769| // When comparing zeroes, return +0.0 if one of the zeroes is positive. +#14770| if (Result.isZero() && RHS.isZero() && Result.isNegative()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14783:5: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14786:7: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14784| if (!EvaluateFloat(E->getArg(0), Result, Info) || +#14785| !EvaluateFloat(E->getArg(1), RHS, Info)) +#14786|-> return false; +#14787| // When comparing zeroes, return -0.0 if one of the zeroes is negative. +#14788| if (Result.isZero() && RHS.isZero() && RHS.isNegative()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14844:3: var_decl: Declaring variable "RHS". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14847:5: uninit_use_in_call: Using uninitialized value "RHS.U" when calling "~APFloat". +#14845| bool LHSOK = EvaluateFloat(E->getLHS(), Result, Info); +#14846| if (!LHSOK && !Info.noteFailure()) +#14847|-> return false; +#14848| return EvaluateFloat(E->getRHS(), RHS, Info) && LHSOK && +#14849| handleFloatFloatBinOp(Info, E, Result, E->getOpcode(), RHS); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14964:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Imag->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:14964:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#14962| return false; +#14963| +#14964|-> Result.FloatReal = APFloat(Imag.getSemantics()); +#14965| return true; +#14966| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15056:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Real->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15056:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15054| +#15055| Result.makeComplexFloat(); +#15056|-> Result.FloatImag = APFloat(Real.getSemantics()); +#15057| return true; +#15058| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15144:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Real->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15144:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15142| if (LHSOK) { +#15143| Result.makeComplexFloat(); +#15144|-> Result.FloatImag = APFloat(Real.getSemantics()); +#15145| } +#15146| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15159:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Real->getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15159:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15157| return false; +#15158| RHS.makeComplexFloat(); +#15159|-> RHS.FloatImag = APFloat(Real.getSemantics()); +#15160| } else if (!EvaluateComplex(E->getRHS(), RHS, Info) || !LHSOK) +#15161| return false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15317:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(A->getSemantics(), (A->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15317:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15315| } else if ((A.isInfinity() || B.isInfinity()) && C.isFinite() && +#15316| D.isFinite()) { +#15317|-> A = APFloat::copySign( +#15318| APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); +#15319| B = APFloat::copySign( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15319:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(B->getSemantics(), (B->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15319:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15317| A = APFloat::copySign( +#15318| APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); +#15319|-> B = APFloat::copySign( +#15320| APFloat(B.getSemantics(), B.isInfinity() ? 1 : 0), B); +#15321| ResR = APFloat::getInf(ResR.getSemantics()) * (A * C + B * D); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15324:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(C->getSemantics(), (C->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15324:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15322| ResI = APFloat::getInf(ResI.getSemantics()) * (B * C - A * D); +#15323| } else if (MaxCD.isInfinity() && A.isFinite() && B.isFinite()) { +#15324|-> C = APFloat::copySign( +#15325| APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); +#15326| D = APFloat::copySign( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15326:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(D->getSemantics(), (D->isInfinity() ? 1 : 0))". +llvm-project-19.0.0.src/clang/lib/AST/ExprConstant.cpp:15326:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#15324| C = APFloat::copySign( +#15325| APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); +#15326|-> D = APFloat::copySign( +#15327| APFloat(D.getSemantics(), D.isInfinity() ? 1 : 0), D); +#15328| ResR = APFloat::getZero(ResR.getSemantics()) * (A * C + B * D); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:123:5: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:124:5: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromAPInt". +# 122| Floating &Result) { +# 123| APFloat F = APFloat(Sem); +# 124|-> APFloat::opStatus Status = F.convertFromAPInt(Val, Val.isSigned(), RM); +# 125| Result = Floating(F); +# 126| return Status; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:135:5: temporary: Creating temporary of type "clang::interp::APFloat" in "clang::interp::APFloat(Sem, API)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Floating.h:135:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 133| llvm::LoadIntFromMemory(API, (const uint8_t *)Buff, Size / 8); +# 134| +# 135|-> return Floating(APFloat(Sem, API)); +# 136| } +# 137| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2162:3: extract: Calling "get" which extracts wrapped state from local "NewFrame". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2162:3: escape: The internal representation of local "NewFrame" escapes into "S.Current", but is destroyed when it exits scope. +# 2160| auto NewFrame = std::make_unique(S, Func, OpPC, VarArgSize); +# 2161| InterpFrame *FrameBefore = S.Current; +# 2162|-> S.Current = NewFrame.get(); +# 2163| +# 2164| APValue CallResult; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2169:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2169:5: leaked_storage: Ignoring storage allocated by "NewFrame.release()" leaks it. +# 2167| // have a caller set. +# 2168| if (Interpret(S, CallResult)) { +# 2169|-> NewFrame.release(); // Frame was delete'd already. +# 2170| assert(S.Current == FrameBefore); +# 2171| return true; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2213:3: extract: Calling "get" which extracts wrapped state from local "NewFrame". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2213:3: escape: The internal representation of local "NewFrame" escapes into "S.Current", but is destroyed when it exits scope. +# 2211| auto NewFrame = std::make_unique(S, Func, OpPC, VarArgSize); +# 2212| InterpFrame *FrameBefore = S.Current; +# 2213|-> S.Current = NewFrame.get(); +# 2214| +# 2215| APValue CallResult; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2220:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2220:5: leaked_storage: Ignoring storage allocated by "NewFrame.release()" leaks it. +# 2218| // have a caller set. +# 2219| if (Interpret(S, CallResult)) { +# 2220|-> NewFrame.release(); // Frame was delete'd already. +# 2221| assert(S.Current == FrameBefore); +# 2222| return true; + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2279:3: extract: Calling "get" which extracts wrapped state from local "NewFrame". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2279:3: escape: The internal representation of local "NewFrame" escapes into "S.Current", but is destroyed when it exits scope. +# 2277| +# 2278| InterpFrame *FrameBefore = S.Current; +# 2279|-> S.Current = NewFrame.get(); +# 2280| +# 2281| if (InterpretBuiltin(S, PC, Func, CE)) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2282:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/Interp/Interp.h:2282:5: leaked_storage: Ignoring storage allocated by "NewFrame.release()" leaks it. +# 2280| +# 2281| if (InterpretBuiltin(S, PC, Func, CE)) { +# 2282|-> NewFrame.release(); +# 2283| return true; +# 2284| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpShared.cpp:18:3: var_decl: Declaring variable "NonNullArgs". +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpShared.cpp:20:5: uninit_use: Using uninitialized value "NonNullArgs". Field "NonNullArgs.Bits.InlineElts" is uninitialized. +# 18| llvm::BitVector NonNullArgs; +# 19| if (!F) +# 20|-> return NonNullArgs; +# 21| +# 22| assert(F); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpStack.h:49:5: move: "*Ptr" is moved (indicated by "std::move(Ptr)"). +llvm-project-19.0.0.src/clang/lib/AST/Interp/InterpStack.h:50:5: use_after_move: "*Ptr" is used after it has been already moved. +# 48| T *Ptr = &peekInternal(); +# 49| T Value = std::move(*Ptr); +# 50|-> Ptr->~T(); +# 51| shrink(aligned_size()); +# 52| return Value; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:358:9: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitStruct(), NB, NF)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:358:9: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 356| unsigned NV = Ptr.isBaseClass() ? 0 : Record->getNumVirtualBases(); +# 357| +# 358|-> R = APValue(APValue::UninitStruct(), NB, NF); +# 359| +# 360| for (unsigned I = 0; I < NF; ++I) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:391:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(clang::APValue::UninitArray(), 0U, 0U)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:391:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 389| +# 390| if (Ty->isIncompleteArrayType()) { +# 391|-> R = APValue(APValue::UninitArray(), 0, 0); +# 392| return true; +# 393| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:398:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue((clang::APValue::UninitArray)clang::APValue::UninitArray({}), NumElems, NumElems)". +llvm-project-19.0.0.src/clang/lib/AST/Interp/Pointer.cpp:398:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 396| const size_t NumElems = Ptr.getNumElems(); +# 397| QualType ElemTy = AT->getElementType(); +# 398|-> R = APValue(APValue::UninitArray{}, NumElems, NumElems); +# 399| +# 400| bool Ok = true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:5553:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloat(Imag->getValue()).getSemantics())". +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:5553:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5551| dyn_cast(IE->getSubExpr())) { +# 5552| // Mangle a floating-point zero of the appropriate type. +# 5553|-> mangleFloat(llvm::APFloat(Imag->getValue().getSemantics())); +# 5554| Out << '_'; +# 5555| mangleFloat(Imag->getValue()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:6085:7: temporary: Creating temporary of type "clang::APValue" in "clang::APValue(D, false, llvm::ArrayRef())". +llvm-project-19.0.0.src/clang/lib/AST/ItaniumMangle.cpp:6085:7: uninit_use_in_call: Using uninitialized value ".Data" when calling "~APValue". +# 6083| if (D->isCXXInstanceMember()) +# 6084| // Simple pointer-to-member with no conversion. +# 6085|-> Value = APValue(D, /*IsDerivedMember=*/false, /*Path=*/{}); +# 6086| else if (D->getType()->isArrayType() && +# 6087| Ctx.hasSimilarType(Ctx.getDecayedType(D->getType()), + +Error: USE_AFTER_FREE (CWE-416): +llvm-project-19.0.0.src/clang/lib/AST/NestedNameSpecifier.cpp:538:5: freed_arg: "free" frees "this->Buffer". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/AST/NestedNameSpecifier.cpp:558:3: deref_arg: Calling "Append" dereferences freed pointer "this->Buffer". +# 556| // Deep copy. +# 557| BufferSize = 0; +# 558|-> Append(Other.Buffer, Other.Buffer + Other.BufferSize, Buffer, BufferSize, +# 559| BufferCapacity); +# 560| return *this; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/ODRDiagsEmitter.cpp:1199:9: var_decl: Declaring variable "ExpandedList". +llvm-project-19.0.0.src/clang/lib/AST/ODRDiagsEmitter.cpp:1208:9: uninit_use: Using uninitialized value "ExpandedList". Field "ExpandedList.InlineElts" is uninitialized. +# 1206| llvm::make_pointer_range(TA.getPackAsArray())); +# 1207| } +# 1208|-> return ExpandedList; +# 1209| }; +# 1210| llvm::SmallVector FirstExpandedList = + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:304:3: address_of: Taking address with "&this->Condition" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:304:3: ptr_arith: Using "&this->Condition" as an array. This might corrupt or misinterpret adjacent memory locations. +# 302| if (Stmt **C = getAddrOfExprAsWritten(getPreInitStmt())) +# 303| return child_range(C, C + 1); +# 304|-> return child_range(&Condition, &Condition + 1); +# 305| } +# 306| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:1654:3: new_object: Calling single-object form of 'new': "new (Mem) clang::OMPInitClause(InteropInfo.IsTarget, InteropInfo.IsTargetSync, StartLoc, LParenLoc, VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1UL)". +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:1654:3: assign: Assigning: "Clause" = "new (Mem) clang::OMPInitClause(InteropInfo.IsTarget, InteropInfo.IsTargetSync, StartLoc, LParenLoc, VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1UL)". +llvm-project-19.0.0.src/clang/lib/AST/OpenMPClause.cpp:1658:3: callee_ptr_arith: Passing "Clause" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1656| VarLoc, EndLoc, InteropInfo.PreferTypes.size() + 1); +# 1657| Clause->setInteropVar(InteropVar); +# 1658|-> llvm::copy(InteropInfo.PreferTypes, Clause->getTrailingObjects() + 1); +# 1659| return Clause; +# 1660| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/AST/PrintfFormatString.cpp:112:3: var_decl: Declaring variable "FS". +llvm-project-19.0.0.src/clang/lib/AST/PrintfFormatString.cpp:423:3: uninit_use_in_call: Using uninitialized value "FS". Field "FS.HasThousandsGrouping.position" is uninitialized when calling "SpecifierResult". +# 421| return !H.HandleInvalidPrintfConversionSpecifier(FS, Start, Len); +# 422| } +# 423|-> return PrintfSpecifierResult(Start, FS); +# 424| } +# 425| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:118:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 116| Result.Text = StringRef(CodeCompletionLocation, 0); +# 117| CodeCompletionLocation = nullptr; +# 118|-> return Result; +# 119| } +# 120| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:118:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 116| Result.Text = StringRef(CodeCompletionLocation, 0); +# 117| CodeCompletionLocation = nullptr; +# 118|-> return Result; +# 119| } +# 120| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:124:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 122| Result.Kind = TokenInfo::TK_Eof; +# 123| Result.Text = ""; +# 124|-> return Result; +# 125| } +# 126| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:124:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 122| Result.Kind = TokenInfo::TK_Eof; +# 123| Result.Text = ""; +# 124|-> return Result; +# 125| } +# 126| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:130:7: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 128| case '#': +# 129| Code = Code.drop_until([](char c) { return c == '\n'; }); +# 130|-> return getNextToken(); +# 131| case ',': +# 132| Result.Kind = TokenInfo::TK_Comma; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:184:13: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 182| Result.Text = Code.substr(0, TokenLength); +# 183| Code = Code.drop_front(TokenLength); +# 184|-> return Result; +# 185| } +# 186| if (TokenLength == Code.size() || !isAlphanumeric(Code[TokenLength])) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:184:13: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 182| Result.Text = Code.substr(0, TokenLength); +# 183| Code = Code.drop_front(TokenLength); +# 184|-> return Result; +# 185| } +# 186| if (TokenLength == Code.size() || !isAlphanumeric(Code[TokenLength])) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:210:5: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "TokenInfo". +# 208| +# 209| Result.Range.End = currentLocation(); +# 210|-> return Result; +# 211| } +# 212| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:210:5: uninit_use_in_call: Using uninitialized value "Result.Value.Value" when calling "~TokenInfo". +# 208| +# 209| Result.Range.End = currentLocation(); +# 210|-> return Result; +# 211| } +# 212| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:473:3: var_decl: Declaring variable "EndToken". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:492:11: uninit_use_in_call: Using uninitialized value "EndToken.Value.Value" when calling "~TokenInfo". +# 490| Error->addError(CommaToken.Range, Error->ET_ParserNoComma) +# 491| << CommaToken.Text; +# 492|-> return false; +# 493| } +# 494| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:499:7: var_decl: Declaring variable "ArgValue". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:504:9: uninit_use_in_call: Using uninitialized value "ArgValue.Value.Value" when calling "~ParserValue". +# 502| if (Tokenizer->peekNextToken().Kind == TokenInfo::TK_CodeCompletion) { +# 503| addExpressionCompletions(); +# 504|-> return false; +# 505| } +# 506| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:499:7: var_decl: Declaring variable "ArgValue". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:525:9: uninit_use_in_call: Using uninitialized value "ArgValue.Value.Value" when calling "~ParserValue". +# 523| Error->ET_RegistryMatcherNotFound) +# 524| << NodeMatcherToken.Text; +# 525|-> return false; +# 526| } +# 527| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:473:3: var_decl: Declaring variable "EndToken". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:548:5: uninit_use_in_call: Using uninitialized value "EndToken.Value.Value" when calling "~TokenInfo". +# 546| if (EndToken.Kind == TokenInfo::TK_Eof) { +# 547| Error->addError(OpenToken.Range, Error->ET_ParserNoCloseParen); +# 548|-> return false; +# 549| } +# 550| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:641:3: var_decl: Declaring variable "EndToken". +llvm-project-19.0.0.src/clang/lib/ASTMatchers/Dynamic/Parser.cpp:660:11: uninit_use_in_call: Using uninitialized value "EndToken.Value.Value" when calling "~TokenInfo". +# 658| Error->addError(CommaToken.Range, Error->ET_ParserNoComma) +# 659| << CommaToken.Text; +# 660|-> return false; +# 661| } +# 662| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/CloneDetection.cpp:381:7: var_decl: Declaring variable "NewGroup". +llvm-project-19.0.0.src/clang/lib/Analysis/CloneDetection.cpp:403:7: uninit_use_in_call: Using uninitialized value "NewGroup". Field "NewGroup.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 401| // We created a new clone group with matching hash codes and move it to +# 402| // the result vector. +# 403|-> Result.push_back(NewGroup); +# 404| } +# 405| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp:36:35: constructor_uses_global_object: The constructor of global object "DataflowLog[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DataflowLog[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| #include +# 35| +# 36|-> static llvm::cl::opt DataflowLog( +# 37| "dataflow-log", llvm::cl::Hidden, llvm::cl::ValueOptional, +# 38| llvm::cl::desc("Emit log of dataflow analysis. With no arg, writes textual " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/FlowSensitive/SimplifyConstraints.cpp:68:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Analysis/FlowSensitive/SimplifyConstraints.cpp:72:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 70| MemberIt != EquivalentAtoms.member_end(); ++MemberIt) +# 71| Result.push_back(*MemberIt); +# 72|-> return Result; +# 73| } +# 74| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/IssueHash.cpp:176:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/clang/lib/Analysis/IssueHash.cpp:182:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 180| llvm::MD5::stringifyResult(MD5Res, Res); +# 181| +# 182|-> return Res; +# 183| } +# 184| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/MacroExpansionContext.cpp:227:3: move: "TokenAsString" is moved (indicated by "std::move(TokenAsString)"). +llvm-project-19.0.0.src/clang/lib/Analysis/MacroExpansionContext.cpp:230:5: use_after_move: "TokenAsString" is used after it has been already moved. +# 228| ExpandedTokens.try_emplace(CurrExpansionLoc, std::move(TokenAsString)); +# 229| if (!Inserted) +# 230|-> It->getSecond().append(TokenAsString); +# 231| } +# 232| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/UninitializedValues.cpp:520:5: var_decl: Declaring variable "Use". +llvm-project-19.0.0.src/clang/lib/Analysis/UninitializedValues.cpp:524:7: uninit_use: Using uninitialized value "Use". Field "Use.UninitBranches.InlineElts" is uninitialized. +# 522| assert(isUninitialized(v)); +# 523| if (Use.getKind() == UninitUse::Always) +# 524|-> return Use; +# 525| +# 526| // If an edge which leads unconditionally to this use did not initialize + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Analysis/UnsafeBufferUsage.cpp:2808:3: var_decl: Declaring variable "FixItsSharedByParms". +llvm-project-19.0.0.src/clang/lib/Analysis/UnsafeBufferUsage.cpp:2822:3: uninit_use: Using uninitialized value "FixItsSharedByParms". Field "FixItsSharedByParms.InlineElts" is uninitialized. +# 2820| FixItsForVariable.erase(Member); +# 2821| } +# 2822|-> return FixItsSharedByParms; +# 2823| } +# 2824| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Basic/Diagnostic.cpp:820:7: address_of: Taking address with "&CodepointValue" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Basic/Diagnostic.cpp:820:7: assign: Assigning: "CpPtr" = "&CodepointValue". +llvm-project-19.0.0.src/clang/lib/Basic/Diagnostic.cpp:824:7: ptr_arith: Using "CpPtr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 822| const unsigned char *CodepointEnd = +# 823| Begin + llvm::getNumBytesForUTF8(*Begin); +# 824|-> llvm::ConversionResult Res = llvm::ConvertUTF8toUTF32( +# 825| &Begin, CodepointEnd, &CpPtr, CpPtr + 1, llvm::strictConversion); +# 826| (void)Res; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/Basic/Sanitizers.cpp:57:3: overrun-buffer-val: Overrunning buffer pointed to by "&this->maskLoToHigh[0]" of 16 bytes by passing it to a function which accesses it at byte offset 63. +# 55| +# 56| llvm::hash_code SanitizerMask::hash_value() const { +# 57|-> return llvm::hash_combine_range(&maskLoToHigh[0], &maskLoToHigh[kNumElem]); +# 58| } +# 59| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:23:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:27:5: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 25| : llvm::AMDGPU::parseArchR600(Proc); +# 26| if (ProcKind == llvm::AMDGPU::GK_NONE) +# 27|-> return Ret; +# 28| auto Features = T.isAMDGCN() ? llvm::AMDGPU::getArchAttrAMDGCN(ProcKind) +# 29| : llvm::AMDGPU::getArchAttrR600(ProcKind); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:23:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/clang/lib/Basic/TargetID.cpp:34:3: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 32| if (Features & llvm::AMDGPU::FEATURE_XNACK) +# 33| Ret.push_back("xnack"); +# 34|-> return Ret; +# 35| } +# 36| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:103:22: constructor_uses_global_object: The constructor of global object "llvm::ClSanitizeOnOptimizerEarlyEP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClSanitizeOnOptimizerEarlyEP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| +# 102| // Experiment to move sanitizers earlier. +# 103|-> static cl::opt ClSanitizeOnOptimizerEarlyEP( +# 104| "sanitizer-early-opt-ep", cl::Optional, +# 105| cl::desc("Insert sanitizers on OptimizerEarlyEP.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "Allocator" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "fuzzer::TPC" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:109:41: constructor_uses_global_object: The constructor of global object "llvm::ClPGOColdFuncAttr" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClPGOColdFuncAttr" might be created before "scudo::RegionPageMap::Buffers" is available. +# 107| // Experiment to mark cold functions as optsize/minsize/optnone. +# 108| // TODO: remove once this is exposed as a proper driver flag. +# 109|-> static cl::opt ClPGOColdFuncAttr( +# 110| "pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, +# 111| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/BackendUtil.cpp:125:15: constructor_uses_global_object: The constructor of global object "llvm::ClRelinkBuiltinBitcodePostop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ClRelinkBuiltinBitcodePostop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| +# 124| // Re-link builtin bitcodes after optimization +# 125|-> cl::opt ClRelinkBuiltinBitcodePostop( +# 126| "relink-builtin-bitcode-postop", cl::Optional, +# 127| cl::desc("Re-link builtin bitcodes after optimization.")); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBlocks.h:223:7: var_decl: Declaring variable "v". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBlocks.h:226:7: uninit_use: Using uninitialized value "v". Field "v.Offset" is uninitialized. +# 224| v.Data = reinterpret_cast(value); +# 225| v.Cap = Cap; +# 226|-> return v; +# 227| } +# 228| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBuiltin.cpp:17169:5: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGBuiltin.cpp:17192:5: uninit_use: Using uninitialized value "Result". +#17190| Result = +#17191| StoreSubVec(1, NumBytes - Stored - 1, IsLE ? Stored : 15 - Stored); +#17192|-> return Result; +#17193| } +#17194| // Square root + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:386:3: var_decl: Declaring variable "argTypes". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:389:3: uninit_use: Using uninitialized value "argTypes". Field "argTypes.InlineElts" is uninitialized. +# 387| for (auto &arg : args) +# 388| argTypes.push_back(ctx.getCanonicalParamType(arg.Ty)); +# 389|-> return argTypes; +# 390| } +# 391| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:394:3: var_decl: Declaring variable "argTypes". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:397:3: uninit_use: Using uninitialized value "argTypes". Field "argTypes.InlineElts" is uninitialized. +# 395| for (auto &arg : args) +# 396| argTypes.push_back(ctx.getCanonicalParamType(arg->getType())); +# 397|-> return argTypes; +# 398| } +# 399| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:403:3: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:407:3: uninit_use: Using uninitialized value "result". Field "result.InlineElts" is uninitialized. +# 405| addExtParameterInfosForCall(result, proto, prefixArgs, totalArgs); +# 406| } +# 407|-> return result; +# 408| } +# 409| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:1062:7: overrun-local: Overrunning array of 1 8-byte elements at element index 1 (byte offset 15) by dereferencing pointer "&BS + 1". +# 1060| for (const CXXBaseSpecifier *BS : RExp->Bases) { +# 1061| // Perform a single step derived-to-base conversion. +# 1062|-> Address Base = +# 1063| GetAddressOfBaseClass(This, Ty->getAsCXXRecordDecl(), &BS, &BS + 1, +# 1064| /*NullCheckValue=*/false, SourceLocation()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:1119:7: overrun-local: Overrunning array of 1 8-byte elements at element index 1 (byte offset 15) by dereferencing pointer "&BS + 1". +# 1117| for (const CXXBaseSpecifier *BS : RExp->Bases) { +# 1118| // Perform a single step derived-to-base conversion. +# 1119|-> Address Base = +# 1120| GetAddressOfBaseClass(This, Ty->getAsCXXRecordDecl(), &BS, &BS + 1, +# 1121| /*NullCheckValue=*/false, SourceLocation()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:4821:3: var_decl: Declaring variable "BundleList". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCall.cpp:4823:3: uninit_use: Using uninitialized value "BundleList". Field "BundleList.InlineElts" is uninitialized. +# 4821| SmallVector BundleList; +# 4822| BundleList.emplace_back("funclet", CurrentFuncletPad); +# 4823|-> return BundleList; +# 4824| } +# 4825| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCleanup.cpp:166:3: new_object: Calling single-object form of 'new': "new (Buffer) clang::CodeGen::EHCleanupScope(IsNormalCleanup, IsEHCleanup, Size, this->BranchFixups.size(), this->InnermostNormalCleanup, this->InnermostEHScope)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCleanup.cpp:166:3: assign: Assigning: "Scope" = "new (Buffer) clang::CodeGen::EHCleanupScope(IsNormalCleanup, IsEHCleanup, Size, this->BranchFixups.size(), this->InnermostNormalCleanup, this->InnermostEHScope)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCleanup.cpp:190:3: callee_ptr_arith: Passing "Scope" to function "getCleanupBuffer" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 188| CGF->EmitSehCppScopeBegin(); +# 189| +# 190|-> return Scope->getCleanupBuffer(); +# 191| } +# 192| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCoroutine.cpp:557:3: var_decl: Declaring variable "BundleList". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGCoroutine.cpp:562:3: uninit_use: Using uninitialized value "BundleList". Field "BundleList.InlineElts" is uninitialized. +# 560| BundleList.emplace_back("funclet", EHPad); +# 561| +# 562|-> return BundleList; +# 563| } +# 564| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1108:3: var_decl: Declaring variable "Identifier". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1112:5: uninit_use: Using uninitialized value "Identifier". Field "Identifier.InlineElts" is uninitialized. +# 1110| +# 1111| if (!needsTypeIdentifier(TD, CGM, TheCU)) +# 1112|-> return Identifier; +# 1113| if (const auto *RD = dyn_cast(TD)) +# 1114| if (RD->getDefinition()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1108:3: var_decl: Declaring variable "Identifier". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1117:9: uninit_use: Using uninitialized value "Identifier". Field "Identifier.InlineElts" is uninitialized. +# 1115| if (RD->isDynamicClass() && +# 1116| CGM.getVTableLinkage(RD) == llvm::GlobalValue::ExternalLinkage) +# 1117|-> return Identifier; +# 1118| +# 1119| // TODO: This is using the RTTI name. Is there a better way to get + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1108:3: var_decl: Declaring variable "Identifier". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1123:3: uninit_use: Using uninitialized value "Identifier". Field "Identifier.InlineElts" is uninitialized. +# 1121| llvm::raw_svector_ostream Out(Identifier); +# 1122| CGM.getCXXABI().getMangleContext().mangleCXXRTTIName(QualType(Ty, 0), Out); +# 1123|-> return Identifier; +# 1124| } +# 1125| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1326:3: var_decl: Declaring variable "SpecArgs". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGDebugInfo.cpp:1351:3: uninit_use: Using uninitialized value "SpecArgs". Field "SpecArgs.InlineElts" is uninitialized. +# 1349| SubstArgs = SubstArgs.drop_front(); +# 1350| } +# 1351|-> return SpecArgs; +# 1352| } +# 1353| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:57:28: constructor_uses_global_object: The constructor of global object "ClSanitizeDebugDeoptimization" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClSanitizeDebugDeoptimization" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| // Experiment to make sanitizers easier to debug +# 57|-> static llvm::cl::opt ClSanitizeDebugDeoptimization( +# 58| "ubsan-unique-traps", llvm::cl::Optional, +# 59| llvm::cl::desc("Deoptimize traps for UBSAN so there is 1 trap per check.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:63:28: constructor_uses_global_object: The constructor of global object "ClSanitizeGuardChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClSanitizeGuardChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| // TODO: Introduce frontend options to enabled per sanitizers, similar to +# 62| // `fsanitize-trap`. +# 63|-> static llvm::cl::opt ClSanitizeGuardChecks( +# 64| "ubsan-guard-checks", llvm::cl::Optional, +# 65| llvm::cl::desc("Guard UBSAN checks with `llvm.allow.ubsan.check()`.")); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1219:5: var_decl: Declaring variable "FVal". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1221:7: uninit_use_in_call: Using uninitialized value "FVal.U" when calling "changeSign". +# 1219| llvm::APFloat FVal(getContext().getFloatTypeSemantics(ElemTy), 1); +# 1220| if (!isInc) +# 1221|-> FVal.changeSign(); +# 1222| NextVal = llvm::ConstantFP::get(getLLVMContext(), FVal); +# 1223| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1219:5: var_decl: Declaring variable "FVal". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:1222:5: uninit_use_in_call: Using uninitialized value "FVal.U" when calling "get". +# 1220| if (!isInc) +# 1221| FVal.changeSign(); +# 1222|-> NextVal = llvm::ConstantFP::get(getLLVMContext(), FVal); +# 1223| +# 1224| // Add the inc/dec to the real part. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6125:3: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6186:3: uninit_use: Using uninitialized value "result". Field "result.LV.LVType" is uninitialized. +# 6184| opaques[i].unbind(CGF); +# 6185| +# 6186|-> return result; +# 6187| } +# 6188| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6125:3: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExpr.cpp:6186:3: uninit_use: Using uninitialized value "result". Field "result.RV.IsVolatile" is uninitialized. +# 6184| opaques[i].unbind(CGF); +# 6185| +# 6186|-> return result; +# 6187| } +# 6188| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprCXX.cpp:264:3: var_decl: Declaring variable "TrivialAssignmentRHS". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprCXX.cpp:317:7: uninit_use: Using uninitialized value "TrivialAssignmentRHS". Field "TrivialAssignmentRHS.LVType" is uninitialized. +# 315| // emitting call arguments, in order to preserve TBAA information from +# 316| // the RHS. +# 317|-> LValue RHS = isa(CE) +# 318| ? TrivialAssignmentRHS +# 319| : EmitLValue(*CE->arg_begin()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:986:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(SrcSema, 1UL)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:986:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 984| // Find the largest value which is too small to represent (before +# 985| // truncation toward zero). +# 986|-> MinSrc.subtract(APFloat(SrcSema, 1), APFloat::rmTowardNegative); +# 987| +# 988| APSInt Max = APSInt::getMaxValue(Width, Unsigned); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:998:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(SrcSema, 1UL)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:998:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 996| // Find the smallest value which is too large to represent (before +# 997| // truncation toward zero). +# 998|-> MaxSrc.add(APFloat(SrcSema, 1), APFloat::rmTowardPositive); +# 999| +# 1000| // If we're converting from __half, convert the range to float to match + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:2810:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1f)". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGExprScalar.cpp:2810:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2808| llvm::Instruction::BinaryOps op = +# 2809| isInc ? llvm::Instruction::FAdd : llvm::Instruction::FSub; +# 2810|-> llvm::Value *amt = llvm::ConstantFP::get( +# 2811| VMContext, llvm::APFloat(static_cast(1.0))); +# 2812| llvm::Value *old = + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:1342:3: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 1340| argVar->getType().getNonReferenceType(), VK_LValue, +# 1341| SourceLocation()); +# 1342|-> llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); +# 1343| args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); +# 1344| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:1386:3: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 1384| argVar->getType().getNonReferenceType(), VK_LValue, +# 1385| SourceLocation()); +# 1386|-> llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); +# 1387| args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); +# 1388| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:3136:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjC.cpp:3177:3: uninit_use: Using uninitialized value "result". +# 3175| opaques[i].unbind(CGF); +# 3176| +# 3177|-> return result; +# 3178| } +# 3179| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjCMac.cpp:1194:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGObjCMac.cpp:1203:5: uninit_use: Using uninitialized value "result". Field "result.InlineElts" is uninitialized. +# 1201| } +# 1202| +# 1203|-> return result; +# 1204| } +# 1205| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:376:7: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 374| VD->getType().getNonReferenceType(), VK_LValue, +# 375| C.getLocation()); +# 376|-> PrivScope.addPrivate(VD, CGF.EmitLValue(&DRE).getAddress(CGF)); +# 377| } +# 378| (void)PrivScope.Privatize(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:7504:5: var_decl: Declaring variable "ElementTypeSize" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:7567:5: uninit_use_in_call: Using uninitialized value "ElementTypeSize" when calling "get". +# 7565| auto *DI = DimSizes.begin() + 1; +# 7566| // Product of dimension. +# 7567|-> llvm::Value *DimProd = +# 7568| llvm::ConstantInt::get(CGF.CGM.Int64Ty, ElementTypeSize); +# 7569| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:11784:3: var_decl: Declaring variable "Checker". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGOpenMPRuntime.cpp:11792:3: uninit_use_in_call: Using uninitialized value "Checker.IVLVal". Field "Checker.IVLVal.LVType" is uninitialized when calling "getFoundData". +#11790| LValue IVLVal; +#11791| llvm::Function *FoundFn; +#11792|-> std::tie(FoundE, FoundD, UniqueDeclName, IVLVal, FoundFn) = +#11793| Checker.getFoundData(); +#11794| if (FoundFn != CGF.CurFn) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmt.cpp:922:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmt.cpp:945:7: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 943| if (HasEmptyBody && CondIsTrue) { +# 944| CurFn->removeFnAttr(llvm::Attribute::MustProgress); +# 945|-> return false; +# 946| } +# 947| return true; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:875:13: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 873| } else { +# 874| assert(!CE && "Expected non-constant firstprivate."); +# 875|-> OriginalLVal = EmitLValue(&DRE); +# 876| } +# 877| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:878:11: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 876| } +# 877| } else { +# 878|-> OriginalLVal = EmitLValue(&DRE); +# 879| } +# 880| QualType Type = VD->getType(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:1000:11: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 998| DeclRefExpr DRE(getContext(), const_cast(VD), true, +# 999| (*IRef)->getType(), VK_LValue, (*IRef)->getExprLoc()); +# 1000|-> MasterAddr = EmitLValue(&DRE).getAddress(*this); +# 1001| LocalDeclMap.erase(VD); +# 1002| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:1079:9: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 1077| CapturedStmtInfo->lookup(OrigVD) != nullptr, +# 1078| (*IRef)->getType(), VK_LValue, (*IRef)->getExprLoc()); +# 1079|-> PrivateScope.addPrivate(DestVD, EmitLValue(&DRE).getAddress(*this)); +# 1080| // Check if the variable is also a firstprivate: in this case IInit is +# 1081| // not generated. Initialization of this variable will happen in codegen + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:2213:7: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 2211| CapturedStmtInfo->lookup(OrigVD) != nullptr, +# 2212| (*IC)->getType(), VK_LValue, (*IC)->getExprLoc()); +# 2213|-> Address OrigAddr = EmitLValue(&DRE).getAddress(*this); +# 2214| CodeGenFunction::OMPPrivateScope VarScope(*this); +# 2215| VarScope.addPrivate(OrigVD, OrigAddr); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:2280:7: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 2278| LocalDeclMap.count(VD) || CapturedStmtInfo->lookup(VD), +# 2279| E->getType(), VK_LValue, E->getExprLoc()); +# 2280|-> (void)LoopScope.addPrivate(PrivateVD, EmitLValue(&DRE).getAddress(*this)); +# 2281| } else { +# 2282| (void)LoopScope.addPrivate(PrivateVD, VarEmission.getAllocatedAddress()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:2452:9: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 2450| /*RefersToEnclosingVariableOrCapture=*/false, +# 2451| (*IPC)->getType(), VK_LValue, (*IPC)->getExprLoc()); +# 2452|-> OrigAddr = EmitLValue(&DRE).getAddress(*this); +# 2453| } +# 2454| OMPPrivateScope VarScope(*this); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:3813:3: var_decl: Declaring variable "HasLastprivates" without initializer. +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:3853:3: uninit_use: Using uninitialized value "HasLastprivates". +# 3851| emitDispatchForLoopBounds); +# 3852| } +# 3853|-> return HasLastprivates; +# 3854| } +# 3855| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGStmtOpenMP.cpp:4861:9: overrun-buffer-val: Overrunning struct type _ZN5clang11DeclRefExprE of 32 bytes by passing it to a function which accesses it at byte offset 47. +# 4859| Pair.second->getType(), VK_LValue, +# 4860| Pair.second->getExprLoc()); +# 4861|-> Scope.addPrivate(Pair.first, CGF.EmitLValue(&DRE).getAddress(CGF)); +# 4862| } +# 4863| for (const auto &Pair : PrivatePtrs) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:442:5: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:447:5: uninit_use: Using uninitialized value "R". Field "R" is uninitialized. +# 445| R.Addr = Addr; +# 446| assert(Addr.getType()->isPointerTy()); +# 447|-> return R; +# 448| } +# 449| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:488:5: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/CodeGen/CGValue.h:493:5: uninit_use: Using uninitialized value "R". Field "R" is uninitialized. +# 491| LValueBaseInfo(AlignmentSource::Decl), TBAAAccessInfo()); +# 492| R.V = V; +# 493|-> return R; +# 494| } +# 495| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenABITypes.cpp:86:3: var_decl: Declaring variable "implicitArgs". +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenABITypes.cpp:93:3: uninit_use: Using uninitialized value "implicitArgs". Field "implicitArgs.Prefix.InlineElts" is uninitialized. +# 91| implicitArgs.Suffix.push_back(arg.Value); +# 92| } +# 93|-> return implicitArgs; +# 94| } +# 95| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenModule.cpp:82:28: constructor_uses_global_object: The constructor of global object "LimitedCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LimitedCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| using namespace CodeGen; +# 81| +# 82|-> static llvm::cl::opt LimitedCoverage( +# 83| "limited-coverage-experimental", llvm::cl::Hidden, +# 84| llvm::cl::desc("Emit limited coverage mapping information (experimental)")); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenModule.cpp:6514:3: var_decl: Declaring variable "EvalResult". +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenModule.cpp:6589:3: uninit_use_in_call: Using uninitialized value "EvalResult.Val.Data" when calling "~EvalResult". +# 6587| Entry = CV; +# 6588| +# 6589|-> return ConstantAddress(CV, Type, Align); +# 6590| } +# 6591| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CodeGenPGO.cpp:31:5: constructor_uses_global_object: The constructor of global object "EnableValueProfiling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableValueProfiling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static llvm::cl::opt +# 31|-> EnableValueProfiling("enable-value-profiling", +# 32| llvm::cl::desc("Enable value profiling"), +# 33| llvm::cl::Hidden, llvm::cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:36:5: constructor_uses_global_object: The constructor of global object "llvm::EnableSingleByteCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableSingleByteCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| namespace llvm { +# 35| cl::opt +# 36|-> EnableSingleByteCoverage("enable-single-byte-coverage", +# 37| llvm::cl::ZeroOrMore, +# 38| llvm::cl::desc("Enable single byte coverage"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:42:28: constructor_uses_global_object: The constructor of global object "EmptyLineCommentCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmptyLineCommentCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| } // namespace llvm +# 41| +# 42|-> static llvm::cl::opt EmptyLineCommentCoverage( +# 43| "emptyline-comment-coverage", +# 44| llvm::cl::desc("Emit emptylines and comment lines as skipped regions (only " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:48:21: constructor_uses_global_object: The constructor of global object "SystemHeadersCoverage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SystemHeadersCoverage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| llvm::cl::init(true), llvm::cl::Hidden); +# 47| +# 48|-> llvm::cl::opt SystemHeadersCoverage( +# 49| "system-headers-coverage", +# 50| llvm::cl::desc("Enable collecting coverage from system headers"), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:517:5: var_decl: Declaring variable "Filter". +llvm-project-19.0.0.src/clang/lib/CodeGen/CoverageMappingGen.cpp:541:5: uninit_use: Using uninitialized value "Filter". Field "Filter.Vector.InlineElts" is uninitialized. +# 539| SR.LineEnd, SR.ColumnEnd)); +# 540| } +# 541|-> return Filter; +# 542| } +# 543| }; + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:104:10: assign: Assigning: "ArgPtr" = "*__begin2". +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:105:7: set_unmanaged_raw_ptr: Function "AddSynthesizedArg" sets a smart pointer with "ArgPtr". +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:104:10: assign: Assigning: "ArgPtr" = "*__begin2". +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:105:7: multiple_init_smart_ptr: Function "AddSynthesizedArg" sets a smart pointer with "ArgPtr", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Driver/Compilation.cpp:105:7: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 103| // Add allocated arguments to the final DAL. +# 104| for (auto *ArgPtr : AllocatedArgs) +# 105|-> Entry->AddSynthesizedArg(ArgPtr); +# 106| } +# 107| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/Driver.cpp:5486:7: var_decl: Declaring variable "DevA". +llvm-project-19.0.0.src/clang/lib/Driver/Driver.cpp:5494:7: uninit_use: Using uninitialized value "DevA". Field "DevA.InlineElts" is uninitialized. +# 5492| DepA->getOffloadingDeviceKind())); +# 5493| }); +# 5494|-> return DevA; +# 5495| } +# 5496| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:68:5: constructor_uses_global_object: The constructor of global object "ClangOffloadBundlerTimerGroup" itself makes use of global object "TimerLock" defined in another compilation unit. The order of construction is unspecified, so "ClangOffloadBundlerTimerGroup" might be created before "TimerLock" is available. +# 66| +# 67| static llvm::TimerGroup +# 68|-> ClangOffloadBundlerTimerGroup("Clang Offload Bundler Timer Group", +# 69| "Timer group for clang offload bundler"); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:68:5: destructor_uses_global_object: The destructor of global object "ClangOffloadBundlerTimerGroup" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "ClangOffloadBundlerTimerGroup" might be called after "fuzzer::TPC" has already been destroyed. +# 66| +# 67| static llvm::TimerGroup +# 68|-> ClangOffloadBundlerTimerGroup("Clang Offload Bundler Timer Group", +# 69| "Timer group for clang offload bundler"); +# 70| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:491:5: var_decl: Declaring variable "File". +llvm-project-19.0.0.src/clang/lib/Driver/OffloadBundler.cpp:495:5: uninit_use_in_call: Using uninitialized value "File". Field "File.InlineElts" is uninitialized when calling "push_front". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 493| sys::fs::createTemporaryFile("clang-offload-bundler", "tmp", File)) +# 494| return createFileError(File, EC); +# 495|-> Files.push_front(File); +# 496| +# 497| if (Contents) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp:172:3: var_decl: Declaring variable "BCLibs". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp:177:3: uninit_use: Using uninitialized value "BCLibs". Field "BCLibs.InlineElts" is uninitialized. +# 175| BCLibs.emplace_back(BCLib); +# 176| +# 177|-> return BCLibs; +# 178| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/CommonArgs.cpp:330:3: var_decl: Declaring variable "UnifiedFeatures". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/CommonArgs.cpp:337:3: uninit_use: Using uninitialized value "UnifiedFeatures". Field "UnifiedFeatures.InlineElts" is uninitialized. +# 335| } +# 336| +# 337|-> return UnifiedFeatures; +# 338| } +# 339| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:287:3: var_decl: Declaring variable "Paths". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:308:3: uninit_use: Using uninitialized value "Paths". Field "Paths.InlineElts" is uninitialized. +# 306| Paths.push_back(P.c_str()); +# 307| +# 308|-> return Paths; +# 309| } +# 310| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:408:3: var_decl: Declaring variable "Paths". +llvm-project-19.0.0.src/clang/lib/Driver/ToolChains/OHOS.cpp:412:3: uninit_use: Using uninitialized value "Paths". Field "Paths.InlineElts" is uninitialized. +# 410| Paths.push_back( +# 411| makePath({getDriver().ResourceDir, "lib", getMultiarchTriple(Triple)})); +# 412|-> return Paths; +# 413| } +# 414| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Driver/Types.cpp:387:3: var_decl: Declaring variable "P". +llvm-project-19.0.0.src/clang/lib/Driver/Types.cpp:393:3: uninit_use: Using uninitialized value "P". Field "P.InlineElts" is uninitialized. +# 391| P.push_back(static_cast(I)); +# 392| assert(P.size() <= phases::MaxNumberOfPhases && "Too many phases in list"); +# 393|-> return P; +# 394| } +# 395| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:187:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:193:3: uninit_use_in_call: Using uninitialized value "data". Field "data.Length" is uninitialized when calling "push_back". +# 191| data.Text = text.copy(StrAlloc); +# 192| data.BeforePrev = beforePreviousInsertions; +# 193|-> CachedEdits.push_back(data); +# 194| } +# 195| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:217:3: var_decl: Declaring variable "data". +llvm-project-19.0.0.src/clang/lib/Edit/Commit.cpp:222:3: uninit_use_in_call: Using uninitialized value "data". Field "data.BeforePrev" is uninitialized when calling "push_back". +# 220| data.Offset = Offs; +# 221| data.Length = Len; +# 222|-> CachedEdits.push_back(data); +# 223| } +# 224| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:103:3: tainted_data_return: Called function "Text.find_last_of(clang::format::Blanks, MaxSplitBytes)", and a possible return value is known to be less than zero. +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:103:3: assign: Assigning: "SpaceOffset" = "Text.find_last_of(clang::format::Blanks, MaxSplitBytes)". +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:130:5: overflow: The expression "SpaceOffset + 1UL" is considered to have possibly overflowed. +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:130:5: overflow_sink: "SpaceOffset + 1UL", which might have overflowed, is passed to "Text[SpaceOffset + 1UL]". +# 128| +# 129| // Avoid ever breaking before a @tag or a { in JavaScript. +# 130|-> if (Style.isJavaScript() && SpaceOffset + 1 < Text.size() && +# 131| (Text[SpaceOffset + 1] == '{' || Text[SpaceOffset + 1] == '@')) { +# 132| SpaceOffset = Text.find_last_of(Blanks, SpaceOffset); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:691:28: constructor_uses_global_object: The constructor of global object "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" might be created before "Allocator" is available. +# 689| +# 690| const llvm::StringSet<> +# 691|-> BreakableBlockComment::ContentIndentingJavadocAnnotations = { +# 692| "@param", "@return", "@returns", "@throws", "@type", "@template", +# 693| "@see", "@deprecated", "@define", "@exports", "@mods", "@private", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:691:28: constructor_uses_global_object: The constructor of global object "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" might be created before "fuzzer::TPC" is available. +# 689| +# 690| const llvm::StringSet<> +# 691|-> BreakableBlockComment::ContentIndentingJavadocAnnotations = { +# 692| "@param", "@return", "@returns", "@throws", "@type", "@template", +# 693| "@see", "@deprecated", "@define", "@exports", "@mods", "@private", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/BreakableToken.cpp:691:28: constructor_uses_global_object: The constructor of global object "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::format::BreakableBlockComment::ContentIndentingJavadocAnnotations" might be created before "scudo::RegionPageMap::Buffers" is available. +# 689| +# 690| const llvm::StringSet<> +# 691|-> BreakableBlockComment::ContentIndentingJavadocAnnotations = { +# 692| "@param", "@return", "@returns", "@throws", "@type", "@template", +# 693| "@see", "@deprecated", "@define", "@exports", "@mods", "@private", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Format/Format.cpp:3842:3: var_decl: Declaring variable "LangOpts". +llvm-project-19.0.0.src/clang/lib/Format/Format.cpp:3868:3: uninit_use: Using uninitialized value "LangOpts". Field "LangOpts.GPUDefaultStream" is uninitialized. +# 3866| LangOpts.DeclSpecKeyword = 1; // To get __declspec. +# 3867| LangOpts.C99 = 1; // To get kw_restrict for non-underscore-prefixed restrict. +# 3868|-> return LangOpts; +# 3869| } +# 3870| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/FormatTokenLexer.cpp:397:43: constructor_uses_global_object: The constructor of global object "clang::format::FormatTokenLexer::CSharpAttributeTargets" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "clang::format::FormatTokenLexer::CSharpAttributeTargets" might be created before "Allocator" is available. +# 395| // Valid C# attribute targets: +# 396| // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets +# 397|-> const llvm::StringSet<> FormatTokenLexer::CSharpAttributeTargets = { +# 398| "assembly", "module", "field", "event", "method", +# 399| "param", "property", "return", "type", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/FormatTokenLexer.cpp:397:43: constructor_uses_global_object: The constructor of global object "clang::format::FormatTokenLexer::CSharpAttributeTargets" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "clang::format::FormatTokenLexer::CSharpAttributeTargets" might be created before "fuzzer::TPC" is available. +# 395| // Valid C# attribute targets: +# 396| // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets +# 397|-> const llvm::StringSet<> FormatTokenLexer::CSharpAttributeTargets = { +# 398| "assembly", "module", "field", "event", "method", +# 399| "param", "property", "return", "type", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Format/FormatTokenLexer.cpp:397:43: constructor_uses_global_object: The constructor of global object "clang::format::FormatTokenLexer::CSharpAttributeTargets" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "clang::format::FormatTokenLexer::CSharpAttributeTargets" might be created before "scudo::RegionPageMap::Buffers" is available. +# 395| // Valid C# attribute targets: +# 396| // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets +# 397|-> const llvm::StringSet<> FormatTokenLexer::CSharpAttributeTargets = { +# 398| "assembly", "module", "field", "event", "method", +# 399| "param", "property", "return", "type", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Format/SortJavaScriptImports.cpp:266:5: var_decl: Declaring variable "ReferencesSorted". +llvm-project-19.0.0.src/clang/lib/Format/SortJavaScriptImports.cpp:284:5: uninit_use: Using uninitialized value "ReferencesSorted". Field "ReferencesSorted.InlineElts" is uninitialized. +# 282| SortChunk.end()); +# 283| } +# 284|-> return ReferencesSorted; +# 285| } +# 286| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/ASTUnit.cpp:711:7: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/ASTUnit.cpp:711:7: leaked_storage: Failing to save or free storage allocated by "this->OwningPreviousClient.release()" leaks it. +# 709| ~CaptureDroppedDiagnostics() { +# 710| if (Diags.getClient() == &Client) +# 711|-> Diags.setClient(PreviousClient, !!OwningPreviousClient.release()); +# 712| } +# 713| }; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:453:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:453:3: var_assign: Assigning: "HeaderInfo" = storage returned from "new clang::HeaderSearch(std::shared_ptr(this->getHeaderSearchOptsPtr()), this->getSourceManager(), this->getDiagnostics(), this->getLangOpts(), this->getTarget())". +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:456:3: noescape: Resource "HeaderInfo" is not freed or pointed-to in "make_shared". +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInstance.cpp:539:1: leaked_storage: Variable "HeaderInfo" going out of scope leaks the storage it points to. +# 537| /*ShowDepth=*/true, /*MSStyle=*/true); +# 538| } +# 539|-> } +# 540| +# 541| std::string CompilerInstance::getSpecificModuleCachePath(StringRef ModuleHash) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInvocation.cpp:1400:3: var_decl: Declaring variable "Values". +llvm-project-19.0.0.src/clang/lib/Frontend/CompilerInvocation.cpp:1402:3: uninit_use: Using uninitialized value "Values". Field "Values.InlineElts" is uninitialized. +# 1400| SmallVector Values; +# 1401| serializeSanitizerSet(S, Values); +# 1402|-> return Values; +# 1403| } +# 1404| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/lib/Frontend/FrontendAction.cpp:1120:5: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-project-19.0.0.src/clang/lib/Frontend/FrontendAction.cpp:1120:5: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 1118| CI.resetAndLeakSema(); +# 1119| CI.resetAndLeakASTContext(); +# 1120|-> llvm::BuryPointer(CI.takeASTConsumer().get()); +# 1121| } else { +# 1122| CI.setSema(nullptr); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Frontend/LayoutOverrideSource.cpp:49:3: var_decl: Declaring variable "CurrentLayout". +llvm-project-19.0.0.src/clang/lib/Frontend/LayoutOverrideSource.cpp:62:9: uninit_use_in_call: Using uninitialized value "CurrentLayout.Align" when calling "operator =". +llvm-project-19.0.0.src/clang/lib/Frontend/LayoutOverrideSource.cpp:62:9: uninit_use_in_call: Using uninitialized value "CurrentLayout.Size" when calling "operator =". +# 60| // Flush the last type/layout, if there is one. +# 61| if (!CurrentType.empty()) +# 62|-> Layouts[CurrentType] = CurrentLayout; +# 63| CurrentLayout = Layout(); +# 64| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:991:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:991:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "MicrosoftExtHandler" with "new ::UnknownPragmaHandler("#pragma", Callbacks, PP->getLangOpts().MicrosoftExt)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1004:3: get_raw_ptr: Function "get" returns a pointer managed by "MicrosoftExtHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1004:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "MicrosoftExtHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1004:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1002| /*RequireTokenExpansion=*/PP.getLangOpts().MicrosoftExt)); +# 1003| +# 1004|-> PP.AddPragmaHandler(MicrosoftExtHandler.get()); +# 1005| PP.AddPragmaHandler("GCC", GCCHandler.get()); +# 1006| PP.AddPragmaHandler("clang", ClangHandler.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:996:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:996:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "GCCHandler" with "new ::UnknownPragmaHandler("#pragma GCC", Callbacks, PP->getLangOpts().MicrosoftExt)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1005:3: get_raw_ptr: Function "get" returns a pointer managed by "GCCHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1005:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "GCCHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1005:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1003| +# 1004| PP.AddPragmaHandler(MicrosoftExtHandler.get()); +# 1005|-> PP.AddPragmaHandler("GCC", GCCHandler.get()); +# 1006| PP.AddPragmaHandler("clang", ClangHandler.get()); +# 1007| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1000:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1000:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "ClangHandler" with "new ::UnknownPragmaHandler("#pragma clang", Callbacks, PP->getLangOpts().MicrosoftExt)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1006:3: get_raw_ptr: Function "get" returns a pointer managed by "ClangHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1006:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "ClangHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1006:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1004| PP.AddPragmaHandler(MicrosoftExtHandler.get()); +# 1005| PP.AddPragmaHandler("GCC", GCCHandler.get()); +# 1006|-> PP.AddPragmaHandler("clang", ClangHandler.get()); +# 1007| +# 1008| // The tokens after pragma omp need to be expanded. + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1013:3: assign: Assigning: "" = "operator new(64UL)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1013:3: set_unmanaged_raw_ptr: Function "unique_ptr" sets "OpenMPHandler" with "new ::UnknownPragmaHandler("#pragma omp", Callbacks, true)". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1016:3: get_raw_ptr: Function "get" returns a pointer managed by "OpenMPHandler". +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1016:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "OpenMPHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/PrintPreprocessedOutput.cpp:1016:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 1014| new UnknownPragmaHandler("#pragma omp", Callbacks, +# 1015| /*RequireTokenExpansion=*/true)); +# 1016|-> PP.AddPragmaHandler("omp", OpenMPHandler.get()); +# 1017| +# 1018| PP.addPPCallbacks(std::unique_ptr(Callbacks)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/Rewrite/FixItRewriter.cpp:48:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/Rewrite/FixItRewriter.cpp:48:3: leaked_storage: Failing to save or free storage allocated by "this->Owner.release()" leaks it. +# 46| +# 47| FixItRewriter::~FixItRewriter() { +# 48|-> Diags.setClient(Client, Owner.release() != nullptr); +# 49| } +# 50| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:139:5: address_of: Taking address with "&C" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:139:5: assign: Assigning: "CPtr" = "&C". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:143:5: ptr_arith: Using "CPtr" as an array. This might corrupt or misinterpret adjacent memory locations. +# 141| // Begin and end before conversion. +# 142| unsigned char const *OriginalBegin = Begin; +# 143|-> llvm::ConversionResult Res = llvm::ConvertUTF8toUTF32( +# 144| &Begin, End, &CPtr, CPtr + 1, llvm::strictConversion); +# 145| (void)Res; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1056:7: tainted_data_return: Called function "llvm::sys::locale::columnWidth(llvm::StringRef(H.CodeToInsert))", and a possible return value may be less than zero. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1056:7: overflow: The expression "HintCol + llvm::sys::locale::columnWidth(llvm::StringRef(H.CodeToInsert))" might be negative, but is used in a context that treats it as unsigned. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1056:7: assign: Assigning: "PrevHintEndCol" = "HintCol + llvm::sys::locale::columnWidth(llvm::StringRef(H.CodeToInsert))". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1043:9: overflow: The expression "PrevHintEndCol + 1U" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1043:9: assign: Assigning: "HintCol" = "PrevHintEndCol + 1U". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: overflow: The expression "HintCol - PrevHintEndCol" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: overflow: The expression "FixItInsertionLine.size() + (HintCol - PrevHintEndCol)" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: overflow: The expression "FixItInsertionLine.size() + (HintCol - PrevHintEndCol) + H.CodeToInsert.size()" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1047:7: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1051:9: overflow_sink: "NewFixItLineSize", which might have underflowed, is passed to "FixItInsertionLine.resize(NewFixItLineSize, ' ')". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1049| H.CodeToInsert.size(); +# 1050| if (NewFixItLineSize > FixItInsertionLine.size()) +# 1051|-> FixItInsertionLine.resize(NewFixItLineSize, ' '); +# 1052| +# 1053| std::copy(H.CodeToInsert.begin(), H.CodeToInsert.end(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1083:3: var_decl: Declaring variable "LineRanges". +llvm-project-19.0.0.src/clang/lib/Frontend/TextDiagnostic.cpp:1121:3: uninit_use: Using uninitialized value "LineRanges". Field "LineRanges.InlineElts" is uninitialized. +# 1119| } +# 1120| +# 1121|-> return LineRanges; +# 1122| } +# 1123| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: tainted_data_return: Called function "C.find('\\', last)", and a possible return value is known to be less than zero. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: assign: Assigning: "loc" = "C.find('\\', last)". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: overflow: The expression "loc + 1UL" is considered to have possibly overflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: assign: Assigning: "last" = "loc + 1UL". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:806:5: overflow_sink: "last", which might have overflowed, is passed to "C[last]". +# 804| last = loc + 1; +# 805| +# 806|-> if (C[last] == '\n' || C[last] == '\r') { +# 807| ++last; +# 808| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: tainted_data_return: Called function "C.find('\\', last)", and a possible return value is known to be less than zero. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:798:26: assign: Assigning: "loc" = "C.find('\\', last)". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: overflow: The expression "loc + 1UL" is considered to have possibly overflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:804:5: assign: Assigning: "last" = "loc + 1UL". +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:812:11: overflow: The expression "last - 1UL" is deemed overflowed because at least one of its arguments has overflowed. +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:812:11: overflow_sink: "last - 1UL", which might have underflowed, is passed to "C[last - 1UL]". +# 810| if (last < C.size()) +# 811| if (C[last] == '\n' || C[last] == '\r') +# 812|-> if (C[last] != C[last-1]) +# 813| ++last; +# 814| } else { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:1138:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp:1138:3: leaked_storage: Failing to save or free storage allocated by "Owner.release()" leaks it. +# 1136| } +# 1137| +# 1138|-> Diags.setClient(CurClient, Owner.release() != nullptr); +# 1139| +# 1140| // Reset the buffer, we have processed all the diagnostics in it. + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:36:5: alloc_fn: Storage is returned from allocation function "operator new[]". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:36:5: var_assign: Assigning: "Buf" = storage returned from "new unsigned char[::ValueStorage::getPayloadOffset() + AllocSize]". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:38:5: identity_transfer: Passing "Buf" as argument 2 to function "operator new", which returns that argument. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:38:5: noescape: Resource "Buf" is not freed or pointed-to in "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:38:5: var_assign: Assigning: "VS" = storage returned from "new (Buf) ::ValueStorage(DtorF, AllocSize, ElementsSize)". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:39:5: noescape: Resource "VS" is not freed or pointed-to in "getPayload". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:40:5: noescape: Resource "VS" is not freed or pointed-to in "getPayload". +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:40:5: leaked_storage: Variable "VS" going out of scope leaks the storage it points to. +llvm-project-19.0.0.src/clang/lib/Interpreter/Value.cpp:40:5: leaked_storage: Variable "Buf" going out of scope leaks the storage it points to. +# 38| ValueStorage *VS = new (Buf) ValueStorage(DtorF, AllocSize, ElementsSize); +# 39| std::memcpy(VS->getPayload(), Canary, sizeof(Canary)); +# 40|-> return VS->getPayload(); +# 41| } +# 42| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/DependencyDirectivesScanner.cpp:72:5: var_decl: Declaring variable "LangOpts". +llvm-project-19.0.0.src/clang/lib/Lex/DependencyDirectivesScanner.cpp:78:5: uninit_use: Using uninitialized value "LangOpts". Field "LangOpts.GPUDefaultStream" is uninitialized. +# 76| // FIXME: we do not enable C11 or C++11, so we are missing u/u8/U"" and +# 77| // R"()" literals. +# 78|-> return LangOpts; +# 79| } +# 80| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1533:3: var_decl: Declaring variable "CharBuf". +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1536:3: uninit_use: Using uninitialized value "CharBuf". Field "CharBuf.InlineElts" is uninitialized. +# 1534| llvm::raw_svector_ostream CharOS(CharBuf); +# 1535| llvm::write_hex(CharOS, C, llvm::HexPrintStyle::Upper, 4); +# 1536|-> return CharBuf; +# 1537| } +# 1538| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1818:3: address_of: Taking address with "&CodePoint" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:1818:3: callee_ptr_arith: Passing "&CodePoint" to function "convertUTF8Sequence" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1816| const char *UnicodePtr = CharStart; +# 1817| +# 1818|-> llvm::ConversionResult ConvResult = llvm::convertUTF8Sequence( +# 1819| (const llvm::UTF8 **)&UnicodePtr, (const llvm::UTF8 *)BufferEnd, +# 1820| &CodePoint, llvm::strictConversion); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:3383:3: var_decl: Declaring variable "NumHexDigits" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:3404:3: uninit_use: Using uninitialized value "NumHexDigits". +# 3402| +# 3403| uint32_t CodePoint = 0; +# 3404|-> while (Count != NumHexDigits || Delimited) { +# 3405| char C = getCharAndSize(CurPtr, CharSize); +# 3406| if (!Delimited && Count == 0 && C == '{') { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:4431:5: address_of: Taking address with "&CodePoint" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Lex/Lexer.cpp:4431:5: callee_ptr_arith: Passing "&CodePoint" to function "convertUTF8Sequence" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 4429| // an escaped newline. +# 4430| --CurPtr; +# 4431|-> llvm::ConversionResult Status = +# 4432| llvm::convertUTF8Sequence((const llvm::UTF8 **)&CurPtr, +# 4433| (const llvm::UTF8 *)BufferEnd, + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Lex/MacroArgs.cpp:51:5: new_object: Calling single-object form of 'new': "new (llvm::safe_malloc(llvm::TrailingObjects::totalSizeToAlloc(UnexpArgTokens.size()))) clang::MacroArgs(UnexpArgTokens.size(), VarargsElided, MI->getNumParams())". +llvm-project-19.0.0.src/clang/lib/Lex/MacroArgs.cpp:51:5: assign: Assigning: "Result" = "new (llvm::safe_malloc(llvm::TrailingObjects::totalSizeToAlloc(UnexpArgTokens.size()))) clang::MacroArgs(UnexpArgTokens.size(), VarargsElided, MI->getNumParams())". +llvm-project-19.0.0.src/clang/lib/Lex/MacroArgs.cpp:69:5: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 67| "uninitialized array (as opposed to reusing a cached " +# 68| "MacroArgs)"); +# 69|-> std::copy(UnexpArgTokens.begin(), UnexpArgTokens.end(), +# 70| Result->getTrailingObjects()); +# 71| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Lex/ModuleMap.cpp:918:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Lex/ModuleMap.cpp:918:5: leaked_storage: Ignoring storage allocated by "Submodule->release()" leaks it. +# 916| for (auto &Submodule : PendingSubmodules) { +# 917| Submodule->setParent(Result); +# 918|-> Submodule.release(); // now owned by parent +# 919| } +# 920| PendingSubmodules.clear(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1320:3: var_decl: Declaring variable "ResultTok" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1392:9: uninit_use_in_call: Using uninitialized value "ResultTok.Kind" when calling "getIdentifierInfo". +# 1390| if (!SuppressDiagnostic) { +# 1391| if (auto Diag = PP.Diag(Tok.getLocation(), diag::err_pp_expected_after)) { +# 1392|-> if (IdentifierInfo *LastII = ResultTok.getIdentifierInfo()) +# 1393| Diag << LastII; +# 1394| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1320:3: var_decl: Declaring variable "ResultTok" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1392:9: uninit_use_in_call: Using uninitialized value "ResultTok.Kind" when calling "getIdentifierInfo". +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1392:9: uninit_use_in_call: Using uninitialized value "ResultTok.PtrData" when calling "getIdentifierInfo". +# 1390| if (!SuppressDiagnostic) { +# 1391| if (auto Diag = PP.Diag(Tok.getLocation(), diag::err_pp_expected_after)) { +# 1392|-> if (IdentifierInfo *LastII = ResultTok.getIdentifierInfo()) +# 1393| Diag << LastII; +# 1394| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1320:3: var_decl: Declaring variable "ResultTok" without initializer. +llvm-project-19.0.0.src/clang/lib/Lex/PPMacroExpansion.cpp:1396:9: uninit_use_in_call: Using uninitialized value "ResultTok.Loc" when calling "getLocation". +# 1394| else +# 1395| Diag << ResultTok.getKind(); +# 1396|-> Diag << tok::r_paren << ResultTok.getLocation(); +# 1397| } +# 1398| PP.Diag(LParenLoc, diag::note_matching) << tok::l_paren; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/lib/Lex/Pragma.cpp:103:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Lex/Pragma.cpp:103:3: leaked_storage: Ignoring storage allocated by "llvm::iterator_facade_base > >, std::forward_iterator_tag, llvm::StringMapEntry > >, long, llvm::StringMapEntry > > *, llvm::StringMapEntry I->getValue().release(); +# 104| Handlers.erase(I); +# 105| } +llvm-project-19.0.0.src/clang/lib/Lex/Pragma.cpp:103:3: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:634:3: var_decl: Declaring variable "Clauses". +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:649:7: uninit_use: Using uninitialized value "Clauses". Field "Clauses.InlineElts" is uninitialized. +# 647| // error. +# 648| SkipUntilEndOfDirective(*this); +# 649|-> return Clauses; +# 650| } +# 651| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:634:3: var_decl: Declaring variable "Clauses". +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:652:3: uninit_use: Using uninitialized value "Clauses". Field "Clauses.InlineElts" is uninitialized. +# 650| } +# 651| } +# 652|-> return Clauses; +# 653| } +# 654| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:1266:3: var_decl: Declaring variable "Vars". +llvm-project-19.0.0.src/clang/lib/Parse/ParseOpenACC.cpp:1273:5: uninit_use: Using uninitialized value "Vars". Field "Vars.InlineElts" is uninitialized. +# 1271| } else if (CanContinue == OpenACCParseCanContinue::Cannot) { +# 1272| SkipUntil(tok::r_paren, tok::annot_pragma_openacc_end, StopBeforeMatch); +# 1273|-> return Vars; +# 1274| } +# 1275| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:419:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:419:3: assign_smart_ptr: Function "operator =" assigns "this->AlignHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:420:3: get_raw_ptr: Function "get" returns a pointer managed by "this->AlignHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:420:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->AlignHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:420:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 418| void Parser::initializePragmaHandlers() { +# 419| AlignHandler = std::make_unique(); +# 420|-> PP.AddPragmaHandler(AlignHandler.get()); +# 421| +# 422| GCCVisibilityHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:422:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:422:3: assign_smart_ptr: Function "operator =" assigns "this->GCCVisibilityHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:423:3: get_raw_ptr: Function "get" returns a pointer managed by "this->GCCVisibilityHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:423:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->GCCVisibilityHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:423:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 421| +# 422| GCCVisibilityHandler = std::make_unique(); +# 423|-> PP.AddPragmaHandler("GCC", GCCVisibilityHandler.get()); +# 424| +# 425| OptionsHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:425:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:425:3: assign_smart_ptr: Function "operator =" assigns "this->OptionsHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:426:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OptionsHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:426:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OptionsHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:426:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 424| +# 425| OptionsHandler = std::make_unique(); +# 426|-> PP.AddPragmaHandler(OptionsHandler.get()); +# 427| +# 428| PackHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:428:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:428:3: assign_smart_ptr: Function "operator =" assigns "this->PackHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:429:3: get_raw_ptr: Function "get" returns a pointer managed by "this->PackHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:429:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->PackHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:429:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 427| +# 428| PackHandler = std::make_unique(); +# 429|-> PP.AddPragmaHandler(PackHandler.get()); +# 430| +# 431| MSStructHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:431:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:431:3: assign_smart_ptr: Function "operator =" assigns "this->MSStructHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:432:3: get_raw_ptr: Function "get" returns a pointer managed by "this->MSStructHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:432:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSStructHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:432:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 430| +# 431| MSStructHandler = std::make_unique(); +# 432|-> PP.AddPragmaHandler(MSStructHandler.get()); +# 433| +# 434| UnusedHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:434:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:434:3: assign_smart_ptr: Function "operator =" assigns "this->UnusedHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:435:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnusedHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:435:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnusedHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:435:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 433| +# 434| UnusedHandler = std::make_unique(); +# 435|-> PP.AddPragmaHandler(UnusedHandler.get()); +# 436| +# 437| WeakHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:437:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:437:3: assign_smart_ptr: Function "operator =" assigns "this->WeakHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:438:3: get_raw_ptr: Function "get" returns a pointer managed by "this->WeakHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:438:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->WeakHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:438:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 436| +# 437| WeakHandler = std::make_unique(); +# 438|-> PP.AddPragmaHandler(WeakHandler.get()); +# 439| +# 440| RedefineExtnameHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:440:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:440:3: assign_smart_ptr: Function "operator =" assigns "this->RedefineExtnameHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:441:3: get_raw_ptr: Function "get" returns a pointer managed by "this->RedefineExtnameHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:441:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->RedefineExtnameHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:441:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 439| +# 440| RedefineExtnameHandler = std::make_unique(); +# 441|-> PP.AddPragmaHandler(RedefineExtnameHandler.get()); +# 442| +# 443| FPContractHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:443:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:443:3: assign_smart_ptr: Function "operator =" assigns "this->FPContractHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:444:3: get_raw_ptr: Function "get" returns a pointer managed by "this->FPContractHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:444:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FPContractHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:444:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 442| +# 443| FPContractHandler = std::make_unique(); +# 444|-> PP.AddPragmaHandler("STDC", FPContractHandler.get()); +# 445| +# 446| STDCFenvAccessHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:446:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:446:3: assign_smart_ptr: Function "operator =" assigns "this->STDCFenvAccessHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:447:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCFenvAccessHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:447:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCFenvAccessHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:447:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 445| +# 446| STDCFenvAccessHandler = std::make_unique(); +# 447|-> PP.AddPragmaHandler("STDC", STDCFenvAccessHandler.get()); +# 448| +# 449| STDCFenvRoundHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:449:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:449:3: assign_smart_ptr: Function "operator =" assigns "this->STDCFenvRoundHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:450:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCFenvRoundHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:450:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCFenvRoundHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:450:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 448| +# 449| STDCFenvRoundHandler = std::make_unique(); +# 450|-> PP.AddPragmaHandler("STDC", STDCFenvRoundHandler.get()); +# 451| +# 452| STDCCXLIMITHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:452:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:452:3: assign_smart_ptr: Function "operator =" assigns "this->STDCCXLIMITHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:453:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCCXLIMITHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:453:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCCXLIMITHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:453:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 451| +# 452| STDCCXLIMITHandler = std::make_unique(); +# 453|-> PP.AddPragmaHandler("STDC", STDCCXLIMITHandler.get()); +# 454| +# 455| STDCUnknownHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:455:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:455:3: assign_smart_ptr: Function "operator =" assigns "this->STDCUnknownHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:456:3: get_raw_ptr: Function "get" returns a pointer managed by "this->STDCUnknownHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:456:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->STDCUnknownHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:456:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 454| +# 455| STDCUnknownHandler = std::make_unique(); +# 456|-> PP.AddPragmaHandler("STDC", STDCUnknownHandler.get()); +# 457| +# 458| PCSectionHandler = std::make_unique(Actions); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:458:3: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:458:3: assign_smart_ptr: Function "operator =" assigns "this->PCSectionHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:459:3: get_raw_ptr: Function "get" returns a pointer managed by "this->PCSectionHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:459:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->PCSectionHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:459:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 457| +# 458| PCSectionHandler = std::make_unique(Actions); +# 459|-> PP.AddPragmaHandler("clang", PCSectionHandler.get()); +# 460| +# 461| if (getLangOpts().OpenCL) { + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:462:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:462:5: assign_smart_ptr: Function "operator =" assigns "this->OpenCLExtensionHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:463:5: get_raw_ptr: Function "get" returns a pointer managed by "this->OpenCLExtensionHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:463:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OpenCLExtensionHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:463:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 461| if (getLangOpts().OpenCL) { +# 462| OpenCLExtensionHandler = std::make_unique(); +# 463|-> PP.AddPragmaHandler("OPENCL", OpenCLExtensionHandler.get()); +# 464| +# 465| PP.AddPragmaHandler("OPENCL", FPContractHandler.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:465:5: get_raw_ptr: Function "get" returns a pointer managed by "this->FPContractHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:465:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FPContractHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:465:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 463| PP.AddPragmaHandler("OPENCL", OpenCLExtensionHandler.get()); +# 464| +# 465|-> PP.AddPragmaHandler("OPENCL", FPContractHandler.get()); +# 466| } +# 467| if (getLangOpts().OpenMP) + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:468:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:468:5: assign_smart_ptr: Function "operator =" assigns "this->OpenMPHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:471:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OpenMPHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:471:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OpenMPHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:471:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 469| else +# 470| OpenMPHandler = std::make_unique(); +# 471|-> PP.AddPragmaHandler(OpenMPHandler.get()); +# 472| +# 473| if (getLangOpts().OpenACC) + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:474:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:474:5: assign_smart_ptr: Function "operator =" assigns "this->OpenACCHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:477:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OpenACCHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:477:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OpenACCHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:477:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 475| else +# 476| OpenACCHandler = std::make_unique(); +# 477|-> PP.AddPragmaHandler(OpenACCHandler.get()); +# 478| +# 479| if (getLangOpts().MicrosoftExt || + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:481:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:481:5: assign_smart_ptr: Function "operator =" assigns "this->MSCommentHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:482:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSCommentHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:482:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSCommentHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:482:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 480| getTargetInfo().getTriple().isOSBinFormatELF()) { +# 481| MSCommentHandler = std::make_unique(Actions); +# 482|-> PP.AddPragmaHandler(MSCommentHandler.get()); +# 483| } +# 484| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:485:3: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:485:3: assign_smart_ptr: Function "operator =" assigns "this->FloatControlHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:486:3: get_raw_ptr: Function "get" returns a pointer managed by "this->FloatControlHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:486:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FloatControlHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:486:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 484| +# 485| FloatControlHandler = std::make_unique(Actions); +# 486|-> PP.AddPragmaHandler(FloatControlHandler.get()); +# 487| if (getLangOpts().MicrosoftExt) { +# 488| MSDetectMismatchHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:488:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:488:5: assign_smart_ptr: Function "operator =" assigns "this->MSDetectMismatchHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:490:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSDetectMismatchHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:490:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSDetectMismatchHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:490:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 488| MSDetectMismatchHandler = +# 489| std::make_unique(Actions); +# 490|-> PP.AddPragmaHandler(MSDetectMismatchHandler.get()); +# 491| MSPointersToMembers = std::make_unique(); +# 492| PP.AddPragmaHandler(MSPointersToMembers.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:491:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:491:5: assign_smart_ptr: Function "operator =" assigns "this->MSPointersToMembers" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:492:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSPointersToMembers". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:492:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSPointersToMembers.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:492:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 490| PP.AddPragmaHandler(MSDetectMismatchHandler.get()); +# 491| MSPointersToMembers = std::make_unique(); +# 492|-> PP.AddPragmaHandler(MSPointersToMembers.get()); +# 493| MSVtorDisp = std::make_unique(); +# 494| PP.AddPragmaHandler(MSVtorDisp.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:493:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:493:5: assign_smart_ptr: Function "operator =" assigns "this->MSVtorDisp" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:494:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSVtorDisp". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:494:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSVtorDisp.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:494:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 492| PP.AddPragmaHandler(MSPointersToMembers.get()); +# 493| MSVtorDisp = std::make_unique(); +# 494|-> PP.AddPragmaHandler(MSVtorDisp.get()); +# 495| MSInitSeg = std::make_unique("init_seg"); +# 496| PP.AddPragmaHandler(MSInitSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:495:5: assign: Assigning: "" = "std::make_unique("init_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:495:5: assign_smart_ptr: Function "operator =" assigns "this->MSInitSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:496:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSInitSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:496:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSInitSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:496:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 494| PP.AddPragmaHandler(MSVtorDisp.get()); +# 495| MSInitSeg = std::make_unique("init_seg"); +# 496|-> PP.AddPragmaHandler(MSInitSeg.get()); +# 497| MSDataSeg = std::make_unique("data_seg"); +# 498| PP.AddPragmaHandler(MSDataSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:497:5: assign: Assigning: "" = "std::make_unique("data_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:497:5: assign_smart_ptr: Function "operator =" assigns "this->MSDataSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:498:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSDataSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:498:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSDataSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:498:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 496| PP.AddPragmaHandler(MSInitSeg.get()); +# 497| MSDataSeg = std::make_unique("data_seg"); +# 498|-> PP.AddPragmaHandler(MSDataSeg.get()); +# 499| MSBSSSeg = std::make_unique("bss_seg"); +# 500| PP.AddPragmaHandler(MSBSSSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:499:5: assign: Assigning: "" = "std::make_unique("bss_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:499:5: assign_smart_ptr: Function "operator =" assigns "this->MSBSSSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:500:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSBSSSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:500:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSBSSSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:500:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 498| PP.AddPragmaHandler(MSDataSeg.get()); +# 499| MSBSSSeg = std::make_unique("bss_seg"); +# 500|-> PP.AddPragmaHandler(MSBSSSeg.get()); +# 501| MSConstSeg = std::make_unique("const_seg"); +# 502| PP.AddPragmaHandler(MSConstSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:501:5: assign: Assigning: "" = "std::make_unique("const_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:501:5: assign_smart_ptr: Function "operator =" assigns "this->MSConstSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:502:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSConstSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:502:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSConstSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:502:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 500| PP.AddPragmaHandler(MSBSSSeg.get()); +# 501| MSConstSeg = std::make_unique("const_seg"); +# 502|-> PP.AddPragmaHandler(MSConstSeg.get()); +# 503| MSCodeSeg = std::make_unique("code_seg"); +# 504| PP.AddPragmaHandler(MSCodeSeg.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:503:5: assign: Assigning: "" = "std::make_unique("code_seg")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:503:5: assign_smart_ptr: Function "operator =" assigns "this->MSCodeSeg" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:504:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSCodeSeg". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:504:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSCodeSeg.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:504:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 502| PP.AddPragmaHandler(MSConstSeg.get()); +# 503| MSCodeSeg = std::make_unique("code_seg"); +# 504|-> PP.AddPragmaHandler(MSCodeSeg.get()); +# 505| MSSection = std::make_unique("section"); +# 506| PP.AddPragmaHandler(MSSection.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:505:5: assign: Assigning: "" = "std::make_unique("section")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:505:5: assign_smart_ptr: Function "operator =" assigns "this->MSSection" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:506:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSSection". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:506:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSSection.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:506:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 504| PP.AddPragmaHandler(MSCodeSeg.get()); +# 505| MSSection = std::make_unique("section"); +# 506|-> PP.AddPragmaHandler(MSSection.get()); +# 507| MSStrictGuardStackCheck = +# 508| std::make_unique("strict_gs_check"); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:507:5: assign: Assigning: "" = "std::make_unique("strict_gs_check")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:507:5: assign_smart_ptr: Function "operator =" assigns "this->MSStrictGuardStackCheck" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:509:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSStrictGuardStackCheck". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:509:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSStrictGuardStackCheck.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:509:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 507| MSStrictGuardStackCheck = +# 508| std::make_unique("strict_gs_check"); +# 509|-> PP.AddPragmaHandler(MSStrictGuardStackCheck.get()); +# 510| MSFunction = std::make_unique("function"); +# 511| PP.AddPragmaHandler(MSFunction.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:510:5: assign: Assigning: "" = "std::make_unique("function")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:510:5: assign_smart_ptr: Function "operator =" assigns "this->MSFunction" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:511:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSFunction". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:511:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSFunction.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:511:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 509| PP.AddPragmaHandler(MSStrictGuardStackCheck.get()); +# 510| MSFunction = std::make_unique("function"); +# 511|-> PP.AddPragmaHandler(MSFunction.get()); +# 512| MSAllocText = std::make_unique("alloc_text"); +# 513| PP.AddPragmaHandler(MSAllocText.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:512:5: assign: Assigning: "" = "std::make_unique("alloc_text")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:512:5: assign_smart_ptr: Function "operator =" assigns "this->MSAllocText" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:513:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSAllocText". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:513:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSAllocText.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:513:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 511| PP.AddPragmaHandler(MSFunction.get()); +# 512| MSAllocText = std::make_unique("alloc_text"); +# 513|-> PP.AddPragmaHandler(MSAllocText.get()); +# 514| MSOptimize = std::make_unique("optimize"); +# 515| PP.AddPragmaHandler(MSOptimize.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:514:5: assign: Assigning: "" = "std::make_unique("optimize")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:514:5: assign_smart_ptr: Function "operator =" assigns "this->MSOptimize" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:515:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSOptimize". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:515:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSOptimize.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:515:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 513| PP.AddPragmaHandler(MSAllocText.get()); +# 514| MSOptimize = std::make_unique("optimize"); +# 515|-> PP.AddPragmaHandler(MSOptimize.get()); +# 516| MSRuntimeChecks = std::make_unique(); +# 517| PP.AddPragmaHandler(MSRuntimeChecks.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:516:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:516:5: assign_smart_ptr: Function "operator =" assigns "this->MSRuntimeChecks" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:517:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSRuntimeChecks". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:517:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSRuntimeChecks.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:517:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 515| PP.AddPragmaHandler(MSOptimize.get()); +# 516| MSRuntimeChecks = std::make_unique(); +# 517|-> PP.AddPragmaHandler(MSRuntimeChecks.get()); +# 518| MSIntrinsic = std::make_unique(); +# 519| PP.AddPragmaHandler(MSIntrinsic.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:518:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:518:5: assign_smart_ptr: Function "operator =" assigns "this->MSIntrinsic" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:519:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSIntrinsic". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:519:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSIntrinsic.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:519:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 517| PP.AddPragmaHandler(MSRuntimeChecks.get()); +# 518| MSIntrinsic = std::make_unique(); +# 519|-> PP.AddPragmaHandler(MSIntrinsic.get()); +# 520| MSFenvAccess = std::make_unique(); +# 521| PP.AddPragmaHandler(MSFenvAccess.get()); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:520:5: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:520:5: assign_smart_ptr: Function "operator =" assigns "this->MSFenvAccess" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:521:5: get_raw_ptr: Function "get" returns a pointer managed by "this->MSFenvAccess". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:521:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MSFenvAccess.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:521:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 519| PP.AddPragmaHandler(MSIntrinsic.get()); +# 520| MSFenvAccess = std::make_unique(); +# 521|-> PP.AddPragmaHandler(MSFenvAccess.get()); +# 522| } +# 523| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:525:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:525:5: assign_smart_ptr: Function "operator =" assigns "this->CUDAForceHostDeviceHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:527:5: get_raw_ptr: Function "get" returns a pointer managed by "this->CUDAForceHostDeviceHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:527:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->CUDAForceHostDeviceHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:527:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 525| CUDAForceHostDeviceHandler = +# 526| std::make_unique(Actions); +# 527|-> PP.AddPragmaHandler("clang", CUDAForceHostDeviceHandler.get()); +# 528| } +# 529| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:530:3: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:530:3: assign_smart_ptr: Function "operator =" assigns "this->OptimizeHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:531:3: get_raw_ptr: Function "get" returns a pointer managed by "this->OptimizeHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:531:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->OptimizeHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:531:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 529| +# 530| OptimizeHandler = std::make_unique(Actions); +# 531|-> PP.AddPragmaHandler("clang", OptimizeHandler.get()); +# 532| +# 533| LoopHintHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:533:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:533:3: assign_smart_ptr: Function "operator =" assigns "this->LoopHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:534:3: get_raw_ptr: Function "get" returns a pointer managed by "this->LoopHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:534:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->LoopHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:534:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 532| +# 533| LoopHintHandler = std::make_unique(); +# 534|-> PP.AddPragmaHandler("clang", LoopHintHandler.get()); +# 535| +# 536| UnrollHintHandler = std::make_unique("unroll"); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:536:3: assign: Assigning: "" = "std::make_unique("unroll")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:536:3: assign_smart_ptr: Function "operator =" assigns "this->UnrollHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:537:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:537:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:537:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 535| +# 536| UnrollHintHandler = std::make_unique("unroll"); +# 537|-> PP.AddPragmaHandler(UnrollHintHandler.get()); +# 538| PP.AddPragmaHandler("GCC", UnrollHintHandler.get()); +# 539| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:538:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:538:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:538:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 536| UnrollHintHandler = std::make_unique("unroll"); +# 537| PP.AddPragmaHandler(UnrollHintHandler.get()); +# 538|-> PP.AddPragmaHandler("GCC", UnrollHintHandler.get()); +# 539| +# 540| NoUnrollHintHandler = std::make_unique("nounroll"); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:540:3: assign: Assigning: "" = "std::make_unique("nounroll")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:540:3: assign_smart_ptr: Function "operator =" assigns "this->NoUnrollHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:541:3: get_raw_ptr: Function "get" returns a pointer managed by "this->NoUnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:541:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->NoUnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:541:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 539| +# 540| NoUnrollHintHandler = std::make_unique("nounroll"); +# 541|-> PP.AddPragmaHandler(NoUnrollHintHandler.get()); +# 542| PP.AddPragmaHandler("GCC", NoUnrollHintHandler.get()); +# 543| + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:542:3: get_raw_ptr: Function "get" returns a pointer managed by "this->NoUnrollHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:542:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->NoUnrollHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:542:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 540| NoUnrollHintHandler = std::make_unique("nounroll"); +# 541| PP.AddPragmaHandler(NoUnrollHintHandler.get()); +# 542|-> PP.AddPragmaHandler("GCC", NoUnrollHintHandler.get()); +# 543| +# 544| UnrollAndJamHintHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:544:3: assign: Assigning: "" = "std::make_unique("unroll_and_jam")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:544:3: assign_smart_ptr: Function "operator =" assigns "this->UnrollAndJamHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:546:3: get_raw_ptr: Function "get" returns a pointer managed by "this->UnrollAndJamHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:546:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->UnrollAndJamHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:546:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 544| UnrollAndJamHintHandler = +# 545| std::make_unique("unroll_and_jam"); +# 546|-> PP.AddPragmaHandler(UnrollAndJamHintHandler.get()); +# 547| +# 548| NoUnrollAndJamHintHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:548:3: assign: Assigning: "" = "std::make_unique("nounroll_and_jam")". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:548:3: assign_smart_ptr: Function "operator =" assigns "this->NoUnrollAndJamHintHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:550:3: get_raw_ptr: Function "get" returns a pointer managed by "this->NoUnrollAndJamHintHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:550:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->NoUnrollAndJamHintHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:550:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 548| NoUnrollAndJamHintHandler = +# 549| std::make_unique("nounroll_and_jam"); +# 550|-> PP.AddPragmaHandler(NoUnrollAndJamHintHandler.get()); +# 551| +# 552| FPHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:552:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:552:3: assign_smart_ptr: Function "operator =" assigns "this->FPHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:553:3: get_raw_ptr: Function "get" returns a pointer managed by "this->FPHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:553:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->FPHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:553:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 551| +# 552| FPHandler = std::make_unique(); +# 553|-> PP.AddPragmaHandler("clang", FPHandler.get()); +# 554| +# 555| AttributePragmaHandler = + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:555:3: assign: Assigning: "" = "std::make_unique(this->AttrFactory)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:555:3: assign_smart_ptr: Function "operator =" assigns "this->AttributePragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:557:3: get_raw_ptr: Function "get" returns a pointer managed by "this->AttributePragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:557:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->AttributePragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:557:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 555| AttributePragmaHandler = +# 556| std::make_unique(AttrFactory); +# 557|-> PP.AddPragmaHandler("clang", AttributePragmaHandler.get()); +# 558| +# 559| MaxTokensHerePragmaHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:559:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:559:3: assign_smart_ptr: Function "operator =" assigns "this->MaxTokensHerePragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:560:3: get_raw_ptr: Function "get" returns a pointer managed by "this->MaxTokensHerePragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:560:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MaxTokensHerePragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:560:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 558| +# 559| MaxTokensHerePragmaHandler = std::make_unique(); +# 560|-> PP.AddPragmaHandler("clang", MaxTokensHerePragmaHandler.get()); +# 561| +# 562| MaxTokensTotalPragmaHandler = std::make_unique(); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:562:3: assign: Assigning: "" = "std::make_unique()". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:562:3: assign_smart_ptr: Function "operator =" assigns "this->MaxTokensTotalPragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:563:3: get_raw_ptr: Function "get" returns a pointer managed by "this->MaxTokensTotalPragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:563:3: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->MaxTokensTotalPragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:563:3: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 561| +# 562| MaxTokensTotalPragmaHandler = std::make_unique(); +# 563|-> PP.AddPragmaHandler("clang", MaxTokensTotalPragmaHandler.get()); +# 564| +# 565| if (getTargetInfo().getTriple().isRISCV()) { + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:566:5: assign: Assigning: "" = "std::make_unique(this->Actions)". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:566:5: assign_smart_ptr: Function "operator =" assigns "this->RISCVPragmaHandler" with "". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:567:5: get_raw_ptr: Function "get" returns a pointer managed by "this->RISCVPragmaHandler". +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:567:5: multiple_init_smart_ptr: Function "AddPragmaHandler" sets a smart pointer with "this->RISCVPragmaHandler.get()", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/clang/lib/Parse/ParsePragma.cpp:567:5: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 565| if (getTargetInfo().getTriple().isRISCV()) { +# 566| RISCVPragmaHandler = std::make_unique(Actions); +# 567|-> PP.AddPragmaHandler("clang", RISCVPragmaHandler.get()); +# 568| } +# 569| } + +Error: VIRTUAL_DTOR (CWE-772): +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:55:9: no_virtual_dtor: Class "::DeltaTreeNode" does not have a virtual destructor. +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:128:5: dtor_in_derived: Class "::DeltaTreeInteriorNode" has a destructor and a pointer to it is upcast to class "::DeltaTreeNode" which doesn't have a virtual destructor. +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:314:5: upcast: Example 1: Casting from a pointer to "::DeltaTreeInteriorNode" to a pointer to "::DeltaTreeNode" in "New". +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:163:5: delete: Example 1: Deletion of type "::DeltaTreeNode". +llvm-project-19.0.0.src/clang/lib/Rewrite/DeltaTree.cpp:311:5: alloc: Example 1: Allocated an object of type "::DeltaTreeInteriorNode". +# 53| /// DeltaTreeNode - The common part of all nodes. +# 54| /// +# 55|-> class DeltaTreeNode { +# 56| public: +# 57| struct InsertResult { + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/clang/lib/Rewrite/Rewriter.cpp:299:3: tainted_data_return: Called function "this->getRangeSize(clang::SourceRange(Loc, Loc), rangeOpts)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/clang/lib/Rewrite/Rewriter.cpp:299:3: overflow: The expression "StartOffs += this->getRangeSize(clang::SourceRange(Loc, Loc), rangeOpts)" might be negative, but is used in a context that treats it as unsigned. +llvm-project-19.0.0.src/clang/lib/Rewrite/Rewriter.cpp:300:3: overflow_sink: "StartOffs", which might be negative, is passed to "this->getEditBuffer(FID)->InsertText(StartOffs, Str, true)". +# 298| rangeOpts.IncludeInsertsAtBeginOfRange = false; +# 299| StartOffs += getRangeSize(SourceRange(Loc, Loc), rangeOpts); +# 300|-> getEditBuffer(FID).InsertText(StartOffs, Str, /*InsertAfter*/true); +# 301| return false; +# 302| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/AnalysisBasedWarnings.cpp:1827:5: var_decl: Declaring variable "ONS". +llvm-project-19.0.0.src/clang/lib/Sema/AnalysisBasedWarnings.cpp:1836:5: uninit_use: Using uninitialized value "ONS". Field "ONS.InlineElts" is uninitialized. +# 1834| ONS.push_back(std::move(FNote)); +# 1835| } +# 1836|-> return ONS; +# 1837| } +# 1838| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/DeclSpec.cpp:191:3: var_decl: Declaring variable "I". +llvm-project-19.0.0.src/clang/lib/Sema/DeclSpec.cpp:291:3: uninit_use: Using uninitialized value "I". Field "I.AttrList.AttrList.InlineElts" is uninitialized. +# 289| } +# 290| +# 291|-> return I; +# 292| } +# 293| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCXXScopeSpec.cpp:1020:3: new_object: Calling single-object form of 'new': "new (Mem) ::NestedNameSpecifierAnnotation". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCXXScopeSpec.cpp:1020:3: assign: Assigning: "Annotation" = "new (Mem) ::NestedNameSpecifierAnnotation". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCXXScopeSpec.cpp:1023:3: ptr_arith: Using "Annotation" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1021| = new (Mem) NestedNameSpecifierAnnotation; +# 1022| Annotation->NNS = SS.getScopeRep(); +# 1023|-> memcpy(Annotation + 1, SS.location_data(), SS.location_size()); +# 1024| return Annotation; +# 1025| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:321:3: var_decl: Declaring variable "AlignResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:353:5: uninit_use_in_call: Using uninitialized value "AlignResult.Val.Data" when calling "~EvalResult". +# 351| SourceLocation(), Source); +# 352| if (SrcArg.isInvalid()) +# 353|-> return true; +# 354| TheCall->setArg(0, SrcArg.get()); +# 355| ExprResult AlignArg = + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:11766:5: address_of: Taking address with "&CodePoint" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:11766:5: callee_ptr_arith: Passing "&CodePoint" to function "convertUTF8Sequence" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +#11764| const llvm::UTF8 *E = +#11765| reinterpret_cast(csStart + csLen); +#11766|-> llvm::ConversionResult Result = +#11767| llvm::convertUTF8Sequence(B, E, &CodePoint, llvm::strictConversion); +#11768| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16122:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16137:3: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#16135| S.Diag(ExprLoc, diag::warn_left_shift_in_bool_context) << E; +#16136| } +#16137|-> } +#16138| +#16139| if (const auto *CO = dyn_cast(E)) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16392:7: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16412:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#16410| } +#16411| } +#16412|-> } +#16413| } else if (Target->isUnsaturatedFixedPointType()) { +#16414| if (Source->isIntegerType()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16415:7: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaChecking.cpp:16433:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#16431| } +#16432| } +#16433|-> } +#16434| } +#16435| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1124:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1131:5: uninit_use_in_call: Using uninitialized value "Result" when calling "CodeCompletionResult". +# 1129| std::move(R.FixIts)); +# 1130| Result.ShadowDecl = Using; +# 1131|-> MaybeAddResult(Result, CurContext); +# 1132| return; +# 1133| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1361:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1368:5: uninit_use_in_call: Using uninitialized value "Result" when calling "CodeCompletionResult". +# 1366| std::move(R.FixIts)); +# 1367| Result.ShadowDecl = Using; +# 1368|-> AddResult(Result, CurContext, Hiding, /*InBaseClass=*/false, +# 1369| /*BaseExprType=*/BaseExprType); +# 1370| return; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1744:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:1746:5: uninit_use_in_call: Using uninitialized value "Result" when calling "CodeCompletionResult". +# 1744| ResultBuilder::Result Result(ND, Results.getBasePriority(ND), nullptr, +# 1745| false, IsAccessible(ND, Ctx), FixIts); +# 1746|-> Results.AddResult(Result, InitialLookupCtx, Hiding, InBaseClass, BaseType); +# 1747| } +# 1748| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5564:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5566:7: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 5564| SmallVector Result; +# 5565| if (DC == nullptr) +# 5566|-> return Result; +# 5567| // Primary templates can have constraints. +# 5568| if (const auto *TD = cast(DC)->getDescribedTemplate()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5564:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaCodeComplete.cpp:5576:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 5574| if (const auto *VTPSD = dyn_cast(DC)) +# 5575| VTPSD->getAssociatedConstraints(Result); +# 5576|-> return Result; +# 5577| } +# 5578| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1407:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1419:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 1417| Res.emplace_back(Combined); +# 1418| } +# 1419|-> return Res; +# 1420| } +# 1421| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1436:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/clang/lib/Sema/SemaConcept.cpp:1449:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 1447| } +# 1448| } +# 1449|-> return Res; +# 1450| } +# 1451| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDecl.cpp:6636:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDecl.cpp:6639:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 6637| if (!VLATy->getSizeExpr() || +# 6638| !VLATy->getSizeExpr()->EvaluateAsInt(Result, Context)) +# 6639|-> return QualType(); +# 6640| +# 6641| llvm::APSInt Res = Result.Val.getInt(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclAttr.cpp:10179:7: var_decl: Declaring variable "EmptyWeakInfos". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclAttr.cpp:10180:7: uninit_use_in_call: Using uninitialized value "EmptyWeakInfos.set_.TheMap.NumEntries" when calling "swap". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclAttr.cpp:10180:7: uninit_use_in_call: Using uninitialized value "EmptyWeakInfos.set_.TheMap.NumTombstones" when calling "swap". +#10178| DeclApplyPragmaWeak(S, ND, W); +#10179| std::remove_reference_t EmptyWeakInfos; +#10180|-> WeakInfos.swap(EmptyWeakInfos); +#10181| } +#10182| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9234:3: var_decl: Declaring variable "ExceptSpec". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9237:5: uninit_use: Using uninitialized value "ExceptSpec". Field "ExceptSpec.Exceptions.InlineElts" is uninitialized. +# 9235| +# 9236| if (FD->isInvalidDecl()) +# 9237|-> return ExceptSpec; +# 9238| +# 9239| // The common case is that we just defined the comparison function. In that + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9234:3: var_decl: Declaring variable "ExceptSpec". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:9270:3: uninit_use: Using uninitialized value "ExceptSpec". Field "ExceptSpec.Exceptions.InlineElts" is uninitialized. +# 9268| } +# 9269| +# 9270|-> return ExceptSpec; +# 9271| } +# 9272| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:17494:3: var_decl: Declaring variable "Status". +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:17505:5: uninit_use_in_call: Using uninitialized value "Status.Val.Data" when calling "~EvalResult". +#17503| for (const auto &Note : Notes) +#17504| Diag(Note.first, Note.second); +#17505|-> return !ErrorOnInvalidMessage; +#17506| } +#17507| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:3859:3: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:3861:3: uninit_use_in_call: Using uninitialized value "Val.U" when calling "GetFloatValue". +# 3859| APFloat Val(Format); +# 3860| +# 3861|-> APFloat::opStatus result = Literal.GetFloatValue(Val); +# 3862| +# 3863| // Overflow is always an error, but underflow is only an error if + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:8081:5: address_of: Taking address with "&subExpr" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:8081:5: assign: Assigning: "exprs" = "&subExpr". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:8134:5: ptr_arith: Using "exprs" as an array. This might corrupt or misinterpret adjacent memory locations. +# 8132| } +# 8133| +# 8134|-> initExprs.append(exprs, exprs + numExprs); +# 8135| } +# 8136| // FIXME: This means that pretty-printing the final AST will produce curly + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:10957:3: var_decl: Declaring variable "RHSValue". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:10964:1: uninit_use_in_call: Using uninitialized value "RHSValue.Val.Data" when calling "~EvalResult". +#10962| S.PDiag(diag::warn_remainder_division_by_zero) +#10963| << IsDiv << RHS.get()->getSourceRange()); +#10964|-> } +#10965| +#10966| QualType Sema::CheckMultiplyDivideOperands(ExprResult &LHS, ExprResult &RHS, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:11593:3: var_decl: Declaring variable "RHSResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:11596:5: uninit_use_in_call: Using uninitialized value "RHSResult.Val.Data" when calling "~EvalResult". +#11594| if (RHS.get()->isValueDependent() || +#11595| !RHS.get()->EvaluateAsInt(RHSResult, S.Context)) +#11596|-> return; +#11597| llvm::APSInt Right = RHSResult.Val.getInt(); +#11598| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:1854:3: var_decl: Declaring variable "Best". +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:1882:3: uninit_use: Using uninitialized value "Best". Field "Best.Destroying" is uninitialized. +# 1880| } +# 1881| +# 1882|-> return Best; +# 1883| } +# 1884| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:2084:3: address_of: Taking address with "&Initializer" yields a singleton pointer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:2084:3: identity_transfer: Passing "&Initializer" as argument 1 to constructor for class "MutableArrayRef", which sets "Exprs->Data" to that argument. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExprCXX.cpp:2136:7: callee_ptr_arith: Passing "Exprs->Data" via argument "Exprs" to function "operator []" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2134| bool Braced = (InitStyle == CXXNewInitializationStyle::Braces); +# 2135| if (Braced) { +# 2136|-> auto *ILE = cast(Exprs[0]); +# 2137| Inits = MultiExprArg(ILE->getInits(), ILE->getNumInits()); +# 2138| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3774:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3783:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3781| } +# 3782| S.Type = BaseType; +# 3783|-> Steps.push_back(S); +# 3784| } +# 3785| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3788:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3791:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3789| S.Kind = BindingTemporary? SK_BindReferenceToTemporary : SK_BindReference; +# 3790| S.Type = T; +# 3791|-> Steps.push_back(S); +# 3792| } +# 3793| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3795:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3798:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3796| S.Kind = SK_FinalCopy; +# 3797| S.Type = T; +# 3798|-> Steps.push_back(S); +# 3799| } +# 3800| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3802:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3805:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3803| S.Kind = SK_ExtraneousCopyToTemporary; +# 3804| S.Type = T; +# 3805|-> Steps.push_back(S); +# 3806| } +# 3807| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3824:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3838:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3836| } +# 3837| S.Type = Ty; +# 3838|-> Steps.push_back(S); +# 3839| } +# 3840| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3842:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3845:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3843| S.Kind = SK_FunctionReferenceConversion; +# 3844| S.Type = Ty; +# 3845|-> Steps.push_back(S); +# 3846| } +# 3847| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3849:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3852:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3850| S.Kind = SK_AtomicConversion; +# 3851| S.Type = Ty; +# 3852|-> Steps.push_back(S); +# 3853| } +# 3854| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3867:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3870:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3868| S.Kind = SK_ListInitialization; +# 3869| S.Type = T; +# 3870|-> Steps.push_back(S); +# 3871| } +# 3872| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3888:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3891:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3889| S.Kind = SK_ZeroInitialization; +# 3890| S.Type = T; +# 3891|-> Steps.push_back(S); +# 3892| } +# 3893| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3895:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3898:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3896| S.Kind = SK_CAssignment; +# 3897| S.Type = T; +# 3898|-> Steps.push_back(S); +# 3899| } +# 3900| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3902:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3905:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3903| S.Kind = SK_StringInit; +# 3904| S.Type = T; +# 3905|-> Steps.push_back(S); +# 3906| } +# 3907| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3909:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3912:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3910| S.Kind = SK_ObjCObjectConversion; +# 3911| S.Type = T; +# 3912|-> Steps.push_back(S); +# 3913| } +# 3914| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3916:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3919:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3917| S.Kind = IsGNUExtension ? SK_GNUArrayInit : SK_ArrayInit; +# 3918| S.Type = T; +# 3919|-> Steps.push_back(S); +# 3920| } +# 3921| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3923:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3926:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "insert". +# 3924| S.Kind = SK_ArrayLoopIndex; +# 3925| S.Type = EltT; +# 3926|-> Steps.insert(Steps.begin(), S); +# 3927| +# 3928| S.Kind = SK_ArrayLoopInit; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3934:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3937:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3935| S.Kind = SK_ParenthesizedArrayInit; +# 3936| S.Type = T; +# 3937|-> Steps.push_back(S); +# 3938| } +# 3939| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3942:3: var_decl: Declaring variable "s". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3946:3: uninit_use_in_call: Using uninitialized value "s". Field "s" is uninitialized when calling "push_back". +# 3944| : SK_PassByIndirectRestore); +# 3945| s.Type = type; +# 3946|-> Steps.push_back(s); +# 3947| } +# 3948| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3950:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3953:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3951| S.Kind = SK_ProduceObjCObject; +# 3952| S.Type = T; +# 3953|-> Steps.push_back(S); +# 3954| } +# 3955| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3957:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3960:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3958| S.Kind = SK_StdInitializerList; +# 3959| S.Type = T; +# 3960|-> Steps.push_back(S); +# 3961| } +# 3962| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3964:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3967:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3965| S.Kind = SK_OCLSamplerInit; +# 3966| S.Type = T; +# 3967|-> Steps.push_back(S); +# 3968| } +# 3969| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3971:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3974:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3972| S.Kind = SK_OCLZeroOpaqueType; +# 3973| S.Type = T; +# 3974|-> Steps.push_back(S); +# 3975| } +# 3976| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3978:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3981:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "push_back". +# 3979| S.Kind = SK_ParenthesizedListInit; +# 3980| S.Type = T; +# 3981|-> Steps.push_back(S); +# 3982| } +# 3983| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3988:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:3991:3: uninit_use_in_call: Using uninitialized value "S". Field "S" is uninitialized when calling "insert". +# 3989| S.Kind = SK_UnwrapInitList; +# 3990| S.Type = Syntactic->getInit(0)->getType(); +# 3991|-> Steps.insert(Steps.begin(), S); +# 3992| +# 3993| S.Kind = SK_RewrapInitList; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:9266:9: var_decl: Declaring variable "ER". +llvm-project-19.0.0.src/clang/lib/Sema/SemaInit.cpp:9272:7: uninit_use_in_call: Using uninitialized value "ER.Val.Data" when calling "~EvalResult". +# 9270| S.Diag(Kind.getLocation(), diag::err_c23_constexpr_pointer_not_null); +# 9271| } +# 9272|-> } +# 9273| +# 9274| bool Complained; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:664:3: alloc_fn: Calling "operator new" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:664:3: assign: Assigning: "this->Paths" = "new clang::CXXBasePaths(true, true, true)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:665:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumEntries" when calling "swap". +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:665:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumTombstones" when calling "swap". +# 663| void LookupResult::setAmbiguousBaseSubobjects(CXXBasePaths &P) { +# 664| Paths = new CXXBasePaths; +# 665|-> Paths->swap(P); +# 666| addDeclsFromBasePaths(*Paths); +# 667| resolveKind(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:672:3: alloc_fn: Calling "operator new" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:672:3: assign: Assigning: "this->Paths" = "new clang::CXXBasePaths(true, true, true)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:673:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumEntries" when calling "swap". +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:673:3: uninit_use_in_call: Using uninitialized value "this->Paths->ClassSubobjects.NumTombstones" when calling "swap". +# 671| void LookupResult::setAmbiguousBaseSubobjectTypes(CXXBasePaths &P) { +# 672| Paths = new CXXBasePaths; +# 673|-> Paths->swap(P); +# 674| addDeclsFromBasePaths(*Paths); +# 675| resolveKind(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:4958:3: var_decl: Declaring variable "Chain". +llvm-project-19.0.0.src/clang/lib/Sema/SemaLookup.cpp:4966:3: uninit_use: Using uninitialized value "Chain". Field "Chain.InlineElts" is uninitialized. +# 4964| Chain.push_back(DC->getPrimaryContext()); +# 4965| } +# 4966|-> return Chain; +# 4967| } +# 4968| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6382:5: var_decl: Declaring variable "DSAChecker". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6427:9: uninit_use_in_call: Using uninitialized element of array "DSAChecker.ImplicitMap". Field "DSAChecker.ImplicitMap[0][0].InlineElts" is uninitialized when calling "getImplicitMap". +# 6425| auto Kind = static_cast(VC); +# 6426| for (unsigned I = 0; I < OMPC_MAP_delete; ++I) { +# 6427|-> ArrayRef ImplicitMap = DSAChecker.getImplicitMap( +# 6428| Kind, static_cast(I)); +# 6429| ImplicitMaps[VC][I].append(ImplicitMap.begin(), ImplicitMap.end()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6382:5: var_decl: Declaring variable "DSAChecker". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:6431:7: uninit_use_in_call: Using uninitialized element of array "DSAChecker.ImplicitMapModifier". Field "DSAChecker.ImplicitMapModifier[0].InlineElts" is uninitialized when calling "getImplicitMapModifier". +# 6429| ImplicitMaps[VC][I].append(ImplicitMap.begin(), ImplicitMap.end()); +# 6430| } +# 6431|-> ArrayRef ImplicitModifier = +# 6432| DSAChecker.getImplicitMapModifier(Kind); +# 6433| ImplicitMapModifiers[VC].append(ImplicitModifier.begin(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9865:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9871:7: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +# 9869| } else { +# 9870| Built.clear(/*Size=*/1); +# 9871|-> return 1; +# 9872| } +# 9873| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9877:5: var_decl: Declaring variable "EVResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:9893:7: uninit_use_in_call: Using uninitialized value "EVResult.Val.Data" when calling "~EvalResult". +# 9891| } else { +# 9892| Built.clear(/*Size=*/1); +# 9893|-> return 1; +# 9894| } +# 9895| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21305:13: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21314:11: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#21312| continue; +#21313| } +#21314|-> } +#21315| +#21316| // OpenMP 5.0, 2.17.11 depend Clause, Restrictions, C/C++ + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21708:7: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21719:5: uninit_use_in_call: Using uninitialized value "Result.Val.Data" when calling "~EvalResult". +#21717| assert(!RelevantExpr && "RelevantExpr is expected to be nullptr"); +#21718| RelevantExpr = TE; +#21719|-> } +#21720| +#21721| // Record the component - we don't have any declaration associated. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21787:7: var_decl: Declaring variable "ResultL". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21807:5: uninit_use_in_call: Using uninitialized value "ResultL.Val.Data" when calling "~EvalResult". +#21805| assert(!RelevantExpr && "RelevantExpr is expected to be nullptr"); +#21806| RelevantExpr = TE; +#21807|-> } +#21808| +#21809| // Record the component - we don't have any declaration associated. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21786:7: var_decl: Declaring variable "ResultR". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:21807:5: uninit_use_in_call: Using uninitialized value "ResultR.Val.Data" when calling "~EvalResult". +#21805| assert(!RelevantExpr && "RelevantExpr is expected to be nullptr"); +#21806| RelevantExpr = TE; +#21807|-> } +#21808| +#21809| // Record the component - we don't have any declaration associated. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:24873:7: var_decl: Declaring variable "EvResult". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOpenMP.cpp:24887:5: uninit_use_in_call: Using uninitialized value "EvResult.Val.Data" when calling "~EvalResult". +#24885| } +#24886| } +#24887|-> } +#24888| NewDims.push_back(Dim); +#24889| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:387:9: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:388:9: uninit_use_in_call: Using uninitialized value "Result.U" when calling "convertFromAPInt". +# 386| // Convert the integer to the floating type. +# 387| llvm::APFloat Result(Ctx.getFloatTypeSemantics(ToType)); +# 388|-> Result.convertFromAPInt(*IntConstantValue, IntConstantValue->isSigned(), +# 389| llvm::APFloat::rmNearestTiesToEven); +# 390| // And back. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:422:7: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:461:5: uninit_use_in_call: Using uninitialized value "R.Val.Data" when calling "~EvalResult". +# 459| return NK_Variable_Narrowing; +# 460| } +# 461|-> } +# 462| return NK_Not_Narrowing; +# 463| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:686:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:762:3: uninit_use: Using uninitialized value "Result". Field "Result.Diagnostic" is uninitialized. +# 760| } +# 761| +# 762|-> return Result; +# 763| } +# 764| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:12614:3: var_decl: Declaring variable "Cands". +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:12648:3: uninit_use: Using uninitialized value "Cands". Field "Cands.InlineElts" is uninitialized. +#12646| Cands, CompareOverloadCandidatesForDisplay(S, OpLoc, Args.size(), Kind)); +#12647| +#12648|-> return Cands; +#12649| } +#12650| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:13364:3: var_decl: Declaring variable "DAP" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaOverload.cpp:13439:5: uninit_use: Using uninitialized value "DAP". +#13437| return nullptr; +#13438| } +#13439|-> Pair = DAP; +#13440| } +#13441| return Result; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:2344:9: alias: Assigning: "DeducedInit" = "&OpaqueId". "DeducedInit" now points to byte 0 of "OpaqueId" (which consists of 24 bytes). +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:2351:11: overrun-buffer-val: Overrunning struct type _ZN5clang15OpaqueValueExprE of 24 bytes by passing it to a function which accesses it at byte offset 47. +# 2349| if (Result != TemplateDeductionResult::Success && +# 2350| Result != TemplateDeductionResult::AlreadyDiagnosed) +# 2351|-> DiagnoseAutoDeductionFailure(D, DeducedInit); +# 2352| if (FirstType.isNull()) { +# 2353| D->setInvalidDecl(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:3906:5: alias: Assigning: "RetExpr" = "&VoidVal". "RetExpr" now points to byte 0 of "VoidVal" (which consists of 24 bytes). +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmt.cpp:3922:5: overrun-buffer-val: Overrunning struct type _ZN5clang22CXXScalarValueInitExprE of 24 bytes by passing it to a function which accesses it at byte offset 31. +# 3920| } +# 3921| TemplateSpecCandidateSet FailedTSC(TemplateSpecLoc); +# 3922|-> TemplateDeductionResult Res = DeduceAutoType( +# 3923| OrigResultType, RetExpr, Deduced, Info, /*DependentDeduction=*/false, +# 3924| /*IgnoreConstraints=*/false, &FailedTSC); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmtAsm.cpp:753:3: var_decl: Declaring variable "Eval". +llvm-project-19.0.0.src/clang/lib/Sema/SemaStmtAsm.cpp:755:5: uninit_use_in_call: Using uninitialized value "Eval.Val.Data" when calling "~EvalResult". +# 753| Expr::EvalResult Eval; +# 754| if (T->isFunctionType() || T->isDependentType()) +# 755|-> return Info.setLabel(Res); +# 756| if (Res->isPRValue()) { +# 757| bool IsEnum = isa(T); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplate.cpp:2726:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplate.cpp:2731:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 2729| Results.push_back(Index); +# 2730| } +# 2731|-> return Results; +# 2732| } +# 2733| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:3286:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:3292:3: uninit_use: Using uninitialized value "Result". +# 3290| TemplateArgs, Deduced, Info); +# 3291| }); +# 3292|-> return Result; +# 3293| } +# 3294| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4360:5: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4366:5: uninit_use: Using uninitialized value "Result". +# 4364| Info); +# 4365| }); +# 4366|-> if (Result != TemplateDeductionResult::Success) +# 4367| return Result; +# 4368| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4526:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4535:3: uninit_use: Using uninitialized value "Result". +# 4533| }); +# 4534| }); +# 4535|-> return Result; +# 4536| } +# 4537| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4621:5: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4627:5: uninit_use: Using uninitialized value "Result". +# 4625| &FunctionType, Info); +# 4626| }); +# 4627|-> if (Result != TemplateDeductionResult::Success) +# 4628| return Result; +# 4629| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4667:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4673:3: uninit_use: Using uninitialized value "Result". +# 4671| Specialization, Info); +# 4672| }); +# 4673|-> if (Result != TemplateDeductionResult::Success) +# 4674| return Result; +# 4675| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4848:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:4855:3: uninit_use: Using uninitialized value "Result". +# 4853| }); +# 4854| Specialization = cast_or_null(ConversionSpecialized); +# 4855|-> return Result; +# 4856| } +# 4857| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:5939:3: var_decl: Declaring variable "AtLeastAsSpecialized" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateDeduction.cpp:5946:3: uninit_use: Using uninitialized value "AtLeastAsSpecialized". +# 5944| Deduced, Info) == TemplateDeductionResult::Success; +# 5945| }); +# 5946|-> return AtLeastAsSpecialized; +# 5947| } +# 5948| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiate.cpp:501:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiate.cpp:561:7: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgumentLists.InlineElts" is uninitialized. +# 559| +# 560| if (R.IsDone) +# 561|-> return Result; +# 562| if (R.ClearRelativeToPrimary) +# 563| RelativeToPrimary = false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4108:3: var_decl: Declaring variable "SubstD" without initializer. +llvm-project-19.0.0.src/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4112:3: uninit_use: Using uninitialized value "SubstD". +# 4110| SubstD = Instantiator.Visit(D); +# 4111| }); +# 4112|-> return SubstD; +# 4113| } +# 4114| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11116:5: var_decl: Declaring variable "InstantiatedVarList". +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11129:5: uninit_use: Using uninitialized value "InstantiatedVarList". Field "InstantiatedVarList.InlineElts" is uninitialized. +#11127| } +#11128| +#11129|-> return InstantiatedVarList; +#11130| } +#11131| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11452:3: var_decl: Declaring variable "TransformedClauses". +llvm-project-19.0.0.src/clang/lib/Sema/TreeTransform.h:11458:3: uninit_use: Using uninitialized value "TransformedClauses". Field "TransformedClauses.InlineElts" is uninitialized. +#11456| TransformedClauses.push_back(TransformedClause); +#11457| } +#11458|-> return TransformedClauses; +#11459| } +#11460| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:940:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:971:3: uninit_use: Using uninitialized value "Result". Field "Result.Instance.InlineElts" is uninitialized. +# 969| } +# 970| +# 971|-> return Result; +# 972| } +# 973| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:11763:3: var_decl: Declaring variable "VarList". +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReader.cpp:11766:3: uninit_use: Using uninitialized value "VarList". Field "VarList.InlineElts" is uninitialized. +#11764| for (unsigned I = 0; I < NumVars; ++I) +#11765| VarList.push_back(readSubExpr()); +#11766|-> return VarList; +#11767| } +#11768| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReaderStmt.cpp:790:3: var_decl: Declaring variable "Satisfaction". +llvm-project-19.0.0.src/clang/lib/Serialization/ASTReaderStmt.cpp:808:3: uninit_use: Using uninitialized value "Satisfaction". Field "Satisfaction.TemplateArgs.InlineElts" is uninitialized. +# 806| } +# 807| } +# 808|-> return Satisfaction; +# 809| } +# 810| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Serialization/GlobalModuleIndex.cpp:111:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/Serialization/GlobalModuleIndex.cpp:118:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 116| } +# 117| +# 118|-> return Result; +# 119| } +# 120| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp:51:3: var_decl: Declaring variable "Message". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp:64:3: uninit_use: Using uninitialized value "Message". Field "Message.InlineElts" is uninitialized. +# 62| } +# 63| +# 64|-> return Message; +# 65| } +# 66| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp:493:3: var_decl: Declaring variable "NameParts". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp:501:3: uninit_use: Using uninitialized value "NameParts". Field "NameParts.InlineElts" is uninitialized. +# 499| } +# 500| NameParts.emplace_back(C.Name); +# 501|-> return NameParts; +# 502| } +# 503| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:258:3: assignment: Assigning: "idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, true)". The value of "idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:260:5: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 99999 (byte offset 2399999) using index "idx" (which evaluates to 99999). +# 258| idx = getTrackedFunctionIndex(funName, true); +# 259| if (idx != InvalidIdx) { +# 260|-> unsigned paramIdx = FunctionsToTrack[idx].Param; +# 261| if (CE->getNumArgs() <= paramIdx) +# 262| return; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:290:3: assignment: Assigning: "idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, false)". The value of "idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:294:3: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 99999 (byte offset 2399999) using index "idx" (which evaluates to 99999). +# 292| return; +# 293| +# 294|-> unsigned paramIdx = FunctionsToTrack[idx].Param; +# 295| if (CE->getNumArgs() <= paramIdx) +# 296| return; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:404:3: assignment: Assigning: "idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, true)". The value of "idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:408:3: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 99999 (byte offset 2399999) using index "idx" (which evaluates to 99999). +# 406| return; +# 407| +# 408|-> const Expr *ArgExpr = CE->getArg(FunctionsToTrack[idx].Param); +# 409| // If the argument entered as an enclosing function parameter, skip it to +# 410| // avoid false positives. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:632:3: assignment: Assigning: "Idx" = "::MacOSKeychainAPIChecker::getTrackedFunctionIndex(funName, true)". The value of "Idx" is now between 2 and 100000 (inclusive). +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp:634:3: overrun-local: Overrunning array "::MacOSKeychainAPIChecker::FunctionsToTrack" of 8 24-byte elements at element index 100000 (byte offset 2400023) using index "Idx" (which evaluates to 100000). +# 632| unsigned Idx = getTrackedFunctionIndex(funName, true); +# 633| assert(Idx != InvalidIdx && "This should be a call to an allocator."); +# 634|-> const Expr *ArgExpr = CE->getArg(FunctionsToTrack[Idx].Param); +# 635| PathDiagnosticLocation Pos(ArgExpr, BRC.getSourceManager(), +# 636| N->getLocationContext()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:140:3: var_decl: Declaring variable "Regions". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp:147:3: uninit_use: Using uninitialized value "Regions". Field "Regions.InlineElts" is uninitialized. +# 145| Regions.push_back(Region); +# 146| } +# 147|-> return Regions; +# 148| } +# 149| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:103:20: constructor_uses_global_object: The constructor of global object "::ValistChecker::VAListAccepters" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::ValistChecker::VAListAccepters" might be created before "Allocator" is available. +# 101| +# 102| const SmallVector +# 103|-> ValistChecker::VAListAccepters = {{{CDM::CLibrary, {"vfprintf"}, 3}, 2}, +# 104| {{CDM::CLibrary, {"vfscanf"}, 3}, 2}, +# 105| {{CDM::CLibrary, {"vprintf"}, 2}, 1}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:103:20: constructor_uses_global_object: The constructor of global object "::ValistChecker::VAListAccepters" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::ValistChecker::VAListAccepters" might be created before "fuzzer::TPC" is available. +# 101| +# 102| const SmallVector +# 103|-> ValistChecker::VAListAccepters = {{{CDM::CLibrary, {"vfprintf"}, 3}, 2}, +# 104| {{CDM::CLibrary, {"vfscanf"}, 3}, 2}, +# 105| {{CDM::CLibrary, {"vprintf"}, 2}, 1}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:103:20: constructor_uses_global_object: The constructor of global object "::ValistChecker::VAListAccepters" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::ValistChecker::VAListAccepters" might be created before "scudo::RegionPageMap::Buffers" is available. +# 101| +# 102| const SmallVector +# 103|-> ValistChecker::VAListAccepters = {{{CDM::CLibrary, {"vfprintf"}, 3}, 2}, +# 104| {{CDM::CLibrary, {"vfscanf"}, 3}, 2}, +# 105| {{CDM::CLibrary, {"vprintf"}, 2}, 1}, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:829:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:846:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 844| ValueFactory.getValue(ToInt)); +# 845| } +# 846|-> return Result; +# 847| } +# 848| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:1614:3: var_decl: Declaring variable "Extents". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/RegionStore.cpp:1618:3: uninit_use: Using uninitialized value "Extents". Field "Extents.InlineElts" is uninitialized. +# 1616| Extents.push_back(CAT->getZExtSize()); +# 1617| } while ((CAT = dyn_cast(CAT->getElementType()))); +# 1618|-> return Extents; +# 1619| } +# 1620| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp:131:3: var_decl: Declaring variable "Flows". +llvm-project-19.0.0.src/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp:142:3: uninit_use: Using uninitialized value "Flows". Field "Flows.InlineElts" is uninitialized. +# 140| Flows.push_back(Flow); +# 141| } +# 142|-> return Flows; +# 143| } +# 144| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Support/RISCVVIntrinsicUtils.cpp:1181:3: var_decl: Declaring variable "PrototypeDescriptors". +llvm-project-19.0.0.src/clang/lib/Support/RISCVVIntrinsicUtils.cpp:1198:3: uninit_use: Using uninitialized value "PrototypeDescriptors". Field "PrototypeDescriptors.InlineElts" is uninitialized. +# 1196| Prototypes = Prototypes.drop_front(Idx + 1); +# 1197| } +# 1198|-> return PrototypeDescriptors; +# 1199| } +# 1200| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/AllTUsExecution.cpp:59:5: constructor_uses_global_object: The constructor of global object "clang::tooling::Filter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::Filter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| +# 58| llvm::cl::opt +# 59|-> Filter("filter", +# 60| llvm::cl::desc("Only process files that match this filter. " +# 61| "This flag only applies to all-TUs."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/AllTUsExecution.cpp:151:25: constructor_uses_global_object: The constructor of global object "clang::tooling::ExecutorConcurrency" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::ExecutorConcurrency" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 149| } +# 150| +# 151|-> llvm::cl::opt ExecutorConcurrency( +# 152| "execute-concurrency", +# 153| llvm::cl::desc("The number of threads used to process all files in " + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp:614:5: var_decl: Declaring variable "FakeInputPath". +llvm-project-19.0.0.src/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp:622:5: uninit_use_in_call: Using uninitialized value "FakeInputPath". Field "FakeInputPath.InlineElts" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 620| +# 621| ModifiedCommandLine = CommandLine; +# 622|-> ModifiedCommandLine->emplace_back(FakeInputPath); +# 623| } +# 624| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp:30:30: constructor_uses_global_object: The constructor of global object "IncludeDirectories[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IncludeDirectories[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace llvm; +# 29| +# 30|-> static cl::list IncludeDirectories( +# 31| "I", cl::desc("Include directories to use while compiling"), +# 32| cl::value_desc("directory"), cl::Required, cl::OneOrMore, cl::Prefix); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp:35:5: constructor_uses_global_object: The constructor of global object "SkipProcessing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SkipProcessing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> SkipProcessing("skip-processing", +# 36| cl::desc("Avoid processing the AST header file"), +# 37| cl::Required, cl::value_desc("bool")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp:39:29: constructor_uses_global_object: The constructor of global object "JsonOutputPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JsonOutputPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::Required, cl::value_desc("bool")); +# 38| +# 39|-> static cl::opt JsonOutputPath("json-output-path", +# 40| cl::desc("json output path"), +# 41| cl::Required, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/lib/Tooling/Execution.cpp:19:5: constructor_uses_global_object: The constructor of global object "clang::tooling::ExecutorName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "clang::tooling::ExecutorName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| +# 18| llvm::cl::opt +# 19|-> ExecutorName("executor", llvm::cl::desc("The name of the executor to use."), +# 20| llvm::cl::init("standalone")); +# 21| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp:22:3: var_decl: Declaring variable "LangOpts". +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp:33:3: uninit_use: Using uninitialized value "LangOpts". Field "LangOpts.GPUDefaultStream" is uninitialized. +# 31| LangOpts.DeclSpecKeyword = 1; // To get __declspec. +# 32| LangOpts.WChar = 1; // To get wchar_t +# 33|-> return LangOpts; +# 34| } +# 35| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:245:3: var_decl: Declaring variable "Results". +llvm-project-19.0.0.src/clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:248:3: uninit_use: Using uninitialized value "Results". Field "Results.InlineElts" is uninitialized. +# 246| for (auto HeaderID : getMappingPerLang(Language)->SymbolHeaderIDs[ID]) +# 247| Results.emplace_back(Header(HeaderID, Language)); +# 248|-> return Results; +# 249| } +# 250| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/lib/Tooling/Refactoring/Lookup.cpp:31:3: var_decl: Declaring variable "Namespaces". +llvm-project-19.0.0.src/clang/lib/Tooling/Refactoring/Lookup.cpp:42:3: uninit_use: Using uninitialized value "Namespaces". Field "Namespaces.InlineElts" is uninitialized. +# 40| Context = GetNextNamedNamespace(Context->getParent())) +# 41| Namespaces.push_back(cast(Context)); +# 42|-> return Namespaces; +# 43| } +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:19:22: constructor_uses_global_object: The constructor of global object "Help" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Help" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| using namespace llvm; +# 18| +# 19|-> static cl::opt Help("h", cl::desc("Alias for -help"), cl::Hidden); +# 20| +# 21| // Mark all our options with this category. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "Allocator" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "GlobalParser" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "fuzzer::TPC" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/amdgpu-arch/AMDGPUArch.cpp:22:27: constructor_uses_global_object: The constructor of global object "AMDGPUArchCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUArchCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 20| +# 21| // Mark all our options with this category. +# 22|-> static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); +# 23| +# 24| static void PrintVersion(raw_ostream &OS) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/apinotes-test/APINotesTest.cpp:17:36: constructor_uses_global_object: The constructor of global object "APINotes[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "APINotes[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 15| #include "llvm/Support/WithColor.h" +# 16| +# 17|-> static llvm::cl::list APINotes(llvm::cl::Positional, +# 18| llvm::cl::desc("[ ...]"), +# 19| llvm::cl::Required); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/apinotes-test/APINotesTest.cpp:22:5: constructor_uses_global_object: The constructor of global object "OutputFileName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputFileName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| +# 21| static llvm::cl::opt +# 22|-> OutputFileName("o", llvm::cl::desc("output filename"), +# 23| llvm::cl::value_desc("filename"), llvm::cl::init("-")); +# 24| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:27:1: constructor_uses_global_object: The constructor of global object "CheckOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CheckOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| +# 26| static llvm::cl::opt +# 27|-> CheckOnly("check-only", +# 28| llvm::cl::desc("Just check for issues that need to be handled manually")); +# 29| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:35:1: constructor_uses_global_object: The constructor of global object "OutputTransformations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputTransformations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static llvm::cl::opt +# 35|-> OutputTransformations("output-transformations", +# 36| llvm::cl::desc("Print the source transformations")); +# 37| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:39:1: constructor_uses_global_object: The constructor of global object "VerifyDiags" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyDiags" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static llvm::cl::opt +# 39|-> VerifyDiags("verify",llvm::cl::desc("Verify emitted diagnostics and warnings")); +# 40| +# 41| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:42:1: constructor_uses_global_object: The constructor of global object "VerboseOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerboseOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static llvm::cl::opt +# 42|-> VerboseOpt("v", llvm::cl::desc("Enable verbose output")); +# 43| +# 44| static llvm::cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:45:1: constructor_uses_global_object: The constructor of global object "VerifyTransformedFiles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyTransformedFiles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| static llvm::cl::opt +# 45|-> VerifyTransformedFiles("verify-transformed-files", +# 46| llvm::cl::desc("Read pairs of file mappings (typically the output of " +# 47| "c-arcmt-test) and compare their contents with the filenames " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:51:1: constructor_uses_global_object: The constructor of global object "RemappingsFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemappingsFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| +# 50| static llvm::cl::opt +# 51|-> RemappingsFile("remappings-file", +# 52| llvm::cl::desc("Pairs of file mappings (typically the output of " +# 53| "c-arcmt-test)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:56:1: constructor_uses_global_object: The constructor of global object "ResultFiles[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ResultFiles[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| static llvm::cl::list +# 56|-> ResultFiles(llvm::cl::Positional, llvm::cl::desc("...")); +# 57| +# 58| static llvm::cl::extrahelp extraHelp( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/arcmt-test/arcmt-test.cpp:58:28: constructor_uses_global_object: The constructor of global object "extraHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "extraHelp" might be created before "GlobalParser" is available. +# 56| ResultFiles(llvm::cl::Positional, llvm::cl::desc("...")); +# 57| +# 58|-> static llvm::cl::extrahelp extraHelp( +# 59| "\nusage with compiler args: arcmt-test [options] --args [compiler flags]\n"); +# 60| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: alloc_fn: Calling "malloc" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: assign: Assigning: "*unsaved_files" = "(struct CXUnsavedFile *)malloc(24UL * *num_unsaved_files)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:300:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Contents" when calling "free_remapped_files". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:300:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Filename" when calling "free_remapped_files". +# 298| fprintf(stderr, +# 299| "error: %sfrom:to argument is missing comma\n", opt_name); +# 300|-> free_remapped_files(*unsaved_files, i); +# 301| *unsaved_files = 0; +# 302| *num_unsaved_files = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: alloc_fn: Calling "malloc" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: assign: Assigning: "*unsaved_files" = "(struct CXUnsavedFile *)malloc(24UL * *num_unsaved_files)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:311:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Contents" when calling "free_remapped_files". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:311:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Filename" when calling "free_remapped_files". +# 309| fprintf(stderr, "error: cannot open file %s that we are remapping to\n", +# 310| sep + 1); +# 311|-> free_remapped_files(*unsaved_files, i); +# 312| *unsaved_files = 0; +# 313| *num_unsaved_files = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: alloc_fn: Calling "malloc" which returns uninitialized memory. [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:285:3: assign: Assigning: "*unsaved_files" = "(struct CXUnsavedFile *)malloc(24UL * *num_unsaved_files)", which points to uninitialized data. +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:329:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Contents" when calling "free_remapped_files". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:329:7: uninit_use_in_call: Using uninitialized value "(*unsaved_files)->Filename" when calling "free_remapped_files". +# 327| (feof(to_file) ? "EOF" : "error"), sep + 1); +# 328| fclose(to_file); +# 329|-> free_remapped_files(*unsaved_files, i); +# 330| free(contents); +# 331| *unsaved_files = 0; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2343:3: alloc_fn: Storage is returned from allocation function "clang_createIndex". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2343:3: var_assign: Assigning: "Idx" = storage returned from "clang_createIndex(1, 1)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2349:3: noescape: Resource "Idx" is not freed or pointed-to in "CreateTranslationUnit". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2350:5: leaked_storage: Variable "Idx" going out of scope leaks the storage it points to. +# 2348| +# 2349| if (!CreateTranslationUnit(Idx, ast_file, &TU)) +# 2350|-> return 1; +# 2351| +# 2352| if ((fp = fopen(source_file, "r")) == NULL) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2905:5: noescape: Resource "&Locations[Loc].filename" is not freed or pointed-to in "parse_file_line_column". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2908:7: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2906| &Locations[Loc].line, +# 2907| &Locations[Loc].column, 0, 0))) +# 2908|-> return errorCode; +# 2909| } +# 2910| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2913:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2911| if (parse_remapped_files(argc, argv, NumLocations + 1, &unsaved_files, +# 2912| &num_unsaved_files)) +# 2913|-> return -1; +# 2914| +# 2915| if (getenv("CINDEXTEST_EDITING")) + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2930:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2928| fprintf(stderr, "unable to parse input\n"); +# 2929| describeLibclangFailure(Err); +# 2930|-> return -1; +# 2931| } +# 2932| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2934:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2932| +# 2933| if (checkForErrors(TU) != 0) +# 2934|-> return -1; +# 2935| +# 2936| for (I = 0; I != Repeats; ++I) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2900:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:2943:9: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 2941| describeLibclangFailure(Err); +# 2942| clang_disposeTranslationUnit(TU); +# 2943|-> return 1; +# 2944| } +# 2945| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3199:5: noescape: Resource "&Locations[Loc].filename" is not freed or pointed-to in "parse_file_line_column". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3202:7: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3200| &Locations[Loc].line, +# 3201| &Locations[Loc].column, 0, 0))) +# 3202|-> return errorCode; +# 3203| } +# 3204| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3207:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3205| if (parse_remapped_files(argc, argv, NumLocations + 1, &unsaved_files, +# 3206| &num_unsaved_files)) +# 3207|-> return -1; +# 3208| +# 3209| if (getenv("CINDEXTEST_EDITING")) + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3225:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3223| describeLibclangFailure(Err); +# 3224| clang_disposeTranslationUnit(TU); +# 3225|-> return -1; +# 3226| } +# 3227| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3229:5: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3227| +# 3228| if (checkForErrors(TU) != 0) +# 3229|-> return -1; +# 3230| +# 3231| for (I = 0; I != Repeats; ++I) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3194:3: var_assign: Assigning: "Locations" = storage returned from "malloc(NumLocations * 16UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3238:9: leaked_storage: Variable "Locations" going out of scope leaks the storage it points to. +# 3236| describeLibclangFailure(Err); +# 3237| clang_disposeTranslationUnit(TU); +# 3238|-> return 1; +# 3239| } +# 3240| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3313:5: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3311| if (parse_remapped_files(argc, argv, NumFilenames + 1, &unsaved_files, +# 3312| &num_unsaved_files)) +# 3313|-> return -1; +# 3314| +# 3315| if (getenv("CINDEXTEST_EDITING")) + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3332:5: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3330| describeLibclangFailure(Err); +# 3331| clang_disposeTranslationUnit(TU); +# 3332|-> return -1; +# 3333| } +# 3334| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3336:5: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3334| +# 3335| if (checkForErrors(TU) != 0) +# 3336|-> return -1; +# 3337| +# 3338| for (I = 0; I != Repeats; ++I) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3303:3: var_assign: Assigning: "Filenames" = storage returned from "malloc(NumFilenames * 8UL)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:3345:9: leaked_storage: Variable "Filenames" going out of scope leaks the storage it points to. +# 3343| describeLibclangFailure(Err); +# 3344| clang_disposeTranslationUnit(TU); +# 3345|-> return 1; +# 3346| } +# 3347| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4409:9: alloc_fn: Storage is returned from allocation function "clang_CompilationDatabase_getCompileCommands". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4409:9: var_assign: Assigning: "CCmds" = storage returned from "clang_CompilationDatabase_getCompileCommands(db, argv[i + 1])". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4417:9: noescape: Resource "CCmds" is not freed or pointed-to in "clang_CompileCommands_getSize". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4458:3: leaked_storage: Variable "CCmds" going out of scope leaks the storage it points to. +# 4456| free(tmp); +# 4457| +# 4458|-> return errorCode; +# 4459| } +# 4460| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4397:3: alloc_fn: Storage is returned from allocation function "clang_CompilationDatabase_fromDirectory". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4397:3: var_assign: Assigning: "db" = storage returned from "clang_CompilationDatabase_fromDirectory(buildDir, &ec)". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4458:3: leaked_storage: Variable "db" going out of scope leaks the storage it points to. +# 4456| free(tmp); +# 4457| +# 4458|-> return errorCode; +# 4459| } +# 4460| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4587:3: alloc_fn: Storage is returned from allocation function "fopen". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4587:3: var_assign: Assigning: "fp" = storage returned from "fopen(file_name, "r")". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4594:3: noescape: Resource "fp" is not freed or pointed-to in "feof". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4595:5: noescape: Resource "fp" is not freed or pointed-to in "fgetc". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4594:3: noescape: Resource "fp" is not freed or pointed-to in "feof". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4595:5: noescape: Resource "fp" is not freed or pointed-to in "fgetc". +llvm-project-19.0.0.src/clang/tools/c-index-test/c-index-test.c:4616:9: leaked_storage: Variable "fp" going out of scope leaks the storage it points to. +# 4614| } +# 4615| if (print_usrs(&args[0], &args[i])) +# 4616|-> return 1; +# 4617| } +# 4618| else + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "Allocator" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "GlobalParser" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "fuzzer::TPC" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:46:27: constructor_uses_global_object: The constructor of global object "::options::IndexTestCoreCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::options::IndexTestCoreCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 44| namespace options { +# 45| +# 46|-> static cl::OptionCategory IndexTestCoreCategory("index-test-core options"); +# 47| +# 48| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "Allocator" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "fuzzer::TPC" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:49:1: constructor_uses_global_object: The constructor of global object "::options::Action" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "::options::Action" might be created before "scudo::RegionPageMap::Buffers" is available. +# 47| +# 48| static cl::opt +# 49|-> Action(cl::desc("Action:"), cl::init(ActionType::None), +# 50| cl::values( +# 51| clEnumValN(ActionType::PrintSourceSymbols, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:55:22: constructor_uses_global_object: The constructor of global object "::options::MoreHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "::options::MoreHelp" might be created before "GlobalParser" is available. +# 53| cl::cat(IndexTestCoreCategory)); +# 54| +# 55|-> static cl::extrahelp MoreHelp( +# 56| "\nAdd \"-- \" at the end to setup the compiler " +# 57| "invocation\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:61:1: constructor_uses_global_object: The constructor of global object "::options::DumpModuleImports" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::DumpModuleImports" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| +# 60| static cl::opt +# 61|-> DumpModuleImports("dump-imported-module-files", +# 62| cl::desc("Print symbols and input files from imported modules")); +# 63| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:65:1: constructor_uses_global_object: The constructor of global object "::options::IncludeLocals" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::IncludeLocals" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| static cl::opt +# 65|-> IncludeLocals("include-locals", cl::desc("Print local symbols")); +# 66| +# 67| static cl::opt IgnoreMacros("ignore-macros", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:67:22: constructor_uses_global_object: The constructor of global object "::options::IgnoreMacros" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::IgnoreMacros" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| IncludeLocals("include-locals", cl::desc("Print local symbols")); +# 66| +# 67|-> static cl::opt IgnoreMacros("ignore-macros", +# 68| cl::desc("Skip indexing macros")); +# 69| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:71:1: constructor_uses_global_object: The constructor of global object "::options::ModuleFilePath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::ModuleFilePath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| static cl::opt +# 71|-> ModuleFilePath("module-file", +# 72| cl::desc("Path to module file to print symbols from")); +# 73| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/c-index-test/core_main.cpp:74:3: constructor_uses_global_object: The constructor of global object "::options::ModuleFormat[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::options::ModuleFormat[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| cl::desc("Path to module file to print symbols from")); +# 73| static cl::opt +# 74|-> ModuleFormat("fmodule-format", cl::init("raw"), +# 75| cl::desc("Container format for clang modules and PCH, 'raw' or 'obj'")); +# 76| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:42:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 40| using namespace llvm; +# 41| +# 42|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 43| static cl::extrahelp MoreHelp( +# 44| "\tFor example, to run clang-check on all files in a subtree of the\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:43:22: constructor_uses_global_object: The constructor of global object "MoreHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "MoreHelp" might be created before "GlobalParser" is available. +# 41| +# 42| static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 43|-> static cl::extrahelp MoreHelp( +# 44| "\tFor example, to run clang-check on all files in a subtree of the\n" +# 45| "\tsource tree, use:\n" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "Allocator" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "GlobalParser" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "fuzzer::TPC" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:58:27: constructor_uses_global_object: The constructor of global object "ClangCheckCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangCheckCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 56| ); +# 57| +# 58|-> static cl::OptionCategory ClangCheckCategory("clang-check options"); +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "Allocator" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "fuzzer::TPC" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:61:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 59| static const opt::OptTable &Options = getDriverOptTable(); +# 60| static cl::opt +# 61|-> ASTDump("ast-dump", +# 62| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump)), +# 63| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "Allocator" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "fuzzer::TPC" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:65:5: constructor_uses_global_object: The constructor of global object "ASTList" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTList" might be created before "scudo::RegionPageMap::Buffers" is available. +# 63| cl::cat(ClangCheckCategory)); +# 64| static cl::opt +# 65|-> ASTList("ast-list", +# 66| cl::desc(Options.getOptionHelpText(options::OPT_ast_list)), +# 67| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "Allocator" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "fuzzer::TPC" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:69:5: constructor_uses_global_object: The constructor of global object "ASTPrint" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTPrint" might be created before "scudo::RegionPageMap::Buffers" is available. +# 67| cl::cat(ClangCheckCategory)); +# 68| static cl::opt +# 69|-> ASTPrint("ast-print", +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "Allocator" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:72:29: constructor_uses_global_object: The constructor of global object "ASTDumpFilter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpFilter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 70| cl::desc(Options.getOptionHelpText(options::OPT_ast_print)), +# 71| cl::cat(ClangCheckCategory)); +# 72|-> static cl::opt ASTDumpFilter( +# 73| "ast-dump-filter", +# 74| cl::desc(Options.getOptionHelpText(options::OPT_ast_dump_filter)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "Allocator" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "fuzzer::TPC" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:77:5: constructor_uses_global_object: The constructor of global object "Analyze" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Analyze" might be created before "scudo::RegionPageMap::Buffers" is available. +# 75| cl::cat(ClangCheckCategory)); +# 76| static cl::opt +# 77|-> Analyze("analyze", +# 78| cl::desc(Options.getOptionHelpText(options::OPT_analyze)), +# 79| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "Allocator" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:81:5: constructor_uses_global_object: The constructor of global object "AnalyzerOutput[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "AnalyzerOutput[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 79| cl::cat(ClangCheckCategory)); +# 80| static cl::opt +# 81|-> AnalyzerOutput("analyzer-output-path", +# 82| cl::desc(Options.getOptionHelpText(options::OPT_o)), +# 83| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "Allocator" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "fuzzer::TPC" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:86:5: constructor_uses_global_object: The constructor of global object "Fixit" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "Fixit" might be created before "scudo::RegionPageMap::Buffers" is available. +# 84| +# 85| static cl::opt +# 86|-> Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88| static cl::opt FixWhatYouCan( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "Allocator" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "fuzzer::TPC" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:88:22: constructor_uses_global_object: The constructor of global object "FixWhatYouCan" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "FixWhatYouCan" might be created before "scudo::RegionPageMap::Buffers" is available. +# 86| Fixit("fixit", cl::desc(Options.getOptionHelpText(options::OPT_fixit)), +# 87| cl::cat(ClangCheckCategory)); +# 88|-> static cl::opt FixWhatYouCan( +# 89| "fix-what-you-can", +# 90| cl::desc(Options.getOptionHelpText(options::OPT_fix_what_you_can)), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "Allocator" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "fuzzer::TPC" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:93:22: constructor_uses_global_object: The constructor of global object "SyntaxTreeDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SyntaxTreeDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 91| cl::cat(ClangCheckCategory)); +# 92| +# 93|-> static cl::opt SyntaxTreeDump("syntax-tree-dump", +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "Allocator" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "fuzzer::TPC" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-check/ClangCheck.cpp:96:22: constructor_uses_global_object: The constructor of global object "TokensDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "TokensDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 94| cl::desc("dump the syntax tree"), +# 95| cl::cat(ClangCheckCategory)); +# 96|-> static cl::opt TokensDump("tokens-dump", +# 97| cl::desc("dump the preprocessed tokens"), +# 98| cl::cat(ClangCheckCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "Allocator" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "GlobalParser" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "fuzzer::TPC" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:23:27: constructor_uses_global_object: The constructor of global object "ClangDiffCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangDiffCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 21| using namespace clang::tooling; +# 22| +# 23|-> static cl::OptionCategory ClangDiffCategory("clang-diff options"); +# 24| +# 25| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "Allocator" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "fuzzer::TPC" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:26:5: constructor_uses_global_object: The constructor of global object "ASTDump" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDump" might be created before "scudo::RegionPageMap::Buffers" is available. +# 24| +# 25| static cl::opt +# 26|-> ASTDump("ast-dump", +# 27| cl::desc("Print the internal representation of the AST."), +# 28| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "Allocator" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "fuzzer::TPC" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:30:22: constructor_uses_global_object: The constructor of global object "ASTDumpJson" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ASTDumpJson" might be created before "scudo::RegionPageMap::Buffers" is available. +# 28| cl::init(false), cl::cat(ClangDiffCategory)); +# 29| +# 30|-> static cl::opt ASTDumpJson( +# 31| "ast-dump-json", +# 32| cl::desc("Print the internal representation of the AST as JSON."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "Allocator" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "fuzzer::TPC" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:35:22: constructor_uses_global_object: The constructor of global object "PrintMatches" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "PrintMatches" might be created before "scudo::RegionPageMap::Buffers" is available. +# 33| cl::init(false), cl::cat(ClangDiffCategory)); +# 34| +# 35|-> static cl::opt PrintMatches("dump-matches", +# 36| cl::desc("Print the matched nodes."), +# 37| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "Allocator" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "fuzzer::TPC" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:39:22: constructor_uses_global_object: The constructor of global object "HtmlDiff" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "HtmlDiff" might be created before "scudo::RegionPageMap::Buffers" is available. +# 37| cl::init(false), cl::cat(ClangDiffCategory)); +# 38| +# 39|-> static cl::opt HtmlDiff("html", +# 40| cl::desc("Output a side-by-side diff in HTML."), +# 41| cl::init(false), cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "Allocator" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "GlobalParser" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:43:29: constructor_uses_global_object: The constructor of global object "SourcePath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "SourcePath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 41| cl::init(false), cl::cat(ClangDiffCategory)); +# 42| +# 43|-> static cl::opt SourcePath(cl::Positional, cl::desc(""), +# 44| cl::Required, +# 45| cl::cat(ClangDiffCategory)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "Allocator" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "GlobalParser" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:47:29: constructor_uses_global_object: The constructor of global object "DestinationPath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "DestinationPath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 45| cl::cat(ClangDiffCategory)); +# 46| +# 47|-> static cl::opt DestinationPath(cl::Positional, +# 48| cl::desc(""), +# 49| cl::Optional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "Allocator" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:52:29: constructor_uses_global_object: The constructor of global object "StopAfter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "StopAfter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 50| cl::cat(ClangDiffCategory)); +# 51| +# 52|-> static cl::opt StopAfter("stop-diff-after", +# 53| cl::desc(""), +# 54| cl::Optional, cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "Allocator" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "fuzzer::TPC" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:57:21: constructor_uses_global_object: The constructor of global object "MaxSize" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "MaxSize" might be created before "scudo::RegionPageMap::Buffers" is available. +# 55| cl::cat(ClangDiffCategory)); +# 56| +# 57|-> static cl::opt MaxSize("s", cl::desc(""), cl::Optional, +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "Allocator" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:60:29: constructor_uses_global_object: The constructor of global object "BuildPath[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "BuildPath[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 58| cl::init(-1), cl::cat(ClangDiffCategory)); +# 59| +# 60|-> static cl::opt BuildPath("p", cl::desc("Build path"), cl::init(""), +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "Allocator" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:63:30: constructor_uses_global_object: The constructor of global object "ArgsAfter[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ArgsAfter[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 61| cl::Optional, cl::cat(ClangDiffCategory)); +# 62| +# 63|-> static cl::list ArgsAfter( +# 64| "extra-arg", +# 65| cl::desc("Additional argument to append to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "Allocator" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "fuzzer::TPC" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-diff/ClangDiff.cpp:68:30: constructor_uses_global_object: The constructor of global object "ArgsBefore[abi:cxx11]" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ArgsBefore[abi:cxx11]" might be created before "scudo::RegionPageMap::Buffers" is available. +# 66| cl::cat(ClangDiffCategory)); +# 67| +# 68|-> static cl::list ArgsBefore( +# 69| "extra-arg-before", +# 70| cl::desc("Additional argument to prepend to the compiler command line"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "Allocator" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "GlobalParser" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "fuzzer::TPC" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:37:5: constructor_uses_global_object: The constructor of global object "ClangExtDefMapGenCategory" itself makes use of global object "scudo::RegionPageMap::Buffers" defined in another compilation unit. The order of construction is unspecified, so "ClangExtDefMapGenCategory" might be created before "scudo::RegionPageMap::Buffers" is available. +# 35| +# 36| static cl::OptionCategory +# 37|-> ClangExtDefMapGenCategory("clang-extdefmapgen options"); +# 38| +# 39| class MapExtDefNamesConsumer : public ASTConsumer { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp:122:22: constructor_uses_global_object: The constructor of global object "CommonHelp" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "CommonHelp" might be created before "GlobalParser" is available. +# 120| }; +# 121| +# 122|-> static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); +# 123| +# 124| static IntrusiveRefCntPtr Diags; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:33:22: constructor_uses_global_object: The constructor of global object "Help" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Help" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| using clang::tooling::Replacements; +# 32| +# 33|-> static cl::opt Help("h", cl::desc("Alias for -help"), cl::Hidden); +# 34| +# 35| // Mark all our options with this category, everything else (except for -version + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:37:27: constructor_uses_global_object: The constructor of global object "ClangFormatCategory" itself makes use of global object "Allocator" defined in another compilation unit. The order of construction is unspecified, so "ClangFormatCategory" might be created before "Allocator" is available. +# 35| // Mark all our options with this category, everything else (except for -version +# 36| // and -help) will be hidden. +# 37|-> static cl::OptionCategory ClangFormatCategory("Clang-format options"); +# 38| +# 39| static cl::list + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:37:27: error[too-many]: 11982 occurrences of constructor_uses_global_object exceeded the specified limit 1024 +llvm-project-19.0.0.src/clang/tools/clang-format/ClangFormat.cpp:37:27: note: 10958 occurrences of constructor_uses_global_object were discarded because of this + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/clang/tools/driver/cc1gen_reproducer_main.cpp:189:3: extract: Calling "c_str" which extracts wrapped state from local "Path". +llvm-project-19.0.0.src/clang/tools/driver/cc1gen_reproducer_main.cpp:189:3: escape: The internal representation of local "Path" escapes into "DriverArgs[0UL]", but is destroyed when it exits scope. +# 187| DriverArgs.push_back(Arg.c_str()); +# 188| std::string Path = GetExecutablePath(Argv0, /*CanonicalPrefixes=*/true); +# 189|-> DriverArgs[0] = Path.c_str(); +# 190| std::optional Report = +# 191| generateReproducerForInvocationArguments(DriverArgs, InvocationInfo, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:3804:3: var_decl: Declaring variable "Pieces". +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:3826:3: uninit_use: Using uninitialized value "Pieces". Field "Pieces.InlineElts" is uninitialized. +# 3824| } +# 3825| +# 3826|-> return Pieces; +# 3827| } +# 3828| } // namespace + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:4422:3: var_decl: Declaring variable "ER". +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:4425:5: uninit_use_in_call: Using uninitialized value "ER.Val.Data" when calling "~EvalResult". +# 4423| ASTContext &ctx = getCursorContext(C); +# 4424| if (!expr) +# 4425|-> return nullptr; +# 4426| +# 4427| expr = expr->IgnoreParens(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:9413:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/tools/libclang/CIndex.cpp:9413:3: leaked_storage: Failing to save or free storage allocated by "entries.release()" leaks it. +# 9411| CXTUResourceUsage usage = {(void *)entries.get(), (unsigned)entries->size(), +# 9412| !entries->empty() ? &(*entries)[0] : nullptr}; +# 9413|-> (void)entries.release(); +# 9414| return usage; +# 9415| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:980:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(5.)". +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:980:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 978| EXPECT_TRUE(matches("double i = 5.0;", floatLiteral(equals(5.0)))); +# 979| EXPECT_TRUE(matches("double i = 5.0;", floatLiteral(equals(5.0f)))); +# 980|-> EXPECT_TRUE( +# 981| matches("double i = 5.0;", floatLiteral(equals(llvm::APFloat(5.0))))); +# 982| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:986:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(6.)". +llvm-project-19.0.0.src/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp:986:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 984| EXPECT_TRUE(notMatches("double i = 5.0;", floatLiteral(equals(6.0)))); +# 985| EXPECT_TRUE(notMatches("double i = 5.0;", floatLiteral(equals(6.0f)))); +# 986|-> EXPECT_TRUE( +# 987| notMatches("double i = 5.0;", floatLiteral(equals(llvm::APFloat(6.0))))); +# 988| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp:70:3: var_decl: Declaring variable "Chain". +llvm-project-19.0.0.src/clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp:84:3: uninit_use: Using uninitialized value "Chain". Field "Chain.InlineElts" is uninitialized. +# 82| E = dyn_cast(By); +# 83| } +# 84|-> return Chain; +# 85| } +# 86| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/BufferSourceTest.cpp:42:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/BufferSourceTest.cpp:45:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/BufferSourceTest.cpp:45:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 43| LO.CPlusPlus = 1; +# 44| LO.CPlusPlus11 = 1; +# 45|-> TestCompiler Compiler(LO); +# 46| Compiler.init(TestProgram); +# 47| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/CodeGenExternalTest.cpp:262:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/CodeGenExternalTest.cpp:265:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/CodeGenExternalTest.cpp:265:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 263| LO.CPlusPlus = 1; +# 264| LO.CPlusPlus11 = 1; +# 265|-> TestCompiler Compiler(LO); +# 266| auto CustomASTConsumer +# 267| = std::make_unique(std::move(Compiler.CG)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:28:5: var_decl: Declaring variable "CGOpts". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:31:5: uninit_use: Using uninitialized value "CGOpts". Field "CGOpts.LargeDataThreshold" is uninitialized. +# 29| CGOpts.StructPathTBAA = 1; +# 30| CGOpts.OptimizationLevel = 1; +# 31|-> return CGOpts; +# 32| } +# 33| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:64:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:65:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:65:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 63| +# 64| clang::LangOptions LO; +# 65|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 66| Compiler.init(TestProgram); +# 67| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:160:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:162:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:162:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 160| clang::LangOptions LO; +# 161| LO.C11 = 1; +# 162|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 163| Compiler.init(TestProgram); +# 164| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:282:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:284:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:284:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 282| clang::LangOptions LO; +# 283| LO.C11 = 1; +# 284|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 285| Compiler.init(TestProgram); +# 286| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:375:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:377:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:377:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 375| clang::LangOptions LO; +# 376| LO.C11 = 1; +# 377|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 378| Compiler.init(TestProgram); +# 379| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:469:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:471:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:471:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 469| clang::LangOptions LO; +# 470| LO.C11 = 1; +# 471|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 472| Compiler.init(TestProgram); +# 473| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:571:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:574:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:574:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 572| LO.CPlusPlus = 1; +# 573| LO.CPlusPlus11 = 1; +# 574|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 575| Compiler.init(TestProgram); +# 576| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:694:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:697:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:697:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 695| LO.CPlusPlus = 1; +# 696| LO.CPlusPlus11 = 1; +# 697|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 698| Compiler.init(TestProgram); +# 699| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:795:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:798:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:798:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 796| LO.CPlusPlus = 1; +# 797| LO.CPlusPlus11 = 1; +# 798|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 799| Compiler.init(TestProgram); +# 800| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:877:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:880:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:880:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 878| LO.CPlusPlus = 1; +# 879| LO.CPlusPlus11 = 1; +# 880|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 881| Compiler.init(TestProgram); +# 882| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:956:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:959:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:959:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 957| LO.CPlusPlus = 1; +# 958| LO.CPlusPlus11 = 1; +# 959|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 960| Compiler.init(TestProgram); +# 961| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1032:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1035:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1035:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 1033| LO.CPlusPlus = 1; +# 1034| LO.CPlusPlus11 = 1; +# 1035|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 1036| Compiler.init(TestProgram); +# 1037| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1106:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1109:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1109:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 1107| LO.CPlusPlus = 1; +# 1108| LO.CPlusPlus11 = 1; +# 1109|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 1110| Compiler.init(TestProgram); +# 1111| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1192:3: var_decl: Declaring variable "LO". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1195:3: uninit_use_in_call: Using uninitialized value "LO.GPUDefaultStream" when calling "LangOptions". +llvm-project-19.0.0.src/clang/unittests/CodeGen/TBAAMetadataTest.cpp:1195:3: uninit_use_in_call: Using uninitialized value "LO.CheckNew" when calling "LangOptions". +# 1193| LO.CPlusPlus = 1; +# 1194| LO.CPlusPlus11 = 1; +# 1195|-> TBAATestCompiler Compiler(LO, TBAATestCompiler::getCommonCodeGenOpts()); +# 1196| Compiler.init(TestProgram); +# 1197| const BasicBlock *BB = Compiler.compile(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:140:5: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:148:7: uninit_use_in_call: Using uninitialized value "L._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:148:7: uninit_use_in_call: Using uninitialized value "L._M_owns" when calling "unlock". +# 146| } +# 147| if (result()) { +# 148|-> L.unlock(); +# 149| ResultIsReady.notify_one(); +# 150| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:154:5: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:169:7: uninit_use_in_call: Using uninitialized value "L._M_device" when calling "unlock". +llvm-project-19.0.0.src/clang/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp:169:7: uninit_use_in_call: Using uninitialized value "L._M_owns" when calling "unlock". +# 167| } +# 168| if (result()) { +# 169|-> L.unlock(); +# 170| ResultIsReady.notify_one(); +# 171| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:72:5: var_decl: Declaring variable "UnexpandedTokens". +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:75:5: uninit_use: Using uninitialized value "UnexpandedTokens". Field "UnexpandedTokens.InlineElts" is uninitialized. +# 73| for (const UnwrappedLineNode &Node : Unexpanded[ID]->Tokens) +# 74| UnexpandedTokens.push_back(Node.Tok); +# 75|-> return UnexpandedTokens; +# 76| } +# 77| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:80:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/unittests/Format/MacroCallReconstructorTest.cpp:83:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 81| for (const auto &Arg : Args) +# 82| Result.push_back(uneof(Lex.lex(Arg))); +# 83|-> return Result; +# 84| } +# 85| llvm::DenseMap> Unexpanded; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Format/MacroExpanderTest.cpp:37:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/clang/unittests/Format/MacroExpanderTest.cpp:40:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 38| for (const auto &Arg : Args) +# 39| Result.push_back(uneof(Lex.lex(Arg))); +# 40|-> return Result; +# 41| } +# 42| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Frontend/FrontendActionTest.cpp:210:5: var_decl: Declaring variable "TC". +llvm-project-19.0.0.src/clang/unittests/Frontend/FrontendActionTest.cpp:214:5: uninit_use: Using uninitialized value "TC". Field "TC.CorrectionDecls.InlineElts" is uninitialized. +# 212| DiagnosticsEngine::Note, "This is a note"); +# 213| TC.addExtraDiagnostic(PartialDiagnostic(DiagID, Ctx.getDiagAllocator())); +# 214|-> return TC; +# 215| } +# 216| }; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp:125:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp:125:3: leaked_storage: Ignoring storage allocated by "Buffer.release()" leaks it. +# 123| EXPECT_TRUE(Clang->createTarget()); +# 124| +# 125|-> Buffer.release(); +# 126| +# 127| SyntaxOnlyAction Action; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/StaticAnalyzer/CheckerRegistration.h:111:3: var_decl: Declaring variable "FileName". +llvm-project-19.0.0.src/clang/unittests/StaticAnalyzer/CheckerRegistration.h:113:3: uninit_use: Using uninitialized value "FileName". Field "FileName.InlineElts" is uninitialized. +# 111| SmallString<80> FileName; +# 112| (Twine{Info->name()} + ".cc").toVector(FileName); +# 113|-> return FileName; +# 114| } +# 115| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/clang/unittests/Tooling/RefactoringActionRulesTest.cpp:139:5: var_decl: Declaring variable "DiagID" without initializer. +llvm-project-19.0.0.src/clang/unittests/Tooling/RefactoringActionRulesTest.cpp:144:5: uninit_use_in_call: Using uninitialized value "DiagID" when calling "Compare". +# 142| DiagID = Error.getDiagnostic().second.getDiagID(); +# 143| }); +# 144|-> EXPECT_EQ(DiagID, diag::err_refactor_no_selection); +# 145| } +# 146| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:267:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:281:3: uninit_use: Using uninitialized value "result". +# 279| }); +# 280| } +# 281|-> if (result != 0) { +# 282| // If the thread didn't start delete the AsanThread to avoid leaking it. +# 283| // Note AsanThreadContexts never get destroyed so the AsanThreadContext + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:291:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:296:3: uninit_use: Using uninitialized value "result". +# 294| return !result; +# 295| }); +# 296|-> return result; +# 297| } +# 298| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:300:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:305:3: uninit_use: Using uninitialized value "result". +# 303| return !result; +# 304| }); +# 305|-> return result; +# 306| } +# 307| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:315:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:320:3: uninit_use: Using uninitialized value "result". +# 318| return !result; +# 319| }); +# 320|-> return result; +# 321| } +# 322| # endif + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:327:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/asan/asan_interceptors.cpp:332:3: uninit_use: Using uninitialized value "result". +# 330| return !result; +# 331| }); +# 332|-> return result; +# 333| } +# 334| # endif + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/dfsan/dfsan_custom.cpp:2779:3: address_of: Taking address with "&str_origin" yields a singleton pointer. +llvm-project-19.0.0.src/compiler-rt/lib/dfsan/dfsan_custom.cpp:2779:3: callee_ptr_arith: Passing "&str_origin" to function "scan_buffer" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2777| va_list ap; +# 2778| va_start(ap, ret_origin); +# 2779|-> int ret = scan_buffer(str, ~0ul, format, va_labels, ret_label, &str_origin, +# 2780| ret_origin, ap); +# 2781| va_end(ap); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:294:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:299:3: uninit_use: Using uninitialized value "result". +# 297| return !result; +# 298| }); +# 299|-> return result; +# 300| } +# 301| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:303:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:308:3: uninit_use: Using uninitialized value "result". +# 306| return !result; +# 307| }); +# 308|-> return result; +# 309| } +# 310| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:318:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:323:3: uninit_use: Using uninitialized value "result". +# 321| return !result; +# 322| }); +# 323|-> return result; +# 324| } +# 325| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:328:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:333:3: uninit_use: Using uninitialized value "result". +# 331| return !result; +# 332| }); +# 333|-> return result; +# 334| } +# 335| # endif + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:54:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:31: assign: Assigning: "__range1" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:29: uninit_use_in_call: Using uninitialized value "__range1.modules_.data_" when calling "begin". +# 54| ListOfModules modules; +# 55| modules.init(); +# 56|-> for (LoadedModule &module : modules) { +# 57| if (!IsLinker(module)) +# 58| continue; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:54:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:31: assign: Assigning: "__range1" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_common_linux.cpp:56:29: uninit_use_in_call: Using uninitialized value "__range1.modules_.size_" when calling "end". +# 54| ListOfModules modules; +# 55| modules.init(); +# 56|-> for (LoadedModule &module : modules) { +# 57| if (!IsLinker(module)) +# 58| continue; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:456:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:472:3: uninit_use: Using uninitialized value "result". +# 470| if (attr == &myattr) +# 471| pthread_attr_destroy(&myattr); +# 472|-> return result; +# 473| } +# 474| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:476:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:481:3: uninit_use: Using uninitialized value "result". +# 479| return !result; +# 480| }); +# 481|-> return result; +# 482| } +# 483| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:485:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:490:3: uninit_use: Using uninitialized value "result". +# 488| return !result; +# 489| }); +# 490|-> return result; +# 491| } +# 492| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:500:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:505:3: uninit_use: Using uninitialized value "result". +# 503| return !result; +# 504| }); +# 505|-> return result; +# 506| } +# 507| # define LSAN_MAYBE_INTERCEPT_TRYJOIN INTERCEPT_FUNCTION(pthread_tryjoin_np) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:515:3: var_decl: Declaring variable "result" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/lsan/lsan_interceptors.cpp:520:3: uninit_use: Using uninitialized value "result". +# 518| return !result; +# 519| }); +# 520|-> return result; +# 521| } +# 522| # define LSAN_MAYBE_INTERCEPT_TIMEDJOIN \ + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:300:7: var_decl: Declaring variable "List". +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:302:7: uninit_use_in_call: Using uninitialized value "List.modules_.data_" when calling "begin". +# 300| __sanitizer::ListOfModules List; +# 301| List.init(); +# 302|-> ArrayRef Modules(List.begin(), List.end()); +# 303| u64 BytesSerialized = SerializeToRawProfile(MIBMap, Modules, Buffer); +# 304| CHECK(Buffer && BytesSerialized && "could not serialize to buffer"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:300:7: var_decl: Declaring variable "List". +llvm-project-19.0.0.src/compiler-rt/lib/memprof/memprof_allocator.cpp:302:7: uninit_use_in_call: Using uninitialized value "List.modules_.size_" when calling "end". +# 300| __sanitizer::ListOfModules List; +# 301| List.init(); +# 302|-> ArrayRef Modules(List.begin(), List.end()); +# 303| u64 BytesSerialized = SerializeToRawProfile(MIBMap, Modules, Buffer); +# 304| CHECK(Buffer && BytesSerialized && "could not serialize to buffer"); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1026:3: alloc_fn: Storage is returned from allocation function "malloc". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1026:3: var_assign: Assigning: "FilenameBuf" = storage returned from "malloc(Length + 1)". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1031:3: noescape: Resource "FilenameBuf" is not freed or pointed-to in "getCurFilename". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingFile.c:1033:5: leaked_storage: Variable "FilenameBuf" going out of scope leaks the storage it points to. +# 1031| Filename = getCurFilename(FilenameBuf, 1); +# 1032| if (!Filename) +# 1033|-> return "\0"; +# 1034| +# 1035| return FilenameBuf; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingValue.c:222:3: alloc_fn: Storage is returned from allocation function "allocateOneNode". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingValue.c:222:3: var_assign: Assigning: "CurVNode" = storage returned from "allocateOneNode()". +llvm-project-19.0.0.src/compiler-rt/lib/profile/InstrProfilingValue.c:239:1: leaked_storage: Variable "CurVNode" going out of scope leaks the storage it points to. +# 237| return; +# 238| } +# 239|-> } +# 240| +# 241| COMPILER_RT_VISIBILITY void + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:145:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:148:5: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 146| uptr i1 = idx1(idx); +# 147| uptr i2 = idx2(idx); +# 148|-> if (!l1_[i0].getBit(i1)) { +# 149| l1_[i0].setBit(i1); +# 150| l2_[i0][i1].clear(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:145:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:149:7: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 147| uptr i2 = idx2(idx); +# 148| if (!l1_[i0].getBit(i1)) { +# 149|-> l1_[i0].setBit(i1); +# 150| l2_[i0][i1].clear(); +# 151| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:160:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:164:5: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 162| uptr i2 = idx2(idx); +# 163| bool res = false; +# 164|-> if (l1_[i0].getBit(i1)) { +# 165| res = l2_[i0][i1].clearBit(i2); +# 166| if (l2_[i0][i1].empty()) + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:160:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:167:9: overrun-local: Overrunning array "this->l1_" of 1 8-byte elements at element index 1 (byte offset 15) using index "i0" (which evaluates to 1). +# 165| res = l2_[i0][i1].clearBit(i2); +# 166| if (l2_[i0][i1].empty()) +# 167|-> l1_[i0].clearBit(i1); +# 168| } +# 169| return res; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:174:5: assignment: Assigning: "i0" = "this->idx0(idx)". The value of "i0" may now be up to 1. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h:178:5: overrun-local: Overrunning array of 8 bytes at byte offset 8 by dereferencing pointer "this->l1_[i0]". +# 176| uptr i2 = idx2(idx); +# 177| // Printf("%s: %zd => %zd %zd %zd\n", __func__, idx, i0, i1, i2); +# 178|-> return l1_[i0].getBit(i1) && l2_[i0][i1].getBit(i2); +# 179| } +# 180| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use: Using uninitialized value "local_iovec.iov_base". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use: Using uninitialized value "local_iovec.iov_len". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_base" when calling "__memprof_record_access_range". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_base" when calling "__msan_unpoison". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_len" when calling "__memprof_record_access_range". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3423:3: var_decl: Declaring variable "local_iovec" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:3472:7: uninit_use_in_call: Using uninitialized value "local_iovec.iov_len" when calling "__msan_unpoison". +# 3470| __sanitizer_iovec *iovec = (__sanitizer_iovec*)data; +# 3471| COMMON_INTERCEPTOR_WRITE_RANGE(ctx, iovec, sizeof(*iovec)); +# 3472|-> COMMON_INTERCEPTOR_WRITE_RANGE(ctx, local_iovec.iov_base, +# 3473| local_iovec.iov_len); +# 3474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:53:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:28: assign: Assigning: "__range2" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:26: uninit_use_in_call: Using uninitialized value "__range2.modules_.data_" when calling "begin". +# 56| Lib *lib = &libs_[i]; +# 57| bool loaded = false; +# 58|-> for (const auto &mod : modules) { +# 59| for (const auto &range : mod.ranges()) { +# 60| if (!range.executable) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:53:3: var_decl: Declaring variable "modules". +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:28: assign: Assigning: "__range2" = "modules", which points to uninitialized data. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp:58:26: uninit_use_in_call: Using uninitialized value "__range2.modules_.size_" when calling "end". +# 56| Lib *lib = &libs_[i]; +# 57| bool loaded = false; +# 58|-> for (const auto &mod : modules) { +# 59| for (const auto &range : mod.ranges()) { +# 60| if (!range.executable) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:51:5: underflow: The decrement operator on the unsigned variable "minimal_num_length" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:63:5: overflow: The expression "minimal_num_length - pos" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:63:5: overflow: The expression "8UL * (minimal_num_length - pos)" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:63:5: overflow_sink: "8UL * (minimal_num_length - pos)", which might have underflowed, is passed to "__sanitizer::internal_memset(&num_buffer[pos], 0, 8UL * (minimal_num_length - pos))". +# 61| if (pos < minimal_num_length) { +# 62| // Make sure compiler doesn't insert call to memset here. +# 63|-> internal_memset(&num_buffer[pos], 0, +# 64| sizeof(num_buffer[0]) * (minimal_num_length - pos)); +# 65| pos = minimal_num_length; + +Error: INTEGER_OVERFLOW (CWE-125): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:51:5: underflow: The decrement operator on the unsigned variable "minimal_num_length" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:65:5: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp:69:3: deref_overflow: "pos", which might have underflowed, is passed to "num_buffer[pos]". +# 67| RAW_CHECK(pos > 0); +# 68| pos--; +# 69|-> for (; pos >= 0 && num_buffer[pos] == 0; pos--) { +# 70| char c = (pad_with_zero || pos == 0) ? '0' : ' '; +# 71| result += AppendChar(buff, buff_end, c); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:33:3: cond_at_most: Checking "i < 5" implies that "i" may be up to 4 on the true branch. +llvm-project-19.0.0.src/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:35:7: overrun-local: Overrunning array of 40 bytes at byte offset 40 by dereferencing pointer "&__sanitizer::InternalDieCallbacks[i + 1]". +# 33| for (int i = 0; i < kMaxNumOfInternalDieCallbacks; i++) { +# 34| if (InternalDieCallbacks[i] == callback) { +# 35|-> internal_memmove(&InternalDieCallbacks[i], &InternalDieCallbacks[i + 1], +# 36| sizeof(InternalDieCallbacks[0]) * +# 37| (kMaxNumOfInternalDieCallbacks - i - 1)); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:28:5: underflow: The decrement operator on the unsigned variable "MinNumberLength" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:41:5: overflow: The expression "MinNumberLength - Pos" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:41:5: overflow: The expression "8UL * static_cast(MinNumberLength - Pos)" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:41:5: overflow_sink: "8UL * static_cast(MinNumberLength - Pos)", which might have underflowed, is passed to "memset(&NumBuffer[Pos], 0, 8UL * static_cast(MinNumberLength - Pos))". +# 39| } while (AbsoluteValue > 0); +# 40| if (Pos < MinNumberLength) { +# 41|-> memset(&NumBuffer[Pos], 0, +# 42| sizeof(NumBuffer[0]) * static_cast(MinNumberLength - Pos)); +# 43| Pos = MinNumberLength; + +Error: INTEGER_OVERFLOW (CWE-125): +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:28:5: underflow: The decrement operator on the unsigned variable "MinNumberLength" might result in an underflow. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:43:5: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/compiler-rt/lib/scudo/standalone/string_utils.cpp:47:3: deref_overflow: "Pos", which might have underflowed, is passed to "NumBuffer[Pos]". +# 45| RAW_CHECK(Pos > 0); +# 46| Pos--; +# 47|-> for (; Pos >= 0 && NumBuffer[Pos] == 0; Pos--) { +# 48| char c = (PadWithZero || Pos == 0) ? '0' : ' '; +# 49| String.push_back(c); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_rtl_access.cpp:279:3: var_decl: Declaring variable "old" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_rtl_access.cpp:295:3: uninit_use_in_call: Using uninitialized value "static_cast<__tsan::RawShadow>(old)" when calling "Shadow". +# 293| break; +# 294| } +# 295|-> Shadow prev(static_cast(old)); +# 296| // For the free shadow markers the first element (that contains kFreeSid) +# 297| // triggers the race, but the second element contains info about the freeing + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_sync.cpp:21:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_sync.cpp:21:46: uninit_use_in_call: Using uninitialized value "this->clock" when calling "Reset". +llvm-project-19.0.0.src/compiler-rt/lib/tsan/rtl/tsan_sync.cpp:21:46: uninit_use_in_call: Using uninitialized value "this->read_clock" when calling "Reset". +# 19| void DDMutexInit(ThreadState *thr, uptr pc, SyncVar *s); +# 20| +# 21|-> SyncVar::SyncVar() : mtx(MutexTypeSyncVar) { Reset(); } +# 22| +# 23| void SyncVar::Init(ThreadState *thr, uptr pc, uptr addr, bool save_stack) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:88:3: var_decl: Declaring variable "Loc". +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:112:3: uninit_use_in_call: Using uninitialized value "Loc". Field "Loc.MemoryLoc" is uninitialized when calling "ScopedReport". +# 110| } +# 111| +# 112|-> ScopedReport R(Opts, Loc, ET); +# 113| +# 114| switch (ET) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:156:3: var_decl: Declaring variable "Loc". +llvm-project-19.0.0.src/compiler-rt/lib/ubsan/ubsan_handlers.cpp:164:3: uninit_use_in_call: Using uninitialized value "Loc". Field "Loc.MemoryLoc" is uninitialized when calling "ScopedReport". +# 162| return; +# 163| +# 164|-> ScopedReport R(Opts, Loc, ET); +# 165| +# 166| uptr RealPointer = Pointer - Offset; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_basic_logging.cpp:184:5: var_decl: Declaring variable "E" without initializer. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_basic_logging.cpp:191:5: uninit_use_in_call: Using uninitialized value "E". Field "E.Padding" is uninitialized when calling "internal_memcpy". +# 189| auto StackEntryPtr = static_cast(TLD.ShadowStack) + +# 190| (sizeof(StackEntry) * (TLD.StackEntries - 1)); +# 191|-> internal_memcpy(StackEntryPtr, &E, sizeof(StackEntry)); +# 192| break; +# 193| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:144:3: tainted_data_return: Called function "write(this->Fd, Begin, TotalBytes)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:144:3: assign: Assigning: "Written" = "write(this->Fd, Begin, TotalBytes)". +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:151:5: overflow: The expression "TotalBytes" is considered to have possibly overflowed. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_utils.cpp:144:3: overflow_sink: "TotalBytes", which might be negative, is passed to "write(this->Fd, Begin, TotalBytes)". +# 142| return; +# 143| auto TotalBytes = std::distance(Begin, End); +# 144|-> while (auto Written = write(Fd, Begin, TotalBytes)) { +# 145| if (Written < 0) { +# 146| if (errno == EINTR) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:33:3: tainted_data_return: Called function "read(Fd, Begin, BytesToRead)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:33:3: assign: Assigning: "BytesRead" = "read(Fd, Begin, BytesToRead)". +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:42:5: overflow: The expression "BytesToRead" is considered to have possibly overflowed. +llvm-project-19.0.0.src/compiler-rt/lib/xray/xray_x86_64.cpp:33:3: overflow_sink: "BytesToRead", which might be negative, is passed to "read(Fd, Begin, BytesToRead)". +# 31| ssize_t BytesRead; +# 32| ssize_t TotalBytesRead = 0; +# 33|-> while (BytesToRead && (BytesRead = read(Fd, Begin, BytesToRead))) { +# 34| if (BytesRead == -1) { +# 35| if (errno == EINTR) + +Error: SIGMA.container_requesting_net_raw (CWE-269): +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:9: Sigma main event: The Docker container requests the `NET_RAW` capability, either explicitly or by default, granting access to the host's network interfaces. +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:9: remediation: Explicitly remove the `NET_RAW` capability by adding either `NET_RAW` or `ALL` to the `cap_drop` list and avoiding the `NET_RAW` capability in the `cap_add` list. +# 7| services: +# 8| buildkite-builder: +# 9|-> image: ghcr.io/libcxx/buildkite-builder:${TAG:-latest} +# 10| build: +# 11| context: . + +Error: SIGMA.container_requesting_net_raw (CWE-269): +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:18: Sigma main event: The Docker container requests the `NET_RAW` capability, either explicitly or by default, granting access to the host's network interfaces. +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:18: remediation: Explicitly remove the `NET_RAW` capability by adding either `NET_RAW` or `ALL` to the `cap_drop` list and avoiding the `NET_RAW` capability in the `cap_add` list. +# 16| <<: *compiler_versions +# 17| actions-builder: +# 18|-> image: ghcr.io/libcxx/actions-builder:${TAG:-latest} +# 19| build: +# 20| context: . + +Error: SIGMA.container_requesting_net_raw (CWE-269): +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:27: Sigma main event: The Docker container requests the `NET_RAW` capability, either explicitly or by default, granting access to the host's network interfaces. +llvm-project-19.0.0.src/libcxx/utils/ci/docker-compose.yml:27: remediation: Explicitly remove the `NET_RAW` capability by adding either `NET_RAW` or `ALL` to the `cap_drop` list and avoiding the `NET_RAW` capability in the `cap_add` list. +# 25| <<: *compiler_versions +# 26| android-buildkite-builder: +# 27|-> image: ghcr.io/libcxx/android-buildkite-builder:${TAG:-latest} +# 28| build: +# 29| context: . + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1021:3: return_constant: Function call "llvm::Log2_32(c->getAlignment())" may return 4294967295. +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1021:3: assignment: Assigning: "p2Align" = "llvm::Log2_32(c->getAlignment())". The value of "p2Align" is now 255. +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1023:3: alias: Assigning: "mc" = "ctx.mergeChunkInstances[p2Align]". "mc" now points to element 255 of "ctx.mergeChunkInstances" (which consists of 14 8-byte elements). +llvm-project-19.0.0.src/lld/COFF/Chunks.cpp:1024:3: overrun-local: Overrunning array of 14 8-byte elements at element index 255 (byte offset 2047) by dereferencing pointer "mc". +# 1022| assert(p2Align < std::size(ctx.mergeChunkInstances)); +# 1023| auto *&mc = ctx.mergeChunkInstances[p2Align]; +# 1024|-> if (!mc) +# 1025| mc = make(c->getAlignment()); +# 1026| mc->sections.push_back(c); + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/lld/COFF/Driver.cpp:1824:27: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "time(NULL)" is cast to "uint32_t". +# 1822| ". Expected 32-bit integer"); +# 1823| } else { +# 1824|-> config->timestamp = time(nullptr); +# 1825| } +# 1826| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:160:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:160:5: leaked_storage: Ignoring storage allocated by "bin.release()" leaks it. +# 158| +# 159| if (auto *obj = dyn_cast(bin.get())) { +# 160|-> bin.release(); +# 161| coffObj.reset(obj); +# 162| } else { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:1137:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/lld/COFF/InputFiles.cpp:1137:5: leaked_storage: Ignoring storage allocated by "bin.release()" leaks it. +# 1135| +# 1136| if (auto *obj = dyn_cast(bin.get())) { +# 1137|-> bin.release(); +# 1138| coffObj.reset(obj); +# 1139| } else { + +Error: WRITE_CONST_FIELD (CWE-843): +llvm-project-19.0.0.src/lld/COFF/Symbols.h:109:18: field_definition: A const-qualified field is defined. +llvm-project-19.0.0.src/lld/COFF/SymbolTable.cpp:503:9: store_writes_const_field: A write to an aggregate overwrites a const-qualified field within the aggregate. +# 501| // are dealing with and copy the correct number of bytes. +# 502| if (isa(d)) +# 503|-> memcpy(sym, d, sizeof(DefinedRegular)); +# 504| else if (isa(d)) +# 505| memcpy(sym, d, sizeof(DefinedAbsolute)); + +Error: WRITE_CONST_FIELD (CWE-843): +llvm-project-19.0.0.src/lld/COFF/Symbols.h:109:18: field_definition: A const-qualified field is defined. +llvm-project-19.0.0.src/lld/COFF/SymbolTable.cpp:505:9: store_writes_const_field: A write to an aggregate overwrites a const-qualified field within the aggregate. +# 503| memcpy(sym, d, sizeof(DefinedRegular)); +# 504| else if (isa(d)) +# 505|-> memcpy(sym, d, sizeof(DefinedAbsolute)); +# 506| else +# 507| memcpy(sym, d, sizeof(SymbolUnion)); + +Error: WRITE_CONST_FIELD (CWE-843): +llvm-project-19.0.0.src/lld/COFF/Symbols.h:109:18: field_definition: A const-qualified field is defined. +llvm-project-19.0.0.src/lld/COFF/SymbolTable.cpp:507:9: store_writes_const_field: A write to an aggregate overwrites a const-qualified field within the aggregate. +# 505| memcpy(sym, d, sizeof(DefinedAbsolute)); +# 506| else +# 507|-> memcpy(sym, d, sizeof(SymbolUnion)); +# 508| continue; +# 509| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/Common/Filesystem.cpp:87:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/lld/Common/Filesystem.cpp:91:5: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 89| +# 90| if (ec) +# 91|-> return; +# 92| +# 93| // close and therefore remove TempPath in background. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/ELF/Arch/PPC64.cpp:272:3: var_decl: Declaring variable "first" without initializer. +llvm-project-19.0.0.src/lld/ELF/Arch/PPC64.cpp:288:3: uninit_use: Using uninitialized value "first". +# 286| // The full section content has the extent of [begin, end). We drop unused +# 287| // instructions and write [first,end). +# 288|-> auto *sec = make( +# 289| ctx.internalFile, SHF_ALLOC, SHT_PROGBITS, 4, +# 290| ArrayRef(reinterpret_cast(buf.data() + first), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/ELF/SyntheticSections.cpp:3058:3: var_decl: Declaring variable "offsets" without initializer. +llvm-project-19.0.0.src/lld/ELF/SyntheticSections.cpp:3059:3: uninit_use: Using uninitialized element of array "offsets". +# 3057| // current shard. +# 3058| uint32_t offsets[numShards]; +# 3059|-> parallelFor(0, numShards, [&](size_t shard) { +# 3060| uint32_t offset = 0; +# 3061| for (NameEntry &ne : nameVecs[shard]) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/Driver.cpp:85:49: destructor_uses_global_object: The destructor of global object "resolvedLibraries" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "resolvedLibraries" might be called after "fuzzer::TPC" has already been destroyed. +# 83| } +# 84| +# 85|-> static DenseMap resolvedLibraries; +# 86| static std::optional findLibrary(StringRef name) { +# 87| CachedHashStringRef key(name); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/Driver.cpp:116:49: destructor_uses_global_object: The destructor of global object "resolvedFrameworks" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "resolvedFrameworks" might be called after "fuzzer::TPC" has already been destroyed. +# 114| } +# 115| +# 116|-> static DenseMap resolvedFrameworks; +# 117| static std::optional findFramework(StringRef name) { +# 118| CachedHashStringRef key(name); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/Driver.cpp:271:45: destructor_uses_global_object: The destructor of global object "loadedArchives" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "loadedArchives" might be called after "fuzzer::TPC" has already been destroyed. +# 269| }; +# 270| +# 271|-> static DenseMap loadedArchives; +# 272| +# 273| static InputFile *addFile(StringRef path, LoadType loadType, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/DriverUtils.cpp:222:51: destructor_uses_global_object: The destructor of global object "loadedDylibs" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "loadedDylibs" might be called after "fuzzer::TPC" has already been destroyed. +# 220| // It's not uncommon to have multiple attempts to load a single dylib, +# 221| // especially if it's a commonly re-exported core library. +# 222|-> static DenseMap loadedDylibs; +# 223| +# 224| DylibFile *macho::loadDylib(MemoryBufferRef mbref, DylibFile *umbrella, + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/lld/MachO/DriverUtils.cpp:309:14: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "llvm::sys::toTimeT(stat.getLastModificationTime())" is cast to "uint32_t". +# 307| if (!fs::status(path, stat)) +# 308| if (fs::exists(stat)) +# 309|-> return toTimeT(stat.getLastModificationTime()); +# 310| +# 311| warn("failed to get modification time of " + path); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/InputFiles.cpp:214:55: destructor_uses_global_object: The destructor of global object "lld::macho::cachedReads" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "lld::macho::cachedReads" might be called after "fuzzer::TPC" has already been destroyed. +# 212| // Theoretically this caching could be more efficient by hoisting it, but that +# 213| // would require altering many callers to track the state. +# 214|-> DenseMap macho::cachedReads; +# 215| // Open a given file path and return it as a memory-mapped file. +# 216| std::optional macho::readFile(StringRef path) { + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/lld/MachO/InputFiles.cpp:2203:30: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "llvm::sys::toTimeT(std::chrono::time_point > >(*modTime))" is cast to "uint32_t". +# 2201| +# 2202| Expected file = +# 2203|-> loadArchiveMember(*mb, toTimeT(*modTime), getName(), c.getChildOffset(), +# 2204| forceHidden, compatArch); +# 2205| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/MachO/MapFile.cpp:65:3: var_decl: Declaring variable "info". +llvm-project-19.0.0.src/lld/MachO/MapFile.cpp:122:3: uninit_use: Using uninitialized value "info". Field "info.files.InlineElts" is uninitialized. +# 120| return p1.first < p2.first; +# 121| }); +# 122|-> return info; +# 123| } +# 124| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/OutputSegment.cpp:170:45: destructor_uses_global_object: The destructor of global object "nameToOutputSegment" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "nameToOutputSegment" might be called after "fuzzer::TPC" has already been destroyed. +# 168| } +# 169| +# 170|-> static DenseMap nameToOutputSegment; +# 171| std::vector macho::outputSegments; +# 172| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/lld/MachO/SyntheticSections.cpp:811:24: destructor_uses_global_object: The destructor of global object "lld::macho::ObjCSelRefsHelper::methnameToSelref" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "lld::macho::ObjCSelRefsHelper::methnameToSelref" might be called after "fuzzer::TPC" has already been destroyed. +# 809| +# 810| llvm::DenseMap +# 811|-> ObjCSelRefsHelper::methnameToSelref; +# 812| void ObjCSelRefsHelper::initialize() { +# 813| // Do not fold selrefs without ICF. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/lld/MachO/SyntheticSections.cpp:1891:3: var_decl: Declaring variable "firstFile" without initializer. +llvm-project-19.0.0.src/lld/MachO/SyntheticSections.cpp:1901:7: uninit_use_in_call: Using uninitialized value "firstFile" when calling "toString". +# 1899| +# 1900| if (info.swiftVersion != 0 && info.swiftVersion != inputInfo.swiftVersion) { +# 1901|-> error("Swift version mismatch: " + toString(firstFile) + " has version " + +# 1902| swiftVersionString(info.swiftVersion) + " but " + toString(file) + +# 1903| " has version " + swiftVersionString(inputInfo.swiftVersion)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/lld/wasm/InputFiles.cpp:422:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/lld/wasm/InputFiles.cpp:422:3: leaked_storage: Ignoring storage allocated by "bin.release()" leaks it. +# 420| fatal(toString(this) + ": not a relocatable wasm file"); +# 421| +# 422|-> bin.release(); +# 423| wasmObj.reset(obj); +# 424| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:958:5: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:959:5: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeZero". +# 957| static APFloat getZero(const fltSemantics &Sem, bool Negative = false) { +# 958| APFloat Val(Sem, uninitialized); +# 959|-> Val.makeZero(Negative); +# 960| return Val; +# 961| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:967:5: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:968:5: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeInf". +# 966| static APFloat getInf(const fltSemantics &Sem, bool Negative = false) { +# 967| APFloat Val(Sem, uninitialized); +# 968|-> Val.makeInf(Negative); +# 969| return Val; +# 970| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:990:5: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:991:5: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeNaN". +# 989| const APInt *payload = nullptr) { +# 990| APFloat Val(Sem, uninitialized); +# 991|-> Val.makeNaN(false, Negative, payload); +# 992| return Val; +# 993| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:998:5: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:999:5: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeNaN". +# 997| const APInt *payload = nullptr) { +# 998| APFloat Val(Sem, uninitialized); +# 999|-> Val.makeNaN(true, Negative, payload); +# 1000| return Val; +# 1001| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:1007:5: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:1008:5: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeLargest". +# 1006| static APFloat getLargest(const fltSemantics &Sem, bool Negative = false) { +# 1007| APFloat Val(Sem, uninitialized); +# 1008|-> Val.makeLargest(Negative); +# 1009| return Val; +# 1010| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:1017:5: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:1018:5: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeSmallest". +# 1016| static APFloat getSmallest(const fltSemantics &Sem, bool Negative = false) { +# 1017| APFloat Val(Sem, uninitialized); +# 1018|-> Val.makeSmallest(Negative); +# 1019| return Val; +# 1020| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:1028:5: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/APFloat.h:1029:5: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeSmallestNormalized". +# 1027| bool Negative = false) { +# 1028| APFloat Val(Sem, uninitialized); +# 1029|-> Val.makeSmallestNormalized(Negative); +# 1030| return Val; +# 1031| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/BitVector.h:842:5: var_decl: Declaring variable "V". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/BitVector.h:844:5: uninit_use: Using uninitialized value "V". Field "V.Bits.InlineElts" is uninitialized. +# 842| BitVector V; +# 843| V.invalid(); +# 844|-> return V; +# 845| } +# 846| static unsigned getHashValue(const BitVector &V) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:945:3: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:947:5: uninit_use_in_call: Using uninitialized value "this->NumEntries" when calling "swap". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:947:5: uninit_use_in_call: Using uninitialized value "this->NumTombstones" when calling "swap". +# 945| SmallDenseMap(SmallDenseMap &&other) : BaseT() { +# 946| init(0); +# 947|-> swap(other); +# 948| } +# 949| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:1077:7: address_of: Taking address with "&TmpStorage" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:1077:7: assign: Assigning: "TmpBegin" = "reinterpret_cast *>(&TmpStorage)". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:1078:7: assign: Assigning: "TmpEnd" = "TmpBegin". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:1091:11: ptr_arith: Using "TmpEnd" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1089| ::new (&TmpEnd->getFirst()) KeyT(std::move(P->getFirst())); +# 1090| ::new (&TmpEnd->getSecond()) ValueT(std::move(P->getSecond())); +# 1091|-> ++TmpEnd; +# 1092| P->getSecond().~ValueT(); +# 1093| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:1077:7: address_of: Taking address with "&TmpStorage" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:1077:7: assign: Assigning: "TmpBegin" = "reinterpret_cast *>(&TmpStorage)". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/DenseMap.h:1104:7: callee_ptr_arith: Passing "TmpBegin" to function "moveFromOldBuckets" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1102| new (getLargeRep()) LargeRep(allocateBuckets(AtLeast)); +# 1103| } +# 1104|-> this->moveFromOldBuckets(TmpBegin, TmpEnd); +# 1105| return; +# 1106| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1228:5: overrun-buffer-arg: Overrunning array "size" of 2 4-byte elements by passing it to a function which accesses it at element index 2 (byte offset 11) using argument "2U". +# 1226| size[0] = rootSize; +# 1227| else +# 1228|-> NewOffset = distribute(Nodes, rootSize, Leaf::Capacity, nullptr, size, +# 1229| Position, true); +# 1230| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1679:5: assignment: Assigning: "i" = "NR.size() - 1U". The value of "i" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1681:5: overrun-call: Overrunning callee's array of size 16 by passing argument "i" (which evaluates to 63) in call to "stop". +# 1679| unsigned i = NR.size() - 1; +# 1680| Leaf &Node = NR.get(); +# 1681|-> return Node.value(i) == Value && Traits::adjacent(Node.stop(i), Start); +# 1682| } +# 1683| return false; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1679:5: assignment: Assigning: "i" = "NR.size() - 1U". The value of "i" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1681:5: overrun-call: Overrunning callee's array of size 16 by passing argument "i" (which evaluates to 63) in call to "value". +# 1679| unsigned i = NR.size() - 1; +# 1680| Leaf &Node = NR.get(); +# 1681|-> return Node.value(i) == Value && Traits::adjacent(Node.stop(i), Start); +# 1682| } +# 1683| return false; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1679:5: assignment: Assigning: "i" = "NR.size() - 1U". The value of "i" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1681:5: overrun-call: Overrunning callee's array of size 4 by passing argument "i" (which evaluates to 63) in call to "stop". +# 1679| unsigned i = NR.size() - 1; +# 1680| Leaf &Node = NR.get(); +# 1681|-> return Node.value(i) == Value && Traits::adjacent(Node.stop(i), Start); +# 1682| } +# 1683| return false; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1679:5: assignment: Assigning: "i" = "NR.size() - 1U". The value of "i" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1681:5: overrun-call: Overrunning callee's array of size 4 by passing argument "i" (which evaluates to 63) in call to "value". +# 1679| unsigned i = NR.size() - 1; +# 1680| Leaf &Node = NR.get(); +# 1681|-> return Node.value(i) == Value && Traits::adjacent(Node.stop(i), Start); +# 1682| } +# 1683| return false; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 10 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 10 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 11 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 11 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 16 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 16 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 21 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 21 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 4 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 4 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 8 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 8 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 9 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1871:7: overrun-call: Overrunning callee's array of size 9 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1883:11: overrun-call: Overrunning callee's array of size 10 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1883:11: overrun-call: Overrunning callee's array of size 11 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1883:11: overrun-call: Overrunning callee's array of size 16 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1883:11: overrun-call: Overrunning callee's array of size 21 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1883:11: overrun-call: Overrunning callee's array of size 4 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1883:11: overrun-call: Overrunning callee's array of size 8 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1883:11: overrun-call: Overrunning callee's array of size 9 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1888:11: overrun-call: Overrunning callee's array of size 10 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1888:11: overrun-call: Overrunning callee's array of size 11 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1888:11: overrun-call: Overrunning callee's array of size 16 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1888:11: overrun-call: Overrunning callee's array of size 21 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1888:11: overrun-call: Overrunning callee's array of size 4 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1888:11: overrun-call: Overrunning callee's array of size 8 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1870:7: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:1888:11: overrun-call: Overrunning callee's array of size 9 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:2022:3: assignment: Assigning: "Nodes" = "0U". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:2030:5: incr: Incrementing "Nodes". The value of "Nodes" is now 1. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:2035:3: incr: Incrementing "Nodes". The value of "Nodes" is now 2. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:2041:5: incr: Incrementing "Nodes". The value of "Nodes" is now 3. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:2053:5: incr: Incrementing "Nodes". The value of "Nodes" is now 4. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalMap.h:2058:3: overrun-buffer-arg: Overrunning array "NewSize" of 4 4-byte elements by passing it to a function which accesses it at element index 4 (byte offset 19) using argument "Nodes" (which evaluates to 4). +# 2056| // Compute the new element distribution. +# 2057| unsigned NewSize[4]; +# 2058|-> IdxPair NewOffset = distribute(Nodes, Elements, NodeT::Capacity, +# 2059| CurSize, NewSize, Offset, true); +# 2060| adjustSiblingSizes(Node, Nodes, CurSize, NewSize); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalTree.h:618:5: var_decl: Declaring variable "IntervalSet". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/IntervalTree.h:621:5: uninit_use: Using uninitialized value "IntervalSet". Field "IntervalSet.InlineElts" is uninitialized. +# 619| for (find_iterator Iter = find(Point), E = find_end(); Iter != E; ++Iter) +# 620| IntervalSet.push_back(const_cast(&(*Iter))); +# 621|-> return IntervalSet; +# 622| } +# 623| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:150:5: move: "Val" is moved (indicated by "std::forward(Val)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:152:7: use_after_move: "Val" is used after it has been already moved. +# 150| auto Ret = try_emplace(Key, std::forward(Val)); +# 151| if (!Ret.second) +# 152|-> Ret.first->second = std::forward(Val); +# 153| return Ret; +# 154| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:157:5: move: "Val" is moved (indicated by "std::forward(Val)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/MapVector.h:159:7: use_after_move: "Val" is used after it has been already moved. +# 157| auto Ret = try_emplace(std::move(Key), std::forward(Val)); +# 158| if (!Ret.second) +# 159|-> Ret.first->second = std::forward(Val); +# 160| return Ret; +# 161| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/STLExtras.h:575:3: move: "Range" is moved (indicated by "std::forward(Range)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/STLExtras.h:575:3: use_after_move: "Range" is used after it has been already moved. +# 573| using FilterIteratorT = +# 574| filter_iterator, PredicateT>; +# 575|-> return make_range( +# 576| FilterIteratorT(std::begin(std::forward(Range)), +# 577| std::end(std::forward(Range)), Pred), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/STLExtras.h:659:3: move: "Range" is moved (indicated by "std::forward(Range)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/STLExtras.h:659:3: use_after_move: "Range" is used after it has been already moved. +# 657| using EarlyIncIteratorT = +# 658| early_inc_iterator_impl>; +# 659|-> return make_range(EarlyIncIteratorT(std::begin(std::forward(Range))), +# 660| EarlyIncIteratorT(std::end(std::forward(Range)))); +# 661| } + +Error: USE_AFTER_FREE (CWE-416): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SetVector.h:174:5: freed_arg: "insert" frees "X.P". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SetVector.h:176:7: deref_arg: Calling "push_back" dereferences freed pointer "X.P". +# 174| bool result = set_.insert(X).second; +# 175| if (result) +# 176|-> vector_.push_back(X); +# 177| return result; +# 178| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SparseBitVector.h:366:9: tainted_data_return: Called function "this->Iter->find_next(this->BitNumber % 128U)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SparseBitVector.h:366:9: assign: Assigning: "NextSetBitNumber" = "this->Iter->find_next(this->BitNumber % 128U)". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SparseBitVector.h:385:11: overflow: The expression "NextSetBitNumber % 128U" might be negative, but is used in a context that treats it as unsigned. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SparseBitVector.h:385:11: overflow: The expression "NextSetBitNumber % 128U / BITWORD_SIZE" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SparseBitVector.h:385:11: assign: Assigning: "this->WordNumber" = "NextSetBitNumber % 128U / BITWORD_SIZE". +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SparseBitVector.h:386:11: overflow_sink: "this->WordNumber", which might have underflowed, is passed to "this->Iter->word(this->WordNumber)". +# 384| } else { +# 385| WordNumber = (NextSetBitNumber % ElementSize) / BITWORD_SIZE; +# 386|-> Bits = Iter->word(WordNumber); +# 387| Bits >>= NextSetBitNumber % BITWORD_SIZE; +# 388| BitNumber = Iter->index() * ElementSize; + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/StringMap.h:355:5: move: "Val" is moved (indicated by "std::forward(Val)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/StringMap.h:357:7: use_after_move: "Val" is used after it has been already moved. +# 355| auto Ret = try_emplace(Key, std::forward(Val)); +# 356| if (!Ret.second) +# 357|-> Ret.first->second = std::forward(Val); +# 358| return Ret; +# 359| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/ilist.h:138:9: move: "X" is moved (indicated by "std::move(static_cast &>(X))"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/ilist.h:139:9: use_after_move: "X" is used after it has been already moved. +# 137| iplist_impl(iplist_impl &&X) +# 138| : TraitsT(std::move(static_cast(X))), +# 139|-> IntrusiveListT(std::move(static_cast(X))) {} +# 140| iplist_impl &operator=(iplist_impl &&X) { +# 141| *static_cast(this) = std::move(static_cast(X)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/iterator.h:338:3: move: "Range" is moved (indicated by "std::forward(Range)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/iterator.h:338:3: use_after_move: "Range" is used after it has been already moved. +# 336| make_pointee_range(RangeT &&Range) { +# 337| using PointeeIteratorT = pointee_iterator; +# 338|-> return make_range(PointeeIteratorT(std::begin(std::forward(Range))), +# 339| PointeeIteratorT(std::end(std::forward(Range)))); +# 340| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/iterator.h:365:3: move: "Range" is moved (indicated by "std::forward(Range)"). +llvm-project-19.0.0.src/llvm/include/llvm/ADT/iterator.h:365:3: use_after_move: "Range" is used after it has been already moved. +# 363| make_pointer_range(RangeT &&Range) { +# 364| using PointerIteratorT = pointer_iterator; +# 365|-> return make_range(PointerIteratorT(std::begin(std::forward(Range))), +# 366| PointerIteratorT(std::end(std::forward(Range)))); +# 367| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/LoopNestAnalysis.h:123:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/LoopNestAnalysis.h:131:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 129| break; +# 130| } +# 131|-> return Result; +# 132| } +# 133| + +Error: USE_AFTER_FREE (CWE-416): +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/MemorySSA.h:564:7: freed_arg: "growOperands" frees "this". +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/MemorySSA.h:566:5: deref_arg: Calling "getNumOperands" dereferences freed pointer "this". +# 564| growOperands(); // Get more space! +# 565| // Initialize some new operands. +# 566|-> setNumHungOffUseOperands(getNumOperands() + 1); +# 567| setIncomingValue(getNumOperands() - 1, V); +# 568| setIncomingBlock(getNumOperands() - 1, BB); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/ScalarEvolution.h:1650:5: move: "CR" is moved (indicated by "std::move(CR)"). +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/ScalarEvolution.h:1652:7: use_after_move: "CR" is used after it has been already moved. +# 1650| auto Pair = Cache.try_emplace(S, std::move(CR)); +# 1651| if (!Pair.second) +# 1652|-> Pair.first->second = std::move(CR); +# 1653| return Pair.first->second; +# 1654| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/ValueLattice.h:220:7: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/ValueLattice.h:223:7: uninit_use: Using uninitialized value "Res". Field "Res" is uninitialized. +# 221| if (MayIncludeUndef) +# 222| Res.markUndef(); +# 223|-> return Res; +# 224| } +# 225| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/ValueLattice.h:232:5: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/ValueLattice.h:234:5: uninit_use: Using uninitialized value "Res". Field "Res" is uninitialized. +# 232| ValueLatticeElement Res; +# 233| Res.markOverdefined(); +# 234|-> return Res; +# 235| } +# 236| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/VectorUtils.h:71:5: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/llvm/include/llvm/Analysis/VectorUtils.h:78:5: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 76| // Other non-VFABI variants should be retrieved here. +# 77| +# 78|-> return Ret; +# 79| } +# 80| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/BinaryFormat/MsgPackDocument.h:309:5: var_decl: Declaring variable "N". +llvm-project-19.0.0.src/llvm/include/llvm/BinaryFormat/MsgPackDocument.h:310:5: uninit_use: Using uninitialized value "N". Field "N" is uninitialized. +# 308| DocNode getEmptyNode() { +# 309| auto N = DocNode(&KindAndDocs[size_t(Type::Empty)]); +# 310|-> return N; +# 311| } +# 312| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/BinaryFormat/MsgPackDocument.h:315:5: var_decl: Declaring variable "N". +llvm-project-19.0.0.src/llvm/include/llvm/BinaryFormat/MsgPackDocument.h:316:5: uninit_use: Using uninitialized value "N". Field "N" is uninitialized. +# 314| DocNode getNode() { +# 315| auto N = DocNode(&KindAndDocs[size_t(Type::Nil)]); +# 316|-> return N; +# 317| } +# 318| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/BinaryFormat/WasmTraits.h:24:5: var_decl: Declaring variable "Sig". +llvm-project-19.0.0.src/llvm/include/llvm/BinaryFormat/WasmTraits.h:26:5: uninit_use: Using uninitialized value "Sig". Field "Sig.Returns.InlineElts" is uninitialized. +# 24| wasm::WasmSignature Sig; +# 25| Sig.State = wasm::WasmSignature::Empty; +# 26|-> return Sig; +# 27| } +# 28| static wasm::WasmSignature getTombstoneKey() { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/BinaryFormat/WasmTraits.h:29:5: var_decl: Declaring variable "Sig". +llvm-project-19.0.0.src/llvm/include/llvm/BinaryFormat/WasmTraits.h:31:5: uninit_use: Using uninitialized value "Sig". Field "Sig.Returns.InlineElts" is uninitialized. +# 29| wasm::WasmSignature Sig; +# 30| Sig.State = wasm::WasmSignature::Tombstone; +# 31|-> return Sig; +# 32| } +# 33| static unsigned getHashValue(const wasm::WasmSignature &Sig) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Bitstream/BitstreamReader.h:336:5: var_decl: Declaring variable "E" without initializer. +llvm-project-19.0.0.src/llvm/include/llvm/Bitstream/BitstreamReader.h:336:39: uninit_use: Using uninitialized value "E". Field "E.ID" is uninitialized. +# 334| +# 335| static BitstreamEntry getError() { +# 336|-> BitstreamEntry E; E.Kind = Error; return E; +# 337| } +# 338| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Bitstream/BitstreamReader.h:340:5: var_decl: Declaring variable "E" without initializer. +llvm-project-19.0.0.src/llvm/include/llvm/Bitstream/BitstreamReader.h:340:42: uninit_use: Using uninitialized value "E". Field "E.ID" is uninitialized. +# 338| +# 339| static BitstreamEntry getEndBlock() { +# 340|-> BitstreamEntry E; E.Kind = EndBlock; return E; +# 341| } +# 342| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h:504:9: overrun-call: Overrunning callee's array of size 8 by passing argument "MMO->getMergedOrdering()" (which evaluates to 15) in call to "isAtLeastOrStrongerThan". +# 502| +# 503| for (const auto &MMO : State.MIs[InsnID]->memoperands()) +# 504|-> if (!isAtLeastOrStrongerThan(MMO->getMergedOrdering(), Ordering)) +# 505| if (handleReject() == RejectAndGiveUp) +# 506| return false; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:35:7: alloc_fn: Storage is returned from allocation function "createFastRegisterAllocator". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:35:7: leaked_storage: Failing to save or free storage allocated by "llvm::createFastRegisterAllocator()" leaks it. +# 33| return; +# 34| +# 35|-> (void) llvm::createFastRegisterAllocator(); +# 36| (void) llvm::createBasicRegisterAllocator(); +# 37| (void) llvm::createGreedyRegisterAllocator(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:36:7: alloc_fn: Storage is returned from allocation function "createBasicRegisterAllocator". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:36:7: leaked_storage: Failing to save or free storage allocated by "llvm::createBasicRegisterAllocator()" leaks it. +# 34| +# 35| (void) llvm::createFastRegisterAllocator(); +# 36|-> (void) llvm::createBasicRegisterAllocator(); +# 37| (void) llvm::createGreedyRegisterAllocator(); +# 38| (void) llvm::createDefaultPBQPRegisterAllocator(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:37:7: alloc_fn: Storage is returned from allocation function "createGreedyRegisterAllocator". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:37:7: leaked_storage: Failing to save or free storage allocated by "llvm::createGreedyRegisterAllocator()" leaks it. +# 35| (void) llvm::createFastRegisterAllocator(); +# 36| (void) llvm::createBasicRegisterAllocator(); +# 37|-> (void) llvm::createGreedyRegisterAllocator(); +# 38| (void) llvm::createDefaultPBQPRegisterAllocator(); +# 39| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:38:7: alloc_fn: Storage is returned from allocation function "createDefaultPBQPRegisterAllocator". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:38:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDefaultPBQPRegisterAllocator()" leaks it. +# 36| (void) llvm::createBasicRegisterAllocator(); +# 37| (void) llvm::createGreedyRegisterAllocator(); +# 38|-> (void) llvm::createDefaultPBQPRegisterAllocator(); +# 39| +# 40| (void)llvm::createBURRListDAGScheduler(nullptr, + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:46:7: alloc_fn: Storage is returned from allocation function "createFastDAGScheduler". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:46:7: leaked_storage: Failing to save or free storage allocated by "llvm::createFastDAGScheduler(NULL, Default)" leaks it. +# 44| (void)llvm::createHybridListDAGScheduler(nullptr, +# 45| llvm::CodeGenOptLevel::Default); +# 46|-> (void)llvm::createFastDAGScheduler(nullptr, +# 47| llvm::CodeGenOptLevel::Default); +# 48| (void)llvm::createDefaultScheduler(nullptr, + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:48:7: alloc_fn: Storage is returned from allocation function "createDefaultScheduler". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:48:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDefaultScheduler(NULL, Default)" leaks it. +# 46| (void)llvm::createFastDAGScheduler(nullptr, +# 47| llvm::CodeGenOptLevel::Default); +# 48|-> (void)llvm::createDefaultScheduler(nullptr, +# 49| llvm::CodeGenOptLevel::Default); +# 50| (void)llvm::createVLIWDAGScheduler(nullptr, + +Error: VIRTUAL_DTOR (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LiveInterval.h:157:9: no_virtual_dtor: Class "llvm::LiveRange" does not have a virtual destructor. +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LiveInterval.h:725:5: dtor_in_derived: Class "llvm::LiveInterval" has a destructor and a pointer to it is upcast to class "llvm::LiveRange" which doesn't have a virtual destructor. +/usr/include/c++/14/bits/stl_pair.h:882:4: upcast: Example 1: Casting from a pointer to "llvm::LiveInterval" to a pointer to "llvm::LiveRange" in "std::forward(__x)". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/LiveIntervals.h:418:7: delete: Example 1: Deletion of type "llvm::LiveRange". +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveIntervals.cpp:184:3: alloc: Example 1: Allocated an object of type "llvm::LiveInterval". +# 155| /// where a new value is defined or different values reach a CFG join a new +# 156| /// segment with a new value number is used. +# 157|-> class LiveRange { +# 158| public: +# 159| /// This represents a simple continuous liveness interval for a value. + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineInstr.h:171:7: new_object: Calling single-object form of 'new': "new (Allocator->Allocate(llvm::TrailingObjects::totalSizeToAlloc(MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol, HasHeapAllocMarker + HasPCSections + HasMMRAs, HasCFIType), 8UL)) llvm::MachineInstr::ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol, HasHeapAllocMarker, HasPCSections, HasCFIType, HasMMRAs)". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineInstr.h:171:7: assign: Assigning: "Result" = "new (Allocator->Allocate(llvm::TrailingObjects::totalSizeToAlloc(MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol, HasHeapAllocMarker + HasPCSections + HasMMRAs, HasCFIType), 8UL)) llvm::MachineInstr::ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol, HasHeapAllocMarker, HasPCSections, HasCFIType, HasMMRAs)". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineInstr.h:180:7: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 178| +# 179| // Copy the actual data into the trailing objects. +# 180|-> std::copy(MMOs.begin(), MMOs.end(), +# 181| Result->getTrailingObjects()); +# 182| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineMemOperand.h:292:5: overrun-call: Overrunning callee's array of size 8 by passing argument "this->getSuccessOrdering()" (which evaluates to 15) in call to "getMergedAtomicOrdering". +# 290| /// other than cmpxchg, this is equivalent to getSuccessOrdering().) +# 291| AtomicOrdering getMergedOrdering() const { +# 292|-> return getMergedAtomicOrdering(getSuccessOrdering(), getFailureOrdering()); +# 293| } +# 294| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:820:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:822:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 820| MachineOperand Op(MachineOperand::MO_Immediate); +# 821| Op.setImm(Val); +# 822|-> return Op; +# 823| } +# 824| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:826:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:828:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 826| MachineOperand Op(MachineOperand::MO_CImmediate); +# 827| Op.Contents.CI = CI; +# 828|-> return Op; +# 829| } +# 830| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:832:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:834:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 832| MachineOperand Op(MachineOperand::MO_FPImmediate); +# 833| Op.Contents.CFP = CFP; +# 834|-> return Op; +# 835| } +# 836| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:864:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:867:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 865| Op.setMBB(MBB); +# 866| Op.setTargetFlags(TargetFlags); +# 867|-> return Op; +# 868| } +# 869| static MachineOperand CreateFI(int Idx) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:870:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:872:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 870| MachineOperand Op(MachineOperand::MO_FrameIndex); +# 871| Op.setIndex(Idx); +# 872|-> return Op; +# 873| } +# 874| static MachineOperand CreateCPI(unsigned Idx, int Offset, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:876:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:880:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 878| Op.setOffset(Offset); +# 879| Op.setTargetFlags(TargetFlags); +# 880|-> return Op; +# 881| } +# 882| static MachineOperand CreateTargetIndex(unsigned Idx, int64_t Offset, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:884:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:888:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 886| Op.setOffset(Offset); +# 887| Op.setTargetFlags(TargetFlags); +# 888|-> return Op; +# 889| } +# 890| static MachineOperand CreateJTI(unsigned Idx, unsigned TargetFlags = 0) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:891:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:894:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 892| Op.setIndex(Idx); +# 893| Op.setTargetFlags(TargetFlags); +# 894|-> return Op; +# 895| } +# 896| static MachineOperand CreateGA(const GlobalValue *GV, int64_t Offset, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:898:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:902:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 900| Op.setOffset(Offset); +# 901| Op.setTargetFlags(TargetFlags); +# 902|-> return Op; +# 903| } +# 904| static MachineOperand CreateES(const char *SymName, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:906:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:910:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 908| Op.setOffset(0); // Offset is always 0. +# 909| Op.setTargetFlags(TargetFlags); +# 910|-> return Op; +# 911| } +# 912| static MachineOperand CreateBA(const BlockAddress *BA, int64_t Offset, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:914:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:918:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 916| Op.setOffset(Offset); +# 917| Op.setTargetFlags(TargetFlags); +# 918|-> return Op; +# 919| } +# 920| /// CreateRegMask - Creates a register mask operand referencing Mask. The + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:934:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:936:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 934| MachineOperand Op(MachineOperand::MO_RegisterMask); +# 935| Op.Contents.RegMask = Mask; +# 936|-> return Op; +# 937| } +# 938| static MachineOperand CreateRegLiveOut(const uint32_t *Mask) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:940:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:942:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 940| MachineOperand Op(MachineOperand::MO_RegisterLiveOut); +# 941| Op.Contents.RegMask = Mask; +# 942|-> return Op; +# 943| } +# 944| static MachineOperand CreateMetadata(const MDNode *Meta) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:945:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:947:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 945| MachineOperand Op(MachineOperand::MO_Metadata); +# 946| Op.Contents.MD = Meta; +# 947|-> return Op; +# 948| } +# 949| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:952:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:956:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 954| Op.setOffset(0); +# 955| Op.setTargetFlags(TargetFlags); +# 956|-> return Op; +# 957| } +# 958| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:960:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:963:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 961| Op.Contents.InstrRef.InstrIdx = InstrIdx; +# 962| Op.Contents.InstrRef.OpIdx = OpIdx; +# 963|-> return Op; +# 964| } +# 965| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:967:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:969:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 967| MachineOperand Op(MachineOperand::MO_CFIIndex); +# 968| Op.Contents.CFIIndex = CFIIndex; +# 969|-> return Op; +# 970| } +# 971| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:973:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:975:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 973| MachineOperand Op(MachineOperand::MO_IntrinsicID); +# 974| Op.Contents.IntrinsicID = ID; +# 975|-> return Op; +# 976| } +# 977| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:979:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:981:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 979| MachineOperand Op(MachineOperand::MO_Predicate); +# 980| Op.Contents.Pred = Pred; +# 981|-> return Op; +# 982| } +# 983| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:985:5: var_decl: Declaring variable "Op". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/MachineOperand.h:987:5: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 985| MachineOperand Op(MachineOperand::MO_ShuffleMask); +# 986| Op.Contents.ShuffleMask = Mask; +# 987|-> return Op; +# 988| } +# 989| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/RDFGraph.h:947:3: var_decl: Declaring variable "MM". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/RDFGraph.h:950:5: uninit_use: Using uninitialized value "MM". Field "MM.InlineElts" is uninitialized. +# 948| auto M = getFirstMember(G); +# 949| if (M.Id == 0) +# 950|-> return MM; +# 951| +# 952| while (M.Addr != this) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/RDFGraph.h:947:3: var_decl: Declaring variable "MM". +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/RDFGraph.h:957:3: uninit_use: Using uninitialized value "MM". Field "MM.InlineElts" is uninitialized. +# 955| M = G.addr(M.Addr->getNext()); +# 956| } +# 957|-> return MM; +# 958| } +# 959| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:667:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:667:3: use_after_move: "Op" is used after it has been already moved. +# 665| /// Allows to peek through optional extensions +# 666| template inline auto m_ZExtOrSelf(Opnd &&Op) { +# 667|-> return m_AnyOf(m_ZExt(std::forward(Op)), std::forward(Op)); +# 668| } +# 669| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:673:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:673:3: use_after_move: "Op" is used after it has been already moved. +# 671| /// Allows to peek through optional extensions +# 672| template inline auto m_SExtOrSelf(Opnd &&Op) { +# 673|-> return m_AnyOf(m_SExt(std::forward(Op)), std::forward(Op)); +# 674| } +# 675| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:680:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:680:3: use_after_move: "Op" is used after it has been already moved. +# 678| template +# 679| inline Or, Opnd> m_AExtOrSelf(Opnd &&Op) { +# 680|-> return Or, Opnd>(m_AnyExt(std::forward(Op)), +# 681| std::forward(Op)); +# 682| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:688:3: move: "Op" is moved (indicated by "std::forward(Op)"). +llvm-project-19.0.0.src/llvm/include/llvm/CodeGen/SDPatternMatch.h:688:3: use_after_move: "Op" is used after it has been already moved. +# 686| template +# 687| inline Or, Opnd> m_TruncOrSelf(Opnd &&Op) { +# 688|-> return Or, Opnd>(m_Trunc(std::forward(Op)), +# 689| std::forward(Op)); +# 690| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DWARFLinker/Utils.h:42:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/include/llvm/DWARFLinker/Utils.h:46:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 44| StringRef Base = sys::path::parent_path(SysRoot); +# 45| if (sys::path::filename(Base) != "SDKs") +# 46|-> return Result; +# 47| Base = sys::path::parent_path(Base); +# 48| Result = Base; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h:189:7: var_decl: Declaring variable "Field". +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h:194:9: uninit_use_in_call: Using uninitialized value "Field". Field "Field.Kind" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 192| if (auto EC = Mapper(*this, Field)) +# 193| return EC; +# 194|-> Items.push_back(Field); +# 195| } +# 196| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:49:5: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:50:5: uninit_use_in_call: Using uninitialized value "Record.Machine" when calling "deserializeAs". +# 48| template static Expected deserializeAs(CVSymbol Symbol) { +# 49| T Record(static_cast(Symbol.kind())); +# 50|-> if (auto EC = deserializeAs(Symbol, Record)) +# 51| return std::move(EC); +# 52| return Record; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:49:5: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h:52:5: uninit_use_in_call: Using uninitialized value "Record". Field "Record.Machine" is uninitialized when calling "Expected". +# 50| if (auto EC = deserializeAs(Symbol, Record)) +# 51| return std::move(EC); +# 52|-> return Record; +# 53| } +# 54| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/LogicalView/Core/LVOptions.h:504:9: overrun-local: Overrunning array of 16 bytes at byte offset 23 by dereferencing pointer "Iter->second". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 502| typename U::const_iterator Iter = Dispatch.find(Entry); +# 503| if (Iter != Dispatch.end()) +# 504|-> Request.push_back(Iter->second); +# 505| } +# 506| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/LogicalView/Core/LVStringPool.h:63:5: move: "Value" is moved (indicated by "std::move(Value)"). +llvm-project-19.0.0.src/llvm/include/llvm/DebugInfo/LogicalView/Core/LVStringPool.h:66:5: use_after_move: "Value" is used after it has been already moved. +# 64| StringTable.insert(Entry); +# 65| Entries.push_back(Entry); +# 66|-> return Value; +# 67| } +# 68| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h:507:9: move: "RetVal" is moved (indicated by "std::move(RetVal)"). +llvm-project-19.0.0.src/llvm/include/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h:509:7: use_after_move: "RetVal" is used after it has been already moved. +# 507| SDR(std::move(Err), std::move(RetVal)); +# 508| +# 509|-> SDR(Error::success(), std::move(RetVal)); +# 510| }; +# 511| + +Error: USE_AFTER_FREE (CWE-416): +llvm-project-19.0.0.src/llvm/include/llvm/IR/Instructions.h:3136:7: freed_arg: "growOperands" frees "this". +llvm-project-19.0.0.src/llvm/include/llvm/IR/Instructions.h:3138:5: deref_arg: Calling "getNumOperands" dereferences freed pointer "this". +# 3136| growOperands(); // Get more space! +# 3137| // Initialize some new operands. +# 3138|-> setNumHungOffUseOperands(getNumOperands() + 1); +# 3139| setIncomingValue(getNumOperands() - 1, V); +# 3140| setIncomingBlock(getNumOperands() - 1, BB); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/IR/Instructions.h:4641:5: var_decl: Declaring variable "IndirectDests". +llvm-project-19.0.0.src/llvm/include/llvm/IR/Instructions.h:4644:5: uninit_use: Using uninitialized value "IndirectDests". Field "IndirectDests.InlineElts" is uninitialized. +# 4642| for (unsigned i = 0, e = getNumIndirectDests(); i < e; ++i) +# 4643| IndirectDests.push_back(getIndirectDest(i)); +# 4644|-> return IndirectDests; +# 4645| } +# 4646| void setDefaultDest(BasicBlock *B) { + +Error: VIRTUAL_DTOR (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/IR/Metadata.h:382:7: no_virtual_dtor: Class "llvm::ReplaceableMetadataImpl" does not have a virtual destructor. +llvm-project-19.0.0.src/llvm/include/llvm/IR/DebugInfoMetadata.h:3830:3: dtor_in_derived: Class "llvm::DIArgList" has a destructor and a pointer to it is upcast to class "llvm::ReplaceableMetadataImpl" which doesn't have a virtual destructor. +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:457:5: upcast: Example 1: Casting from a pointer to "llvm::DIArgList" to a pointer to "llvm::ReplaceableMetadataImpl" in "ArgList". +/usr/include/c++/14/bits/unique_ptr.h:93:2: delete: Example 1: Deletion of type "llvm::ReplaceableMetadataImpl". +llvm-project-19.0.0.src/llvm/lib/IR/DebugInfoMetadata.cpp:2139:3: alloc: Example 1: Allocated an object of type "llvm::DIArgList". +# 380| /// use-lists and associated API for the three that support it ( +# 381| /// \a ValueAsMetadata, \a TempMDNode, and \a DIArgList). +# 382|-> class ReplaceableMetadataImpl { +# 383| friend class MetadataTracking; +# 384| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllIR.h:49:7: alloc_fn: Storage is returned from allocation function "createVerifierPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllIR.h:49:7: leaked_storage: Failing to save or free storage allocated by "llvm::createVerifierPass(true)" leaks it. +# 47| (void)new llvm::Module("", Context); +# 48| (void)new llvm::UnreachableInst(Context); +# 49|-> (void) llvm::createVerifierPass(); +# 50| } +# 51| } ForceVMCoreLinking; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:62:7: alloc_fn: Storage is returned from allocation function "createAtomicExpandLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:62:7: leaked_storage: Failing to save or free storage allocated by "llvm::createAtomicExpandLegacyPass()" leaks it. +# 60| return; +# 61| +# 62|-> (void)llvm::createAtomicExpandLegacyPass(); +# 63| (void) llvm::createBasicAAWrapperPass(); +# 64| (void) llvm::createSCEVAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:63:7: alloc_fn: Storage is returned from allocation function "createBasicAAWrapperPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:63:7: leaked_storage: Failing to save or free storage allocated by "llvm::createBasicAAWrapperPass()" leaks it. +# 61| +# 62| (void)llvm::createAtomicExpandLegacyPass(); +# 63|-> (void) llvm::createBasicAAWrapperPass(); +# 64| (void) llvm::createSCEVAAWrapperPass(); +# 65| (void) llvm::createTypeBasedAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:64:7: alloc_fn: Storage is returned from allocation function "createSCEVAAWrapperPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:64:7: leaked_storage: Failing to save or free storage allocated by "llvm::createSCEVAAWrapperPass()" leaks it. +# 62| (void)llvm::createAtomicExpandLegacyPass(); +# 63| (void) llvm::createBasicAAWrapperPass(); +# 64|-> (void) llvm::createSCEVAAWrapperPass(); +# 65| (void) llvm::createTypeBasedAAWrapperPass(); +# 66| (void) llvm::createScopedNoAliasAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:65:7: alloc_fn: Storage is returned from allocation function "createTypeBasedAAWrapperPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:65:7: leaked_storage: Failing to save or free storage allocated by "llvm::createTypeBasedAAWrapperPass()" leaks it. +# 63| (void) llvm::createBasicAAWrapperPass(); +# 64| (void) llvm::createSCEVAAWrapperPass(); +# 65|-> (void) llvm::createTypeBasedAAWrapperPass(); +# 66| (void) llvm::createScopedNoAliasAAWrapperPass(); +# 67| (void) llvm::createBreakCriticalEdgesPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:66:7: alloc_fn: Storage is returned from allocation function "createScopedNoAliasAAWrapperPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:66:7: leaked_storage: Failing to save or free storage allocated by "llvm::createScopedNoAliasAAWrapperPass()" leaks it. +# 64| (void) llvm::createSCEVAAWrapperPass(); +# 65| (void) llvm::createTypeBasedAAWrapperPass(); +# 66|-> (void) llvm::createScopedNoAliasAAWrapperPass(); +# 67| (void) llvm::createBreakCriticalEdgesPass(); +# 68| (void) llvm::createCallGraphDOTPrinterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:67:7: alloc_fn: Storage is returned from allocation function "createBreakCriticalEdgesPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:67:7: leaked_storage: Failing to save or free storage allocated by "llvm::createBreakCriticalEdgesPass()" leaks it. +# 65| (void) llvm::createTypeBasedAAWrapperPass(); +# 66| (void) llvm::createScopedNoAliasAAWrapperPass(); +# 67|-> (void) llvm::createBreakCriticalEdgesPass(); +# 68| (void) llvm::createCallGraphDOTPrinterPass(); +# 69| (void) llvm::createCallGraphViewerPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:68:7: alloc_fn: Storage is returned from allocation function "createCallGraphDOTPrinterPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:68:7: leaked_storage: Failing to save or free storage allocated by "llvm::createCallGraphDOTPrinterPass()" leaks it. +# 66| (void) llvm::createScopedNoAliasAAWrapperPass(); +# 67| (void) llvm::createBreakCriticalEdgesPass(); +# 68|-> (void) llvm::createCallGraphDOTPrinterPass(); +# 69| (void) llvm::createCallGraphViewerPass(); +# 70| (void) llvm::createCFGSimplificationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:69:7: alloc_fn: Storage is returned from allocation function "createCallGraphViewerPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:69:7: leaked_storage: Failing to save or free storage allocated by "llvm::createCallGraphViewerPass()" leaks it. +# 67| (void) llvm::createBreakCriticalEdgesPass(); +# 68| (void) llvm::createCallGraphDOTPrinterPass(); +# 69|-> (void) llvm::createCallGraphViewerPass(); +# 70| (void) llvm::createCFGSimplificationPass(); +# 71| (void) llvm::createStructurizeCFGPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:70:7: alloc_fn: Storage is returned from allocation function "createCFGSimplificationPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:70:7: leaked_storage: Failing to save or free storage allocated by "llvm::createCFGSimplificationPass(llvm::SimplifyCFGOptions(), std::function(std::nullptr_t()))" leaks it. +# 68| (void) llvm::createCallGraphDOTPrinterPass(); +# 69| (void) llvm::createCallGraphViewerPass(); +# 70|-> (void) llvm::createCFGSimplificationPass(); +# 71| (void) llvm::createStructurizeCFGPass(); +# 72| (void) llvm::createDeadArgEliminationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:71:7: alloc_fn: Storage is returned from allocation function "createStructurizeCFGPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:71:7: leaked_storage: Failing to save or free storage allocated by "llvm::createStructurizeCFGPass(false)" leaks it. +# 69| (void) llvm::createCallGraphViewerPass(); +# 70| (void) llvm::createCFGSimplificationPass(); +# 71|-> (void) llvm::createStructurizeCFGPass(); +# 72| (void) llvm::createDeadArgEliminationPass(); +# 73| (void) llvm::createDeadCodeEliminationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:72:7: alloc_fn: Storage is returned from allocation function "createDeadArgEliminationPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:72:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDeadArgEliminationPass()" leaks it. +# 70| (void) llvm::createCFGSimplificationPass(); +# 71| (void) llvm::createStructurizeCFGPass(); +# 72|-> (void) llvm::createDeadArgEliminationPass(); +# 73| (void) llvm::createDeadCodeEliminationPass(); +# 74| (void) llvm::createDependenceAnalysisWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:73:7: alloc_fn: Storage is returned from allocation function "createDeadCodeEliminationPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:73:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDeadCodeEliminationPass()" leaks it. +# 71| (void) llvm::createStructurizeCFGPass(); +# 72| (void) llvm::createDeadArgEliminationPass(); +# 73|-> (void) llvm::createDeadCodeEliminationPass(); +# 74| (void) llvm::createDependenceAnalysisWrapperPass(); +# 75| (void) llvm::createDomOnlyPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:74:7: alloc_fn: Storage is returned from allocation function "createDependenceAnalysisWrapperPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:74:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDependenceAnalysisWrapperPass()" leaks it. +# 72| (void) llvm::createDeadArgEliminationPass(); +# 73| (void) llvm::createDeadCodeEliminationPass(); +# 74|-> (void) llvm::createDependenceAnalysisWrapperPass(); +# 75| (void) llvm::createDomOnlyPrinterWrapperPassPass(); +# 76| (void) llvm::createDomPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:75:7: alloc_fn: Storage is returned from allocation function "createDomOnlyPrinterWrapperPassPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:75:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDomOnlyPrinterWrapperPassPass()" leaks it. +# 73| (void) llvm::createDeadCodeEliminationPass(); +# 74| (void) llvm::createDependenceAnalysisWrapperPass(); +# 75|-> (void) llvm::createDomOnlyPrinterWrapperPassPass(); +# 76| (void) llvm::createDomPrinterWrapperPassPass(); +# 77| (void) llvm::createDomOnlyViewerWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:76:7: alloc_fn: Storage is returned from allocation function "createDomPrinterWrapperPassPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:76:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDomPrinterWrapperPassPass()" leaks it. +# 74| (void) llvm::createDependenceAnalysisWrapperPass(); +# 75| (void) llvm::createDomOnlyPrinterWrapperPassPass(); +# 76|-> (void) llvm::createDomPrinterWrapperPassPass(); +# 77| (void) llvm::createDomOnlyViewerWrapperPassPass(); +# 78| (void) llvm::createDomViewerWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:77:7: alloc_fn: Storage is returned from allocation function "createDomOnlyViewerWrapperPassPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:77:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDomOnlyViewerWrapperPassPass()" leaks it. +# 75| (void) llvm::createDomOnlyPrinterWrapperPassPass(); +# 76| (void) llvm::createDomPrinterWrapperPassPass(); +# 77|-> (void) llvm::createDomOnlyViewerWrapperPassPass(); +# 78| (void) llvm::createDomViewerWrapperPassPass(); +# 79| (void) llvm::createAlwaysInlinerLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:78:7: alloc_fn: Storage is returned from allocation function "createDomViewerWrapperPassPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:78:7: leaked_storage: Failing to save or free storage allocated by "llvm::createDomViewerWrapperPassPass()" leaks it. +# 76| (void) llvm::createDomPrinterWrapperPassPass(); +# 77| (void) llvm::createDomOnlyViewerWrapperPassPass(); +# 78|-> (void) llvm::createDomViewerWrapperPassPass(); +# 79| (void) llvm::createAlwaysInlinerLegacyPass(); +# 80| (void) llvm::createGlobalsAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:79:7: alloc_fn: Storage is returned from allocation function "createAlwaysInlinerLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:79:7: leaked_storage: Failing to save or free storage allocated by "llvm::createAlwaysInlinerLegacyPass(true)" leaks it. +# 77| (void) llvm::createDomOnlyViewerWrapperPassPass(); +# 78| (void) llvm::createDomViewerWrapperPassPass(); +# 79|-> (void) llvm::createAlwaysInlinerLegacyPass(); +# 80| (void) llvm::createGlobalsAAWrapperPass(); +# 81| (void) llvm::createInstSimplifyLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:80:7: alloc_fn: Storage is returned from allocation function "createGlobalsAAWrapperPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:80:7: leaked_storage: Failing to save or free storage allocated by "llvm::createGlobalsAAWrapperPass()" leaks it. +# 78| (void) llvm::createDomViewerWrapperPassPass(); +# 79| (void) llvm::createAlwaysInlinerLegacyPass(); +# 80|-> (void) llvm::createGlobalsAAWrapperPass(); +# 81| (void) llvm::createInstSimplifyLegacyPass(); +# 82| (void) llvm::createInstructionCombiningPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:81:7: alloc_fn: Storage is returned from allocation function "createInstSimplifyLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:81:7: leaked_storage: Failing to save or free storage allocated by "llvm::createInstSimplifyLegacyPass()" leaks it. +# 79| (void) llvm::createAlwaysInlinerLegacyPass(); +# 80| (void) llvm::createGlobalsAAWrapperPass(); +# 81|-> (void) llvm::createInstSimplifyLegacyPass(); +# 82| (void) llvm::createInstructionCombiningPass(); +# 83| (void) llvm::createJMCInstrumenterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:82:7: alloc_fn: Storage is returned from allocation function "createInstructionCombiningPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:82:7: leaked_storage: Failing to save or free storage allocated by "llvm::createInstructionCombiningPass()" leaks it. +# 80| (void) llvm::createGlobalsAAWrapperPass(); +# 81| (void) llvm::createInstSimplifyLegacyPass(); +# 82|-> (void) llvm::createInstructionCombiningPass(); +# 83| (void) llvm::createJMCInstrumenterPass(); +# 84| (void) llvm::createKCFIPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:83:7: alloc_fn: Storage is returned from allocation function "createJMCInstrumenterPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:83:7: leaked_storage: Failing to save or free storage allocated by "llvm::createJMCInstrumenterPass()" leaks it. +# 81| (void) llvm::createInstSimplifyLegacyPass(); +# 82| (void) llvm::createInstructionCombiningPass(); +# 83|-> (void) llvm::createJMCInstrumenterPass(); +# 84| (void) llvm::createKCFIPass(); +# 85| (void) llvm::createLCSSAPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:84:7: alloc_fn: Storage is returned from allocation function "createKCFIPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:84:7: leaked_storage: Failing to save or free storage allocated by "llvm::createKCFIPass()" leaks it. +# 82| (void) llvm::createInstructionCombiningPass(); +# 83| (void) llvm::createJMCInstrumenterPass(); +# 84|-> (void) llvm::createKCFIPass(); +# 85| (void) llvm::createLCSSAPass(); +# 86| (void) llvm::createLICMPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:85:7: alloc_fn: Storage is returned from allocation function "createLCSSAPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:85:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLCSSAPass()" leaks it. +# 83| (void) llvm::createJMCInstrumenterPass(); +# 84| (void) llvm::createKCFIPass(); +# 85|-> (void) llvm::createLCSSAPass(); +# 86| (void) llvm::createLICMPass(); +# 87| (void) llvm::createLazyValueInfoPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:86:7: alloc_fn: Storage is returned from allocation function "createLICMPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:86:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLICMPass()" leaks it. +# 84| (void) llvm::createKCFIPass(); +# 85| (void) llvm::createLCSSAPass(); +# 86|-> (void) llvm::createLICMPass(); +# 87| (void) llvm::createLazyValueInfoPass(); +# 88| (void) llvm::createLoopExtractorPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:87:7: alloc_fn: Storage is returned from allocation function "createLazyValueInfoPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:87:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLazyValueInfoPass()" leaks it. +# 85| (void) llvm::createLCSSAPass(); +# 86| (void) llvm::createLICMPass(); +# 87|-> (void) llvm::createLazyValueInfoPass(); +# 88| (void) llvm::createLoopExtractorPass(); +# 89| (void) llvm::createLoopSimplifyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:88:7: alloc_fn: Storage is returned from allocation function "createLoopExtractorPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:88:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopExtractorPass()" leaks it. +# 86| (void) llvm::createLICMPass(); +# 87| (void) llvm::createLazyValueInfoPass(); +# 88|-> (void) llvm::createLoopExtractorPass(); +# 89| (void) llvm::createLoopSimplifyPass(); +# 90| (void) llvm::createLoopStrengthReducePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:89:7: alloc_fn: Storage is returned from allocation function "createLoopSimplifyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:89:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopSimplifyPass()" leaks it. +# 87| (void) llvm::createLazyValueInfoPass(); +# 88| (void) llvm::createLoopExtractorPass(); +# 89|-> (void) llvm::createLoopSimplifyPass(); +# 90| (void) llvm::createLoopStrengthReducePass(); +# 91| (void) llvm::createLoopUnrollPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:90:7: alloc_fn: Storage is returned from allocation function "createLoopStrengthReducePass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:90:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopStrengthReducePass()" leaks it. +# 88| (void) llvm::createLoopExtractorPass(); +# 89| (void) llvm::createLoopSimplifyPass(); +# 90|-> (void) llvm::createLoopStrengthReducePass(); +# 91| (void) llvm::createLoopUnrollPass(); +# 92| (void) llvm::createLowerConstantIntrinsicsPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:91:7: alloc_fn: Storage is returned from allocation function "createLoopUnrollPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:91:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopUnrollPass(2, false, false, -1, -1, -1, -1, -1, -1)" leaks it. +# 89| (void) llvm::createLoopSimplifyPass(); +# 90| (void) llvm::createLoopStrengthReducePass(); +# 91|-> (void) llvm::createLoopUnrollPass(); +# 92| (void) llvm::createLowerConstantIntrinsicsPass(); +# 93| (void) llvm::createLowerGlobalDtorsLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:92:7: alloc_fn: Storage is returned from allocation function "createLowerConstantIntrinsicsPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:92:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerConstantIntrinsicsPass()" leaks it. +# 90| (void) llvm::createLoopStrengthReducePass(); +# 91| (void) llvm::createLoopUnrollPass(); +# 92|-> (void) llvm::createLowerConstantIntrinsicsPass(); +# 93| (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 94| (void) llvm::createLowerInvokePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:93:7: alloc_fn: Storage is returned from allocation function "createLowerGlobalDtorsLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:93:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerGlobalDtorsLegacyPass()" leaks it. +# 91| (void) llvm::createLoopUnrollPass(); +# 92| (void) llvm::createLowerConstantIntrinsicsPass(); +# 93|-> (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 94| (void) llvm::createLowerInvokePass(); +# 95| (void) llvm::createLowerSwitchPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:94:7: alloc_fn: Storage is returned from allocation function "createLowerInvokePass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:94:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerInvokePass()" leaks it. +# 92| (void) llvm::createLowerConstantIntrinsicsPass(); +# 93| (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 94|-> (void) llvm::createLowerInvokePass(); +# 95| (void) llvm::createLowerSwitchPass(); +# 96| (void) llvm::createNaryReassociatePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:95:7: alloc_fn: Storage is returned from allocation function "createLowerSwitchPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:95:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerSwitchPass()" leaks it. +# 93| (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 94| (void) llvm::createLowerInvokePass(); +# 95|-> (void) llvm::createLowerSwitchPass(); +# 96| (void) llvm::createNaryReassociatePass(); +# 97| (void) llvm::createObjCARCContractPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:96:7: alloc_fn: Storage is returned from allocation function "createNaryReassociatePass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:96:7: leaked_storage: Failing to save or free storage allocated by "llvm::createNaryReassociatePass()" leaks it. +# 94| (void) llvm::createLowerInvokePass(); +# 95| (void) llvm::createLowerSwitchPass(); +# 96|-> (void) llvm::createNaryReassociatePass(); +# 97| (void) llvm::createObjCARCContractPass(); +# 98| (void) llvm::createPromoteMemoryToRegisterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:97:7: alloc_fn: Storage is returned from allocation function "createObjCARCContractPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:97:7: leaked_storage: Failing to save or free storage allocated by "llvm::createObjCARCContractPass()" leaks it. +# 95| (void) llvm::createLowerSwitchPass(); +# 96| (void) llvm::createNaryReassociatePass(); +# 97|-> (void) llvm::createObjCARCContractPass(); +# 98| (void) llvm::createPromoteMemoryToRegisterPass(); +# 99| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:98:7: alloc_fn: Storage is returned from allocation function "createPromoteMemoryToRegisterPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:98:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPromoteMemoryToRegisterPass()" leaks it. +# 96| (void) llvm::createNaryReassociatePass(); +# 97| (void) llvm::createObjCARCContractPass(); +# 98|-> (void) llvm::createPromoteMemoryToRegisterPass(); +# 99| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 100| (void)llvm::createPostDomPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:99:7: alloc_fn: Storage is returned from allocation function "createPostDomOnlyPrinterWrapperPassPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:99:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomOnlyPrinterWrapperPassPass()" leaks it. +# 97| (void) llvm::createObjCARCContractPass(); +# 98| (void) llvm::createPromoteMemoryToRegisterPass(); +# 99|-> (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 100| (void)llvm::createPostDomPrinterWrapperPassPass(); +# 101| (void)llvm::createPostDomOnlyViewerWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:100:7: alloc_fn: Storage is returned from allocation function "createPostDomPrinterWrapperPassPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:100:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomPrinterWrapperPassPass()" leaks it. +# 98| (void) llvm::createPromoteMemoryToRegisterPass(); +# 99| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 100|-> (void)llvm::createPostDomPrinterWrapperPassPass(); +# 101| (void)llvm::createPostDomOnlyViewerWrapperPassPass(); +# 102| (void)llvm::createPostDomViewerWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:101:7: alloc_fn: Storage is returned from allocation function "createPostDomOnlyViewerWrapperPassPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:101:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomOnlyViewerWrapperPassPass()" leaks it. +# 99| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 100| (void)llvm::createPostDomPrinterWrapperPassPass(); +# 101|-> (void)llvm::createPostDomOnlyViewerWrapperPassPass(); +# 102| (void)llvm::createPostDomViewerWrapperPassPass(); +# 103| (void) llvm::createReassociatePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:102:7: alloc_fn: Storage is returned from allocation function "createPostDomViewerWrapperPassPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:102:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomViewerWrapperPassPass()" leaks it. +# 100| (void)llvm::createPostDomPrinterWrapperPassPass(); +# 101| (void)llvm::createPostDomOnlyViewerWrapperPassPass(); +# 102|-> (void)llvm::createPostDomViewerWrapperPassPass(); +# 103| (void) llvm::createReassociatePass(); +# 104| (void) llvm::createRegionInfoPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:103:7: alloc_fn: Storage is returned from allocation function "createReassociatePass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:103:7: leaked_storage: Failing to save or free storage allocated by "llvm::createReassociatePass()" leaks it. +# 101| (void)llvm::createPostDomOnlyViewerWrapperPassPass(); +# 102| (void)llvm::createPostDomViewerWrapperPassPass(); +# 103|-> (void) llvm::createReassociatePass(); +# 104| (void) llvm::createRegionInfoPass(); +# 105| (void) llvm::createRegionOnlyPrinterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:104:7: alloc_fn: Storage is returned from allocation function "createRegionInfoPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:104:7: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionInfoPass()" leaks it. +# 102| (void)llvm::createPostDomViewerWrapperPassPass(); +# 103| (void) llvm::createReassociatePass(); +# 104|-> (void) llvm::createRegionInfoPass(); +# 105| (void) llvm::createRegionOnlyPrinterPass(); +# 106| (void) llvm::createRegionOnlyViewerPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:105:7: alloc_fn: Storage is returned from allocation function "createRegionOnlyPrinterPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:105:7: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionOnlyPrinterPass()" leaks it. +# 103| (void) llvm::createReassociatePass(); +# 104| (void) llvm::createRegionInfoPass(); +# 105|-> (void) llvm::createRegionOnlyPrinterPass(); +# 106| (void) llvm::createRegionOnlyViewerPass(); +# 107| (void) llvm::createRegionPrinterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:106:7: alloc_fn: Storage is returned from allocation function "createRegionOnlyViewerPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:106:7: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionOnlyViewerPass()" leaks it. +# 104| (void) llvm::createRegionInfoPass(); +# 105| (void) llvm::createRegionOnlyPrinterPass(); +# 106|-> (void) llvm::createRegionOnlyViewerPass(); +# 107| (void) llvm::createRegionPrinterPass(); +# 108| (void) llvm::createRegionViewerPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:107:7: alloc_fn: Storage is returned from allocation function "createRegionPrinterPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:107:7: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionPrinterPass()" leaks it. +# 105| (void) llvm::createRegionOnlyPrinterPass(); +# 106| (void) llvm::createRegionOnlyViewerPass(); +# 107|-> (void) llvm::createRegionPrinterPass(); +# 108| (void) llvm::createRegionViewerPass(); +# 109| (void) llvm::createSafeStackPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:108:7: alloc_fn: Storage is returned from allocation function "createRegionViewerPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:108:7: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionViewerPass()" leaks it. +# 106| (void) llvm::createRegionOnlyViewerPass(); +# 107| (void) llvm::createRegionPrinterPass(); +# 108|-> (void) llvm::createRegionViewerPass(); +# 109| (void) llvm::createSafeStackPass(); +# 110| (void) llvm::createSROAPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:109:7: alloc_fn: Storage is returned from allocation function "createSafeStackPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:109:7: leaked_storage: Failing to save or free storage allocated by "llvm::createSafeStackPass()" leaks it. +# 107| (void) llvm::createRegionPrinterPass(); +# 108| (void) llvm::createRegionViewerPass(); +# 109|-> (void) llvm::createSafeStackPass(); +# 110| (void) llvm::createSROAPass(); +# 111| (void) llvm::createSingleLoopExtractorPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:110:7: alloc_fn: Storage is returned from allocation function "createSROAPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:110:7: leaked_storage: Failing to save or free storage allocated by "llvm::createSROAPass(true)" leaks it. +# 108| (void) llvm::createRegionViewerPass(); +# 109| (void) llvm::createSafeStackPass(); +# 110|-> (void) llvm::createSROAPass(); +# 111| (void) llvm::createSingleLoopExtractorPass(); +# 112| (void) llvm::createTailCallEliminationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:111:7: alloc_fn: Storage is returned from allocation function "createSingleLoopExtractorPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:111:7: leaked_storage: Failing to save or free storage allocated by "llvm::createSingleLoopExtractorPass()" leaks it. +# 109| (void) llvm::createSafeStackPass(); +# 110| (void) llvm::createSROAPass(); +# 111|-> (void) llvm::createSingleLoopExtractorPass(); +# 112| (void) llvm::createTailCallEliminationPass(); +# 113| (void)llvm::createTLSVariableHoistPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:112:7: alloc_fn: Storage is returned from allocation function "createTailCallEliminationPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:112:7: leaked_storage: Failing to save or free storage allocated by "llvm::createTailCallEliminationPass()" leaks it. +# 110| (void) llvm::createSROAPass(); +# 111| (void) llvm::createSingleLoopExtractorPass(); +# 112|-> (void) llvm::createTailCallEliminationPass(); +# 113| (void)llvm::createTLSVariableHoistPass(); +# 114| (void) llvm::createConstantHoistingPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:113:7: alloc_fn: Storage is returned from allocation function "createTLSVariableHoistPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:113:7: leaked_storage: Failing to save or free storage allocated by "llvm::createTLSVariableHoistPass()" leaks it. +# 111| (void) llvm::createSingleLoopExtractorPass(); +# 112| (void) llvm::createTailCallEliminationPass(); +# 113|-> (void)llvm::createTLSVariableHoistPass(); +# 114| (void) llvm::createConstantHoistingPass(); +# 115| (void)llvm::createCodeGenPrepareLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:114:7: alloc_fn: Storage is returned from allocation function "createConstantHoistingPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:114:7: leaked_storage: Failing to save or free storage allocated by "llvm::createConstantHoistingPass()" leaks it. +# 112| (void) llvm::createTailCallEliminationPass(); +# 113| (void)llvm::createTLSVariableHoistPass(); +# 114|-> (void) llvm::createConstantHoistingPass(); +# 115| (void)llvm::createCodeGenPrepareLegacyPass(); +# 116| (void) llvm::createEarlyCSEPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:115:7: alloc_fn: Storage is returned from allocation function "createCodeGenPrepareLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:115:7: leaked_storage: Failing to save or free storage allocated by "llvm::createCodeGenPrepareLegacyPass()" leaks it. +# 113| (void)llvm::createTLSVariableHoistPass(); +# 114| (void) llvm::createConstantHoistingPass(); +# 115|-> (void)llvm::createCodeGenPrepareLegacyPass(); +# 116| (void) llvm::createEarlyCSEPass(); +# 117| (void) llvm::createGVNPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:116:7: alloc_fn: Storage is returned from allocation function "createEarlyCSEPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:116:7: leaked_storage: Failing to save or free storage allocated by "llvm::createEarlyCSEPass(false)" leaks it. +# 114| (void) llvm::createConstantHoistingPass(); +# 115| (void)llvm::createCodeGenPrepareLegacyPass(); +# 116|-> (void) llvm::createEarlyCSEPass(); +# 117| (void) llvm::createGVNPass(); +# 118| (void) llvm::createPostDomTree(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:117:7: alloc_fn: Storage is returned from allocation function "createGVNPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:117:7: leaked_storage: Failing to save or free storage allocated by "llvm::createGVNPass(false)" leaks it. +# 115| (void)llvm::createCodeGenPrepareLegacyPass(); +# 116| (void) llvm::createEarlyCSEPass(); +# 117|-> (void) llvm::createGVNPass(); +# 118| (void) llvm::createPostDomTree(); +# 119| (void) llvm::createMergeICmpsLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:118:7: alloc_fn: Storage is returned from allocation function "createPostDomTree". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:118:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomTree()" leaks it. +# 116| (void) llvm::createEarlyCSEPass(); +# 117| (void) llvm::createGVNPass(); +# 118|-> (void) llvm::createPostDomTree(); +# 119| (void) llvm::createMergeICmpsLegacyPass(); +# 120| (void) llvm::createExpandLargeDivRemPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:119:7: alloc_fn: Storage is returned from allocation function "createMergeICmpsLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:119:7: leaked_storage: Failing to save or free storage allocated by "llvm::createMergeICmpsLegacyPass()" leaks it. +# 117| (void) llvm::createGVNPass(); +# 118| (void) llvm::createPostDomTree(); +# 119|-> (void) llvm::createMergeICmpsLegacyPass(); +# 120| (void) llvm::createExpandLargeDivRemPass(); +# 121| (void)llvm::createExpandMemCmpLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:120:7: alloc_fn: Storage is returned from allocation function "createExpandLargeDivRemPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:120:7: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandLargeDivRemPass()" leaks it. +# 118| (void) llvm::createPostDomTree(); +# 119| (void) llvm::createMergeICmpsLegacyPass(); +# 120|-> (void) llvm::createExpandLargeDivRemPass(); +# 121| (void)llvm::createExpandMemCmpLegacyPass(); +# 122| (void) llvm::createExpandVectorPredicationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:121:7: alloc_fn: Storage is returned from allocation function "createExpandMemCmpLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:121:7: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandMemCmpLegacyPass()" leaks it. +# 119| (void) llvm::createMergeICmpsLegacyPass(); +# 120| (void) llvm::createExpandLargeDivRemPass(); +# 121|-> (void)llvm::createExpandMemCmpLegacyPass(); +# 122| (void) llvm::createExpandVectorPredicationPass(); +# 123| std::string buf; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:122:7: alloc_fn: Storage is returned from allocation function "createExpandVectorPredicationPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:122:7: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandVectorPredicationPass()" leaks it. +# 120| (void) llvm::createExpandLargeDivRemPass(); +# 121| (void)llvm::createExpandMemCmpLegacyPass(); +# 122|-> (void) llvm::createExpandVectorPredicationPass(); +# 123| std::string buf; +# 124| llvm::raw_string_ostream os(buf); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:125:7: alloc_fn: Storage is returned from allocation function "createPrintModulePass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:125:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPrintModulePass(os, std::string const("", std::allocator()), false)" leaks it. +# 123| std::string buf; +# 124| llvm::raw_string_ostream os(buf); +# 125|-> (void) llvm::createPrintModulePass(os); +# 126| (void) llvm::createPrintFunctionPass(os); +# 127| (void) llvm::createSinkingPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:126:7: alloc_fn: Storage is returned from allocation function "createPrintFunctionPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:126:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPrintFunctionPass(os, std::string const("", std::allocator()))" leaks it. +# 124| llvm::raw_string_ostream os(buf); +# 125| (void) llvm::createPrintModulePass(os); +# 126|-> (void) llvm::createPrintFunctionPass(os); +# 127| (void) llvm::createSinkingPass(); +# 128| (void) llvm::createLowerAtomicPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:127:7: alloc_fn: Storage is returned from allocation function "createSinkingPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:127:7: leaked_storage: Failing to save or free storage allocated by "llvm::createSinkingPass()" leaks it. +# 125| (void) llvm::createPrintModulePass(os); +# 126| (void) llvm::createPrintFunctionPass(os); +# 127|-> (void) llvm::createSinkingPass(); +# 128| (void) llvm::createLowerAtomicPass(); +# 129| (void) llvm::createLoadStoreVectorizerPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:128:7: alloc_fn: Storage is returned from allocation function "createLowerAtomicPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:128:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerAtomicPass()" leaks it. +# 126| (void) llvm::createPrintFunctionPass(os); +# 127| (void) llvm::createSinkingPass(); +# 128|-> (void) llvm::createLowerAtomicPass(); +# 129| (void) llvm::createLoadStoreVectorizerPass(); +# 130| (void) llvm::createPartiallyInlineLibCallsPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:129:7: alloc_fn: Storage is returned from allocation function "createLoadStoreVectorizerPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:129:7: leaked_storage: Failing to save or free storage allocated by "llvm::createLoadStoreVectorizerPass()" leaks it. +# 127| (void) llvm::createSinkingPass(); +# 128| (void) llvm::createLowerAtomicPass(); +# 129|-> (void) llvm::createLoadStoreVectorizerPass(); +# 130| (void) llvm::createPartiallyInlineLibCallsPass(); +# 131| (void) llvm::createSeparateConstOffsetFromGEPPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:130:7: alloc_fn: Storage is returned from allocation function "createPartiallyInlineLibCallsPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:130:7: leaked_storage: Failing to save or free storage allocated by "llvm::createPartiallyInlineLibCallsPass()" leaks it. +# 128| (void) llvm::createLowerAtomicPass(); +# 129| (void) llvm::createLoadStoreVectorizerPass(); +# 130|-> (void) llvm::createPartiallyInlineLibCallsPass(); +# 131| (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 132| (void) llvm::createSpeculativeExecutionPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:131:7: alloc_fn: Storage is returned from allocation function "createSeparateConstOffsetFromGEPPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:131:7: leaked_storage: Failing to save or free storage allocated by "llvm::createSeparateConstOffsetFromGEPPass(false)" leaks it. +# 129| (void) llvm::createLoadStoreVectorizerPass(); +# 130| (void) llvm::createPartiallyInlineLibCallsPass(); +# 131|-> (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 132| (void) llvm::createSpeculativeExecutionPass(); +# 133| (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:132:7: alloc_fn: Storage is returned from allocation function "createSpeculativeExecutionPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:132:7: leaked_storage: Failing to save or free storage allocated by "llvm::createSpeculativeExecutionPass()" leaks it. +# 130| (void) llvm::createPartiallyInlineLibCallsPass(); +# 131| (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 132|-> (void) llvm::createSpeculativeExecutionPass(); +# 133| (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); +# 134| (void) llvm::createStraightLineStrengthReducePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:133:7: alloc_fn: Storage is returned from allocation function "createSpeculativeExecutionIfHasBranchDivergencePass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:133:7: leaked_storage: Failing to save or free storage allocated by "llvm::createSpeculativeExecutionIfHasBranchDivergencePass()" leaks it. +# 131| (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 132| (void) llvm::createSpeculativeExecutionPass(); +# 133|-> (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); +# 134| (void) llvm::createStraightLineStrengthReducePass(); +# 135| (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:134:7: alloc_fn: Storage is returned from allocation function "createStraightLineStrengthReducePass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:134:7: leaked_storage: Failing to save or free storage allocated by "llvm::createStraightLineStrengthReducePass()" leaks it. +# 132| (void) llvm::createSpeculativeExecutionPass(); +# 133| (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); +# 134|-> (void) llvm::createStraightLineStrengthReducePass(); +# 135| (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); +# 136| (void) llvm::createHardwareLoopsLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:135:7: alloc_fn: Storage is returned from allocation function "createScalarizeMaskedMemIntrinLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:135:7: leaked_storage: Failing to save or free storage allocated by "llvm::createScalarizeMaskedMemIntrinLegacyPass()" leaks it. +# 133| (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); +# 134| (void) llvm::createStraightLineStrengthReducePass(); +# 135|-> (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); +# 136| (void) llvm::createHardwareLoopsLegacyPass(); +# 137| (void) llvm::createUnifyLoopExitsPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:136:7: alloc_fn: Storage is returned from allocation function "createHardwareLoopsLegacyPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:136:7: leaked_storage: Failing to save or free storage allocated by "llvm::createHardwareLoopsLegacyPass()" leaks it. +# 134| (void) llvm::createStraightLineStrengthReducePass(); +# 135| (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); +# 136|-> (void) llvm::createHardwareLoopsLegacyPass(); +# 137| (void) llvm::createUnifyLoopExitsPass(); +# 138| (void) llvm::createFixIrreduciblePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:137:7: alloc_fn: Storage is returned from allocation function "createUnifyLoopExitsPass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:137:7: leaked_storage: Failing to save or free storage allocated by "llvm::createUnifyLoopExitsPass()" leaks it. +# 135| (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); +# 136| (void) llvm::createHardwareLoopsLegacyPass(); +# 137|-> (void) llvm::createUnifyLoopExitsPass(); +# 138| (void) llvm::createFixIrreduciblePass(); +# 139| (void)llvm::createSelectOptimizePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:138:7: alloc_fn: Storage is returned from allocation function "createFixIrreduciblePass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:138:7: leaked_storage: Failing to save or free storage allocated by "llvm::createFixIrreduciblePass()" leaks it. +# 136| (void) llvm::createHardwareLoopsLegacyPass(); +# 137| (void) llvm::createUnifyLoopExitsPass(); +# 138|-> (void) llvm::createFixIrreduciblePass(); +# 139| (void)llvm::createSelectOptimizePass(); +# 140| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:139:7: alloc_fn: Storage is returned from allocation function "createSelectOptimizePass". +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:139:7: leaked_storage: Failing to save or free storage allocated by "llvm::createSelectOptimizePass()" leaks it. +# 137| (void) llvm::createUnifyLoopExitsPass(); +# 138| (void) llvm::createFixIrreduciblePass(); +# 139|-> (void)llvm::createSelectOptimizePass(); +# 140| +# 141| (void)new llvm::ScalarEvolutionWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:141:7: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/include/llvm/LinkAllPasses.h:141:7: leaked_storage: Failing to save or free storage allocated by "new llvm::ScalarEvolutionWrapperPass" leaks it. +# 139| (void)llvm::createSelectOptimizePass(); +# 140| +# 141|-> (void)new llvm::ScalarEvolutionWrapperPass(); +# 142| llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly(); +# 143| llvm::RGPassManager RGM; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:749:5: var_decl: Declaring variable "CS". +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:758:5: uninit_use: Using uninitialized value "CS". Field "CS.InlineElts" is uninitialized. +# 756| CS.push_back(F); +# 757| } +# 758|-> return CS; +# 759| } +# 760| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:808:5: var_decl: Declaring variable "Frames". +llvm-project-19.0.0.src/llvm/include/llvm/ProfileData/MemProf.h:819:5: uninit_use: Using uninitialized value "Frames". Field "Frames.InlineElts" is uninitialized. +# 817| Frames.push_back(FrameIdToFrame(Id)); +# 818| } +# 819|-> return Frames; +# 820| } +# 821| }; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/Support/Errno.h:37:5: open_fn: Returning handle opened by "operator ()". +llvm-project-19.0.0.src/llvm/include/llvm/Support/Errno.h:37:5: var_assign: Assigning: "Res" = handle returned from "F()". +llvm-project-19.0.0.src/llvm/include/llvm/Support/Errno.h:37:5: overwrite_var: Overwriting handle "Res" in "Res = F()" leaks the handle. +# 35| do { +# 36| errno = 0; +# 37|-> Res = F(As...); +# 38| } while (Res == Fail && errno == EINTR); +# 39| return Res; + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Support/Error.h:957:7: move: "Hs" is moved (indicated by "std::forward(Hs)"). +llvm-project-19.0.0.src/llvm/include/llvm/Support/Error.h:957:7: use_after_move: "Hs" is used after it has been already moved. +# 955| Error R; +# 956| for (auto &P : List.Payloads) +# 957|-> R = ErrorList::join( +# 958| std::move(R), +# 959| handleErrorImpl(std::move(P), std::forward(Hs)...)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Support/FormatVariadic.h:117:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/include/llvm/Support/FormatVariadic.h:120:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 118| raw_svector_ostream Stream(Result); +# 119| Stream << *this; +# 120|-> return Result; +# 121| } +# 122| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Support/GenericDomTreeConstruction.h:349:5: var_decl: Declaring variable "Roots". +llvm-project-19.0.0.src/llvm/include/llvm/Support/GenericDomTreeConstruction.h:354:7: uninit_use: Using uninitialized value "Roots". Field "Roots.InlineElts" is uninitialized. +# 352| if (!IsPostDom) { +# 353| Roots.push_back(GetEntryNode(DT)); +# 354|-> return Roots; +# 355| } +# 356| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Support/GenericDomTreeConstruction.h:349:5: var_decl: Declaring variable "Roots". +llvm-project-19.0.0.src/llvm/include/llvm/Support/GenericDomTreeConstruction.h:492:5: uninit_use: Using uninitialized value "Roots". Field "Roots.InlineElts" is uninitialized. +# 490| LLVM_DEBUG(dbgs() << "\n"); +# 491| +# 492|-> return Roots; +# 493| } +# 494| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Support/GenericLoopInfo.h:361:5: var_decl: Declaring variable "PreOrderLoops". +llvm-project-19.0.0.src/llvm/include/llvm/Support/GenericLoopInfo.h:365:5: uninit_use: Using uninitialized value "PreOrderLoops". Field "PreOrderLoops.InlineElts" is uninitialized. +# 363| PreOrderLoops.push_back(CurLoop); +# 364| getInnerLoopsInPreorder(*CurLoop, PreOrderLoops); +# 365|-> return PreOrderLoops; +# 366| } +# 367| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/include/llvm/Support/thread.h:134:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/include/llvm/Support/thread.h:134:5: leaked_storage: Ignoring storage allocated by "Callee.release()" leaks it. +# 132| StackSizeInBytes); +# 133| if (Thread != native_handle_type()) +# 134|-> Callee.release(); +# 135| } +# 136| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h:218:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h:234:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 232| } +# 233| +# 234|-> return Result; +# 235| } +# 236| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:565:3: var_decl: Declaring variable "Decomposed". +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:579:7: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 577| } +# 578| Decomposed.Base = V; +# 579|-> return Decomposed; +# 580| } +# 581| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:565:3: var_decl: Declaring variable "Decomposed". +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:613:7: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 611| +# 612| Decomposed.Base = V; +# 613|-> return Decomposed; +# 614| } +# 615| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:565:3: var_decl: Declaring variable "Decomposed". +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:654:11: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 652| if (AllocTypeSize.isScalable()) { +# 653| Decomposed.Base = V; +# 654|-> return Decomposed; +# 655| } +# 656| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:565:3: var_decl: Declaring variable "Decomposed". +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:665:9: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 663| if (AllocTypeSize.isScalable()) { +# 664| Decomposed.Base = V; +# 665|-> return Decomposed; +# 666| } +# 667| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:565:3: var_decl: Declaring variable "Decomposed". +llvm-project-19.0.0.src/llvm/lib/Analysis/BasicAliasAnalysis.cpp:721:3: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 719| Decomposed.Base = V; +# 720| SearchLimitReached++; +# 721|-> return Decomposed; +# 722| } +# 723| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/CGSCCPassManager.cpp:377:5: var_decl: Declaring variable "CallCounts". +llvm-project-19.0.0.src/llvm/lib/Analysis/CGSCCPassManager.cpp:394:5: uninit_use: Using uninitialized value "CallCounts". Field "CallCounts.NumEntries" is uninitialized. +# 392| } +# 393| +# 394|-> return CallCounts; +# 395| }; +# 396| + +Error: USE_AFTER_FREE (CWE-416): +llvm-project-19.0.0.src/llvm/lib/Analysis/CallGraphSCCPass.cpp:638:5: assign: Assigning: "P" = "CGP". +llvm-project-19.0.0.src/llvm/lib/Analysis/CallGraphSCCPass.cpp:639:5: freed_arg: "schedulePass" frees "P". +llvm-project-19.0.0.src/llvm/lib/Analysis/CallGraphSCCPass.cpp:642:5: deref_arg: Calling "push" dereferences freed pointer "CGP". +# 640| +# 641| // [4] Push new manager into PMS +# 642|-> PMS.push(CGP); +# 643| } +# 644| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:1737:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(V)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:1737:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1735| } +# 1736| if (Ty->isDoubleTy()) +# 1737|-> return ConstantFP::get(Ty->getContext(), APFloat(V)); +# 1738| llvm_unreachable("Can only constant fold half/float/double"); +# 1739| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2140:7: var_decl: Declaring variable "AlmostOne". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2141:7: uninit_use_in_call: Using uninitialized value "AlmostOne.U" when calling "next". +# 2139| APFloat FractU(U - FloorU); +# 2140| APFloat AlmostOne(U.getSemantics(), 1); +# 2141|-> AlmostOne.next(/*nextDown*/ true); +# 2142| return ConstantFP::get(Ty->getContext(), minimum(FractU, AlmostOne)); +# 2143| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2218:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2.)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2218:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2216| case Intrinsic::exp2: +# 2217| // Fold exp2(x) as pow(2, x), in case the host lacks a C99 library. +# 2218|-> return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); +# 2219| case Intrinsic::exp10: +# 2220| // Fold exp10(x) as pow(10, x), in case the host lacks a C99 library. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2221:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2221:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2219| case Intrinsic::exp10: +# 2220| // Fold exp10(x) as pow(10, x), in case the host lacks a C99 library. +# 2221|-> return ConstantFoldBinaryFP(pow, APFloat(10.0), APF, Ty); +# 2222| case Intrinsic::sin: +# 2223| return ConstantFoldFP(sin, APF, Ty); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2313:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2.)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:2313:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2311| if (TLI->has(Func)) +# 2312| // Fold exp2(x) as pow(2, x), in case the host lacks a C99 library. +# 2313|-> return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); +# 2314| break; +# 2315| case LibFunc_fabs: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3077:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0f)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3077:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3075| // It's tempting to just return C3 here, but that would give the +# 3076| // wrong result if C3 was -0.0. +# 3077|-> return ConstantFP::get(Ty->getContext(), APFloat(0.0f) + C3); +# 3078| } +# 3079| [[fallthrough]]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3474:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(709.)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3474:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3472| // FIXME: These boundaries are slightly conservative. +# 3473| if (OpC->getType()->isDoubleTy()) +# 3474|-> return !(Op < APFloat(-745.0) || Op > APFloat(709.0)); +# 3475| if (OpC->getType()->isFloatTy()) +# 3476| return !(Op < APFloat(-103.0f) || Op > APFloat(88.0f)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3476:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(88f)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3476:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3474| return !(Op < APFloat(-745.0) || Op > APFloat(709.0)); +# 3475| if (OpC->getType()->isFloatTy()) +# 3476|-> return !(Op < APFloat(-103.0f) || Op > APFloat(88.0f)); +# 3477| break; +# 3478| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3484:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1023.)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3484:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3482| // FIXME: These boundaries are slightly conservative. +# 3483| if (OpC->getType()->isDoubleTy()) +# 3484|-> return !(Op < APFloat(-1074.0) || Op > APFloat(1023.0)); +# 3485| if (OpC->getType()->isFloatTy()) +# 3486| return !(Op < APFloat(-149.0f) || Op > APFloat(127.0f)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3486:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(127f)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3486:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3484| return !(Op < APFloat(-1074.0) || Op > APFloat(1023.0)); +# 3485| if (OpC->getType()->isFloatTy()) +# 3486|-> return !(Op < APFloat(-149.0f) || Op > APFloat(127.0f)); +# 3487| break; +# 3488| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3532:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(710.)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3532:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3530| // FIXME: These boundaries are slightly conservative. +# 3531| if (OpC->getType()->isDoubleTy()) +# 3532|-> return !(Op < APFloat(-710.0) || Op > APFloat(710.0)); +# 3533| if (OpC->getType()->isFloatTy()) +# 3534| return !(Op < APFloat(-89.0f) || Op > APFloat(89.0f)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3534:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(89f)". +llvm-project-19.0.0.src/llvm/lib/Analysis/ConstantFolding.cpp:3534:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3532| return !(Op < APFloat(-710.0) || Op > APFloat(710.0)); +# 3533| if (OpC->getType()->isFloatTy()) +# 3534|-> return !(Op < APFloat(-89.0f) || Op > APFloat(89.0f)); +# 3535| break; +# 3536| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/DDG.cpp:310:3: var_decl: Declaring variable "DI". +llvm-project-19.0.0.src/llvm/lib/Analysis/DDG.cpp:311:3: uninit_use_in_call: Using uninitialized value "DI". Field "DI.CommonLevels" is uninitialized when calling "make_unique". +# 309| Function *F = L.getHeader()->getParent(); +# 310| DependenceInfo DI(F, &AR.AA, &AR.SE, &AR.LI); +# 311|-> return std::make_unique(L, AR.LI, DI); +# 312| } +# 313| AnalysisKey DDGAnalysis::Key; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/IRSimilarityIdentifier.cpp:1030:5: var_decl: Declaring variable "ResultGVN" without initializer. +llvm-project-19.0.0.src/llvm/lib/Analysis/IRSimilarityIdentifier.cpp:1062:5: uninit_use_in_call: Using uninitialized value "ResultGVN" when calling "insert". +# 1060| +# 1061| // Whatever GVN is found, we mark it as used. +# 1062|-> UsedGVNs.insert(ResultGVN); +# 1063| +# 1064| unsigned CanonNum = *SourceCand.getCanonicalNum(ResultGVN); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyCallGraph.cpp:1005:3: var_decl: Declaring variable "DeletedRefSCCs". +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyCallGraph.cpp:1134:3: uninit_use: Using uninitialized value "DeletedRefSCCs". Field "DeletedRefSCCs.InlineElts" is uninitialized. +# 1132| // SCCs are no longer in an interesting state (they are totally empty) but +# 1133| // the pointers will remain stable for the life of the graph itself. +# 1134|-> return DeletedRefSCCs; +# 1135| } +# 1136| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyCallGraph.cpp:1158:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyCallGraph.cpp:1186:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1184| if (llvm::all_of(TargetNs, +# 1185| [&](Node *TargetN) { return &SourceN == TargetN; })) +# 1186|-> return Result; +# 1187| +# 1188| // If all targets are in the same SCC as the source, because no call edges + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyCallGraph.cpp:1158:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyCallGraph.cpp:1194:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1192| return G->lookupSCC(*TargetN) == &SourceC; +# 1193| })) +# 1194|-> return Result; +# 1195| +# 1196| // We build somewhat synthetic new RefSCCs by providing a postorder mapping + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyCallGraph.cpp:1158:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyCallGraph.cpp:1319:9: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1317| N->LowLink = -1; +# 1318| // Return the empty result immediately. +# 1319|-> return Result; +# 1320| } +# 1321| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyValueInfo.cpp:702:5: var_decl: Declaring variable "NonNullPointers". +llvm-project-19.0.0.src/llvm/lib/Analysis/LazyValueInfo.cpp:705:5: uninit_use: Using uninitialized value "NonNullPointers". Field "NonNullPointers.TheMap.NumEntries" is uninitialized. +# 703| for (Instruction &I : *BB) +# 704| AddNonNullPointersByInstruction(&I, NonNullPointers); +# 705|-> return NonNullPointers; +# 706| }); +# 707| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/LoopNestAnalysis.cpp:183:3: var_decl: Declaring variable "Instr". +llvm-project-19.0.0.src/llvm/lib/Analysis/LoopNestAnalysis.cpp:188:5: uninit_use: Using uninitialized value "Instr". Field "Instr.InlineElts" is uninitialized. +# 186| LLVM_DEBUG(dbgs() << "The loop Nest is Perfect, returning empty " +# 187| "instruction vector. \n";); +# 188|-> return Instr; +# 189| +# 190| case InvalidLoopStructure: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/LoopNestAnalysis.cpp:183:3: var_decl: Declaring variable "Instr". +llvm-project-19.0.0.src/llvm/lib/Analysis/LoopNestAnalysis.cpp:193:5: uninit_use: Using uninitialized value "Instr". Field "Instr.InlineElts" is uninitialized. +# 191| LLVM_DEBUG(dbgs() << "Not perfectly nested: invalid loop structure. " +# 192| "Instruction vector is empty.\n";); +# 193|-> return Instr; +# 194| +# 195| case OuterLoopLowerBoundUnknown: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/LoopNestAnalysis.cpp:183:3: var_decl: Declaring variable "Instr". +llvm-project-19.0.0.src/llvm/lib/Analysis/LoopNestAnalysis.cpp:198:5: uninit_use: Using uninitialized value "Instr". Field "Instr.InlineElts" is uninitialized. +# 196| LLVM_DEBUG(dbgs() << "Cannot compute loop bounds of OuterLoop: " +# 197| << OuterLoop << "\nInstruction vector is empty.\n";); +# 198|-> return Instr; +# 199| +# 200| case ImperfectLoopNest: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/LoopNestAnalysis.cpp:242:3: var_decl: Declaring variable "LV". +llvm-project-19.0.0.src/llvm/lib/Analysis/LoopNestAnalysis.cpp:258:3: uninit_use: Using uninitialized value "LV". Field "LV.InlineElts" is uninitialized. +# 256| } +# 257| +# 258|-> return LV; +# 259| } +# 260| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Analysis/MemorySSAUpdater.cpp:289:3: tainted_data_return: Called function "MP->getBasicBlockIndex(BB)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Analysis/MemorySSAUpdater.cpp:289:3: assign: Assigning: "i" = "MP->getBasicBlockIndex(BB)". +llvm-project-19.0.0.src/llvm/lib/Analysis/MemorySSAUpdater.cpp:296:5: overflow_sink: "i", which might have overflowed, is passed to "MP->setIncomingValue(i, NewDef)". +# 294| if (BlockBB != BB) +# 295| break; +# 296|-> MP->setIncomingValue(i, NewDef); +# 297| ++i; +# 298| } + +Error: USE_AFTER_FREE (CWE-416): +llvm-project-19.0.0.src/llvm/lib/Analysis/RegionPass.cpp:264:5: freed_arg: "schedulePass" frees "RGPM". +llvm-project-19.0.0.src/llvm/lib/Analysis/RegionPass.cpp:267:5: deref_arg: Calling "push" dereferences freed pointer "RGPM". +# 265| +# 266| // [4] Push new manager into PMS +# 267|-> PMS.push(RGPM); +# 268| } +# 269| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Analysis/ScalarEvolution.cpp:3145:7: underflow: The decrement operator on the unsigned variable "Idx" might result in an underflow. +llvm-project-19.0.0.src/llvm/lib/Analysis/ScalarEvolution.cpp:3227:3: overflow_sink: "Idx", which might have underflowed, is passed to "Ops[Idx]". +# 3225| +# 3226| // Skip over the add expression until we get to a multiply. +# 3227|-> while (Idx < Ops.size() && Ops[Idx]->getSCEVType() < scMulExpr) +# 3228| ++Idx; +# 3229| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Analysis/ScalarEvolution.cpp:3895:7: underflow: The decrement operator on the unsigned variable "Idx" might result in an underflow. +llvm-project-19.0.0.src/llvm/lib/Analysis/ScalarEvolution.cpp:3906:3: overflow_sink: "Idx", which might have underflowed, is passed to "Ops[Idx]". +# 3904| +# 3905| // Find the first operation of the same kind +# 3906|-> while (Idx < Ops.size() && Ops[Idx]->getSCEVType() < Kind) +# 3907| ++Idx; +# 3908| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:858:3: var_decl: Declaring variable "MaskVec". +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:863:3: uninit_use: Using uninitialized value "MaskVec". Field "MaskVec.InlineElts" is uninitialized. +# 861| MaskVec.push_back(i); +# 862| +# 863|-> return MaskVec; +# 864| } +# 865| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:868:3: var_decl: Declaring variable "Mask". +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:873:3: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 871| Mask.push_back(j * VF + i); +# 872| +# 873|-> return Mask; +# 874| } +# 875| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:878:3: var_decl: Declaring variable "Mask". +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:882:3: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 880| Mask.push_back(Start + i * Stride); +# 881| +# 882|-> return Mask; +# 883| } +# 884| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:888:3: var_decl: Declaring variable "Mask". +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:895:3: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 893| Mask.push_back(-1); +# 894| +# 895|-> return Mask; +# 896| } +# 897| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:906:3: var_decl: Declaring variable "UnaryMask". +llvm-project-19.0.0.src/llvm/lib/Analysis/VectorUtils.cpp:912:3: uninit_use: Using uninitialized value "UnaryMask". Field "UnaryMask.InlineElts" is uninitialized. +# 910| UnaryMask.push_back(UnaryElt); +# 911| } +# 912|-> return UnaryMask; +# 913| } +# 914| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1039:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, this->HexIntToVal(this->TokStart + 2, this->CurPtr), false))". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1039:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1037| // hexadecimal number for when exponential notation is not precise enough. +# 1038| // Half, BFloat, Float, and double only. +# 1039|-> APFloatVal = APFloat(APFloat::IEEEdouble(), +# 1040| APInt(64, HexIntToVal(TokStart + 2, CurPtr))); +# 1041| return lltok::APFloat; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1050:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), llvm::APInt(80U, llvm::ArrayRef(Pair)))". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1050:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1048| // F80HexFPConstant - x87 long double in hexadecimal format (10 bytes) +# 1049| FP80HexToIntPair(TokStart+3, CurPtr, Pair); +# 1050|-> APFloatVal = APFloat(APFloat::x87DoubleExtended(), APInt(80, Pair)); +# 1051| return lltok::APFloat; +# 1052| case 'L': + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1055:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), llvm::APInt(128U, llvm::ArrayRef(Pair)))". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1055:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1053| // F128HexFPConstant - IEEE 128-bit in hexadecimal format (16 bytes) +# 1054| HexToIntPair(TokStart+3, CurPtr, Pair); +# 1055|-> APFloatVal = APFloat(APFloat::IEEEquad(), APInt(128, Pair)); +# 1056| return lltok::APFloat; +# 1057| case 'M': + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1060:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, llvm::ArrayRef(Pair)))". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1060:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1058| // PPC128HexFPConstant - PowerPC 128-bit in hexadecimal format (16 bytes) +# 1059| HexToIntPair(TokStart+3, CurPtr, Pair); +# 1060|-> APFloatVal = APFloat(APFloat::PPCDoubleDouble(), APInt(128, Pair)); +# 1061| return lltok::APFloat; +# 1062| case 'H': + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1063:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), llvm::APInt(16U, this->HexIntToVal(this->TokStart + 3, this->CurPtr), false))". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1063:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1061| return lltok::APFloat; +# 1062| case 'H': +# 1063|-> APFloatVal = APFloat(APFloat::IEEEhalf(), +# 1064| APInt(16,HexIntToVal(TokStart+3, CurPtr))); +# 1065| return lltok::APFloat; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1068:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::BFloat(), llvm::APInt(16U, this->HexIntToVal(this->TokStart + 3, this->CurPtr), false))". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLLexer.cpp:1068:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1066| case 'R': +# 1067| // Brain floating point +# 1068|-> APFloatVal = APFloat(APFloat::BFloat(), +# 1069| APInt(16, HexIntToVal(TokStart + 3, CurPtr))); +# 1070| return lltok::APFloat; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:3896:5: var_decl: Declaring variable "Fn". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:3904:7: uninit_use_in_call: Using uninitialized value "Fn.APFloatVal.U" when calling "~ValID". +# 3902| parseValID(Label, PFS) || +# 3903| parseToken(lltok::rparen, "expected ')' in block address expression")) +# 3904|-> return true; +# 3905| +# 3906| if (Fn.Kind != ValID::t_GlobalID && Fn.Kind != ValID::t_GlobalName) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:3896:5: var_decl: Declaring variable "Label". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:3904:7: uninit_use_in_call: Using uninitialized value "Label.APFloatVal.U" when calling "~ValID". +# 3902| parseValID(Label, PFS) || +# 3903| parseToken(lltok::rparen, "expected ')' in block address expression")) +# 3904|-> return true; +# 3905| +# 3906| if (Fn.Kind != ValID::t_GlobalID && Fn.Kind != ValID::t_GlobalName) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:7182:3: var_decl: Declaring variable "CalleeID". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:7198:5: uninit_use_in_call: Using uninitialized value "CalleeID.APFloatVal.U" when calling "~ValID". +# 7196| parseToken(lltok::kw_unwind, "expected 'unwind' in invoke") || +# 7197| parseTypeAndBasicBlock(UnwindBB, PFS)) +# 7198|-> return true; +# 7199| +# 7200| // If RetType is a non-function pointer type, then this is the short syntax + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:7479:3: var_decl: Declaring variable "CalleeID". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:7493:5: uninit_use_in_call: Using uninitialized value "CalleeID.APFloatVal.U" when calling "~ValID". +# 7491| parseTypeAndBasicBlock(DefaultDest, PFS) || +# 7492| parseToken(lltok::lsquare, "expected '[' in callbr")) +# 7493|-> return true; +# 7494| +# 7495| // parse the destination list. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:7885:3: var_decl: Declaring variable "CalleeID". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:7893:5: uninit_use_in_call: Using uninitialized value "CalleeID.APFloatVal.U" when calling "~ValID". +# 7891| parseToken(lltok::kw_call, +# 7892| "expected 'tail call', 'musttail call', or 'notail call'")) +# 7893|-> return true; +# 7894| +# 7895| FastMathFlags FMF = EatFastMathFlagsIfPresent(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:7885:3: var_decl: Declaring variable "CalleeID". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:7905:5: uninit_use_in_call: Using uninitialized value "CalleeID.APFloatVal.U" when calling "~ValID". +# 7903| parseFnAttributeValuePairs(FnAttrs, FwdRefAttrGrps, false, BuiltinLoc) || +# 7904| parseOptionalOperandBundles(BundleList, PFS)) +# 7905|-> return true; +# 7906| +# 7907| // If RetType is a non-function pointer type, then this is the short syntax + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:8570:3: var_decl: Declaring variable "Label". +llvm-project-19.0.0.src/llvm/lib/AsmParser/LLParser.cpp:8577:5: uninit_use_in_call: Using uninitialized value "Label.APFloatVal.U" when calling "~ValID". +# 8575| parseToken(lltok::comma, "expected comma in uselistorder_bb directive") || +# 8576| parseUseListOrderIndexes(Indexes)) +# 8577|-> return true; +# 8578| +# 8579| // Check the function. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:32:3: temporary: Creating temporary of type "llvm::LLParser" in "llvm::LLParser(F.getBuffer(), SM, Err, M, Index, (M ? M->getContext() : OptContext.emplace()), Slots)". +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:32:3: uninit_use_in_call: Using uninitialized value ".Lex.APFloatVal.U" when calling "~LLParser". +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:32:3: uninit_use_in_call: Using uninitialized value ".OPLex.APFloatVal.U" when calling "~LLParser". +# 30| +# 31| std::optional OptContext; +# 32|-> return LLParser(F.getBuffer(), SM, Err, M, Index, +# 33| M ? M->getContext() : OptContext.emplace(), Slots) +# 34| .Run(UpgradeDebugInfo, DataLayoutCallback); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:153:3: temporary: Creating temporary of type "llvm::LLParser" in "llvm::LLParser(F.getBuffer(), SM, Err, NULL, Index, unusedContext, NULL)". +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:153:3: uninit_use_in_call: Using uninitialized value ".Lex.APFloatVal.U" when calling "~LLParser". +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:153:3: uninit_use_in_call: Using uninitialized value ".OPLex.APFloatVal.U" when calling "~LLParser". +# 151| // index, but we need to initialize it. +# 152| LLVMContext unusedContext; +# 153|-> return LLParser(F.getBuffer(), SM, Err, nullptr, &Index, unusedContext) +# 154| .Run(true, [](StringRef, StringRef) { return std::nullopt; }); +# 155| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:193:3: temporary: Creating temporary of type "llvm::LLParser" in "llvm::LLParser(Asm, SM, Err, const_cast(M), NULL, M->getContext(), NULL)". +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:193:3: uninit_use_in_call: Using uninitialized value ".Lex.APFloatVal.U" when calling "~LLParser". +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:193:3: uninit_use_in_call: Using uninitialized value ".OPLex.APFloatVal.U" when calling "~LLParser". +# 191| SM.AddNewSourceBuffer(std::move(Buf), SMLoc()); +# 192| Constant *C; +# 193|-> if (LLParser(Asm, SM, Err, const_cast(&M), nullptr, M.getContext()) +# 194| .parseStandaloneConstantValue(C, Slots)) +# 195| return nullptr; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:222:3: temporary: Creating temporary of type "llvm::LLParser" in "llvm::LLParser(Asm, SM, Err, const_cast(M), NULL, M->getContext(), NULL)". +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:222:3: uninit_use_in_call: Using uninitialized value ".Lex.APFloatVal.U" when calling "~LLParser". +llvm-project-19.0.0.src/llvm/lib/AsmParser/Parser.cpp:222:3: uninit_use_in_call: Using uninitialized value ".OPLex.APFloatVal.U" when calling "~LLParser". +# 220| SM.AddNewSourceBuffer(std::move(Buf), SMLoc()); +# 221| Type *Ty; +# 222|-> if (LLParser(Asm, SM, Err, const_cast(&M), nullptr, M.getContext()) +# 223| .parseTypeAtBeginning(Ty, Read, Slots)) +# 224| return nullptr; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/BinaryFormat/XCOFF.cpp:163:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/llvm/lib/BinaryFormat/XCOFF.cpp:184:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 182| // Pop the last space. +# 183| Res.pop_back(); +# 184|-> return Res; +# 185| } +# 186| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitReader.cpp:86:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitReader.cpp:86:3: leaked_storage: Failing to save or free storage allocated by "Owner.release()" leaks it. +# 84| // Release the buffer if we didn't take ownership of it since we never owned +# 85| // it anyway. +# 86|-> (void)Owner.release(); +# 87| +# 88| if (Error Err = ModuleOrErr.takeError()) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitReader.cpp:112:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitReader.cpp:112:3: leaked_storage: Ignoring storage allocated by "Owner.release()" leaks it. +# 110| ErrorOr> ModuleOrErr = expectedToErrorOrAndEmitErrors( +# 111| Ctx, getOwningLazyBitcodeModule(std::move(Owner), Ctx)); +# 112|-> Owner.release(); +# 113| +# 114| if (ModuleOrErr.getError()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3142:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), llvm::APInt(16U, (uint16_t)Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3142:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3140| auto *ScalarTy = CurTy->getScalarType(); +# 3141| if (ScalarTy->isHalfTy()) +# 3142|-> V = ConstantFP::get(CurTy, APFloat(APFloat::IEEEhalf(), +# 3143| APInt(16, (uint16_t)Record[0]))); +# 3144| else if (ScalarTy->isBFloatTy()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3145:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::BFloat(), llvm::APInt(16U, (uint32_t)Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3145:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3143| APInt(16, (uint16_t)Record[0]))); +# 3144| else if (ScalarTy->isBFloatTy()) +# 3145|-> V = ConstantFP::get( +# 3146| CurTy, APFloat(APFloat::BFloat(), APInt(16, (uint32_t)Record[0]))); +# 3147| else if (ScalarTy->isFloatTy()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3148:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, (uint32_t)Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3148:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3146| CurTy, APFloat(APFloat::BFloat(), APInt(16, (uint32_t)Record[0]))); +# 3147| else if (ScalarTy->isFloatTy()) +# 3148|-> V = ConstantFP::get(CurTy, APFloat(APFloat::IEEEsingle(), +# 3149| APInt(32, (uint32_t)Record[0]))); +# 3150| else if (ScalarTy->isDoubleTy()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3151:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, Record[0UL], false))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3151:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3149| APInt(32, (uint32_t)Record[0]))); +# 3150| else if (ScalarTy->isDoubleTy()) +# 3151|-> V = ConstantFP::get( +# 3152| CurTy, APFloat(APFloat::IEEEdouble(), APInt(64, Record[0]))); +# 3153| else if (ScalarTy->isX86_FP80Ty()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3158:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), llvm::APInt(80U, llvm::ArrayRef(Rearrange)))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3158:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3156| Rearrange[0] = (Record[1] & 0xffffLL) | (Record[0] << 16); +# 3157| Rearrange[1] = Record[0] >> 48; +# 3158|-> V = ConstantFP::get( +# 3159| CurTy, APFloat(APFloat::x87DoubleExtended(), APInt(80, Rearrange))); +# 3160| } else if (ScalarTy->isFP128Ty()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3161:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3161:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3159| CurTy, APFloat(APFloat::x87DoubleExtended(), APInt(80, Rearrange))); +# 3160| } else if (ScalarTy->isFP128Ty()) +# 3161|-> V = ConstantFP::get(CurTy, +# 3162| APFloat(APFloat::IEEEquad(), APInt(128, Record))); +# 3163| else if (ScalarTy->isPPC_FP128Ty()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3164:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3164:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3162| APFloat(APFloat::IEEEquad(), APInt(128, Record))); +# 3163| else if (ScalarTy->isPPC_FP128Ty()) +# 3164|-> V = ConstantFP::get( +# 3165| CurTy, APFloat(APFloat::PPCDoubleDouble(), APInt(128, Record))); +# 3166| else + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingAllocs" is moved (indicated by "std::move(PendingAllocs)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: use_after_move: "PendingAllocs" is used after it has been already moved. +# 7582| PendingAllocs.clear(); +# 7583| } +# 7584|-> auto FS = std::make_unique( +# 7585| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7586| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingCallsites" is moved (indicated by "std::move(PendingCallsites)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: use_after_move: "PendingCallsites" is used after it has been already moved. +# 7582| PendingAllocs.clear(); +# 7583| } +# 7584|-> auto FS = std::make_unique( +# 7585| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7586| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingParamAccesses" is moved (indicated by "std::move(PendingParamAccesses)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: use_after_move: "PendingParamAccesses" is used after it has been already moved. +# 7582| PendingAllocs.clear(); +# 7583| } +# 7584|-> auto FS = std::make_unique( +# 7585| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7586| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeCheckedLoadConstVCalls" is moved (indicated by "std::move(PendingTypeCheckedLoadConstVCalls)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: use_after_move: "PendingTypeCheckedLoadConstVCalls" is used after it has been already moved. +# 7582| PendingAllocs.clear(); +# 7583| } +# 7584|-> auto FS = std::make_unique( +# 7585| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7586| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeCheckedLoadVCalls" is moved (indicated by "std::move(PendingTypeCheckedLoadVCalls)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: use_after_move: "PendingTypeCheckedLoadVCalls" is used after it has been already moved. +# 7582| PendingAllocs.clear(); +# 7583| } +# 7584|-> auto FS = std::make_unique( +# 7585| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7586| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeTestAssumeConstVCalls" is moved (indicated by "std::move(PendingTypeTestAssumeConstVCalls)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: use_after_move: "PendingTypeTestAssumeConstVCalls" is used after it has been already moved. +# 7582| PendingAllocs.clear(); +# 7583| } +# 7584|-> auto FS = std::make_unique( +# 7585| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7586| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeTestAssumeVCalls" is moved (indicated by "std::move(PendingTypeTestAssumeVCalls)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: use_after_move: "PendingTypeTestAssumeVCalls" is used after it has been already moved. +# 7582| PendingAllocs.clear(); +# 7583| } +# 7584|-> auto FS = std::make_unique( +# 7585| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7586| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeTests" is moved (indicated by "std::move(PendingTypeTests)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: use_after_move: "PendingTypeTests" is used after it has been already moved. +# 7582| PendingAllocs.clear(); +# 7583| } +# 7584|-> auto FS = std::make_unique( +# 7585| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7586| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingAllocs" is moved (indicated by "std::move(PendingAllocs)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7730:7: use_after_move: "PendingAllocs" is used after it has been already moved. +# 7728| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7729| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7730|-> auto FS = std::make_unique( +# 7731| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7732| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingCallsites" is moved (indicated by "std::move(PendingCallsites)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7730:7: use_after_move: "PendingCallsites" is used after it has been already moved. +# 7728| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7729| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7730|-> auto FS = std::make_unique( +# 7731| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7732| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingParamAccesses" is moved (indicated by "std::move(PendingParamAccesses)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7730:7: use_after_move: "PendingParamAccesses" is used after it has been already moved. +# 7728| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7729| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7730|-> auto FS = std::make_unique( +# 7731| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7732| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeCheckedLoadConstVCalls" is moved (indicated by "std::move(PendingTypeCheckedLoadConstVCalls)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7730:7: use_after_move: "PendingTypeCheckedLoadConstVCalls" is used after it has been already moved. +# 7728| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7729| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7730|-> auto FS = std::make_unique( +# 7731| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7732| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeCheckedLoadVCalls" is moved (indicated by "std::move(PendingTypeCheckedLoadVCalls)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7730:7: use_after_move: "PendingTypeCheckedLoadVCalls" is used after it has been already moved. +# 7728| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7729| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7730|-> auto FS = std::make_unique( +# 7731| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7732| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeTestAssumeConstVCalls" is moved (indicated by "std::move(PendingTypeTestAssumeConstVCalls)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7730:7: use_after_move: "PendingTypeTestAssumeConstVCalls" is used after it has been already moved. +# 7728| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7729| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7730|-> auto FS = std::make_unique( +# 7731| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7732| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeTestAssumeVCalls" is moved (indicated by "std::move(PendingTypeTestAssumeVCalls)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7730:7: use_after_move: "PendingTypeTestAssumeVCalls" is used after it has been already moved. +# 7728| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7729| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7730|-> auto FS = std::make_unique( +# 7731| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7732| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7584:7: move: "PendingTypeTests" is moved (indicated by "std::move(PendingTypeTests)"). +llvm-project-19.0.0.src/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:7730:7: use_after_move: "PendingTypeTests" is used after it has been already moved. +# 7728| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7729| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7730|-> auto FS = std::make_unique( +# 7731| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7732| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:990:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:993:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 991| auto *Array = dyn_cast(Var->getType()); +# 992| if (!Array || Array->getTag() != dwarf::DW_TAG_array_type) +# 993|-> return Result; +# 994| if (auto *DLVar = Array->getDataLocation()) +# 995| Result.push_back(DLVar); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:990:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:1029:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1027| } +# 1028| } +# 1029|-> return Result; +# 1030| } +# 1031| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:1036:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:1075:7: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1073| if (!Res.second) { +# 1074| assert(false && "dependency cycle in local variables"); +# 1075|-> return Result; +# 1076| } +# 1077| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/AtomicExpandPass.cpp:1830:3: var_decl: Declaring variable "RTLibType" without initializer. +llvm-project-19.0.0.src/llvm/lib/CodeGen/AtomicExpandPass.cpp:1857:3: uninit_use_in_call: Using uninitialized value "RTLibType" when calling "getLibcallName". +# 1855| } +# 1856| +# 1857|-> if (!TLI->getLibcallName(RTLibType)) { +# 1858| // This target does not implement the requested atomic libcall so give up. +# 1859| return false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/CallBrPrepare.cpp:110:3: var_decl: Declaring variable "CBRs". +llvm-project-19.0.0.src/llvm/lib/CodeGen/CallBrPrepare.cpp:115:3: uninit_use: Using uninitialized value "CBRs". Field "CBRs.InlineElts" is uninitialized. +# 113| if (!CBR->getType()->isVoidTy() && !CBR->use_empty()) +# 114| CBRs.push_back(CBR); +# 115|-> return CBRs; +# 116| } +# 117| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/ExpandMemCmp.cpp:207:3: var_decl: Declaring variable "LoadSequence". +llvm-project-19.0.0.src/llvm/lib/CodeGen/ExpandMemCmp.cpp:218:3: uninit_use: Using uninitialized value "LoadSequence". Field "LoadSequence.InlineElts" is uninitialized. +# 216| LoadSequence.push_back({MaxLoadSize, Offset - (MaxLoadSize - Size)}); +# 217| NumLoadsNonOneByte = 1; +# 218|-> return LoadSequence; +# 219| } +# 220| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:1607:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(sqrt(Result.convertToDouble()))". +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:1607:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1605| Result.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, +# 1606| &Unused); +# 1607|-> Result = APFloat(sqrt(Result.convertToDouble())); +# 1608| break; +# 1609| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:1614:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(log2(Result.convertToDouble()))". +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:1614:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1612| Result.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, +# 1613| &Unused); +# 1614|-> Result = APFloat(log2(Result.convertToDouble())); +# 1615| break; +# 1616| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:4994:5: var_decl: Declaring variable "NewOpcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:5010:5: uninit_use_in_call: Using uninitialized value "NewOpcode" when calling "get". +# 5008| } +# 5009| Observer.changingInstr(MI); +# 5010|-> MI.setDesc(B.getTII().get(NewOpcode)); +# 5011| MI.removeOperand(4); +# 5012| Observer.changedInstr(MI); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:817:3: return_constant: Function call "getOutlineAtomicLibcall(MI)" may return 653. +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:817:3: assignment: Assigning: "RTLibcall" = "getOutlineAtomicLibcall(MI)". The value of "RTLibcall" is now 653. +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:828:3: overrun-call: Overrunning callee's array of size 653 by passing argument "RTLibcall" (which evaluates to 653) in call to "getLibcallCallingConv". +# 826| +# 827| CallLowering::CallLoweringInfo Info; +# 828|-> Info.CallConv = TLI.getLibcallCallingConv(RTLibcall); +# 829| Info.Callee = MachineOperand::CreateES(Name); +# 830| Info.OrigRet = CallLowering::ArgInfo(RetRegs, RetTy, 0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:6920:3: var_decl: Declaring variable "TwoPExpFP". +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:6923:3: uninit_use_in_call: Using uninitialized value "TwoPExpFP.U" when calling "convertFromAPInt". +# 6921| : APFloat::IEEEdouble(), +# 6922| APInt::getZero(SrcTy.getSizeInBits())); +# 6923|-> TwoPExpFP.convertFromAPInt(TwoPExpInt, false, APFloat::rmNearestTiesToEven); +# 6924| +# 6925| MachineInstrBuilder FPTOSI = MIRBuilder.buildFPTOSI(DstTy, Src); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/Utils.cpp:962:5: var_decl: Declaring variable "DstVal". +llvm-project-19.0.0.src/llvm/lib/CodeGen/GlobalISel/Utils.cpp:963:5: uninit_use_in_call: Using uninitialized value "DstVal.U" when calling "convertFromAPInt". +# 961| if (auto MaybeSrcVal = getIConstantVRegVal(Src, MRI)) { +# 962| APFloat DstVal(getFltSemanticForLLT(DstTy)); +# 963|-> DstVal.convertFromAPInt(*MaybeSrcVal, Opcode == TargetOpcode::G_SITOFP, +# 964| APFloat::rmNearestTiesToEven); +# 965| return DstVal; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveDebugVariables.cpp:169:7: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveDebugVariables.cpp:169:7: leaked_storage: Ignoring storage allocated by "this->LocNos.release()" leaks it. +# 167| std::copy(Other.loc_nos_begin(), Other.loc_nos_end(), loc_nos_begin()); +# 168| } else { +# 169|-> LocNos.release(); +# 170| } +# 171| LocNoCount = Other.getLocNoCount(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveInterval.cpp:728:3: var_decl: Declaring variable "Updater". +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveInterval.cpp:732:1: uninit_use_in_call: Using uninitialized value "Updater.ReadI" when calling "~LiveRangeUpdater". +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveInterval.cpp:732:1: uninit_use_in_call: Using uninitialized value "Updater.WriteI" when calling "~LiveRangeUpdater". +# 730| if (S.valno == RHSValNo) +# 731| Updater.add(S.start, S.end, LHSValNo); +# 732|-> } +# 733| +# 734| /// MergeValueNumberInto - This method is called when two value nubmers + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveRangeCalc.cpp:63:3: var_decl: Declaring variable "Updater". +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveRangeCalc.cpp:81:5: uninit_use_in_call: Using uninitialized value "Updater.ReadI" when calling "setDest". +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveRangeCalc.cpp:81:5: uninit_use_in_call: Using uninitialized value "Updater.WriteI" when calling "setDest". +# 79| Map[MBB] = LiveOutPair(I.Value, nullptr); +# 80| } +# 81|-> Updater.setDest(&I.LR); +# 82| Updater.add(Start, End, I.Value); +# 83| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveRangeCalc.cpp:63:3: var_decl: Declaring variable "Updater". +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveRangeCalc.cpp:85:1: uninit_use_in_call: Using uninitialized value "Updater.ReadI" when calling "~LiveRangeUpdater". +llvm-project-19.0.0.src/llvm/lib/CodeGen/LiveRangeCalc.cpp:85:1: uninit_use_in_call: Using uninitialized value "Updater.WriteI" when calling "~LiveRangeUpdater". +# 83| } +# 84| LiveIn.clear(); +# 85|-> } +# 86| +# 87| void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/MachineBlockPlacement.cpp:2563:3: var_decl: Declaring variable "LoopBlockSet". +llvm-project-19.0.0.src/llvm/lib/CodeGen/MachineBlockPlacement.cpp:2594:3: uninit_use: Using uninitialized value "LoopBlockSet". Field "LoopBlockSet.vector_.InlineElts" is uninitialized. +# 2592| LoopBlockSet.insert(L.block_begin(), L.block_end()); +# 2593| +# 2594|-> return LoopBlockSet; +# 2595| } +# 2596| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/CodeGen/MachineOperand.cpp:1183:5: overrun-call: Overrunning callee's array of size 8 by passing argument "this->getSuccessOrdering()" (which evaluates to 15) in call to "toIRString". +# 1181| +# 1182| if (getSuccessOrdering() != AtomicOrdering::NotAtomic) +# 1183|-> OS << toIRString(getSuccessOrdering()) << ' '; +# 1184| if (getFailureOrdering() != AtomicOrdering::NotAtomic) +# 1185| OS << toIRString(getFailureOrdering()) << ' '; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/CodeGen/MachineOperand.cpp:1185:5: overrun-call: Overrunning callee's array of size 8 by passing argument "this->getFailureOrdering()" (which evaluates to 15) in call to "toIRString". +# 1183| OS << toIRString(getSuccessOrdering()) << ' '; +# 1184| if (getFailureOrdering() != AtomicOrdering::NotAtomic) +# 1185|-> OS << toIRString(getFailureOrdering()) << ' '; +# 1186| +# 1187| if (getMemoryType().isValid()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/CodeGen/PrologEpilogInserter.cpp:788:8: tainted_data_return: Called function "StackBytesFree->find_next(FreeStart)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/CodeGen/PrologEpilogInserter.cpp:788:8: assign: Assigning: "FreeStart" = "StackBytesFree->find_next(FreeStart)". +llvm-project-19.0.0.src/llvm/lib/CodeGen/PrologEpilogInserter.cpp:822:3: overflow: The expression "FreeStart + ObjSize" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/CodeGen/PrologEpilogInserter.cpp:822:3: overflow_sink: "FreeStart + ObjSize", which might be negative, is passed to "StackBytesFree->reset(FreeStart, FreeStart + ObjSize)". +# 820| } +# 821| +# 822|-> StackBytesFree.reset(FreeStart, FreeStart + ObjSize); +# 823| return true; +# 824| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/RDFGraph.cpp:1139:3: var_decl: Declaring variable "Refs". +llvm-project-19.0.0.src/llvm/lib/CodeGen/RDFGraph.cpp:1145:3: uninit_use: Using uninitialized value "Refs". Field "Refs.InlineElts" is uninitialized. +# 1143| RA = getNextRelated(IA, RA); +# 1144| } while (RA.Id != 0 && RA.Id != Start); +# 1145|-> return Refs; +# 1146| } +# 1147| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/RDFGraph.cpp:1712:5: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/llvm/lib/CodeGen/RDFGraph.cpp:1719:5: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 1717| N = RA.Addr->getSibling(); +# 1718| } +# 1719|-> return Res; +# 1720| }; +# 1721| NodeList ReachedDefs = getAllNodes(DA.Addr->getReachedDef()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/RDFLiveness.cpp:108:3: var_decl: Declaring variable "RDefs". +llvm-project-19.0.0.src/llvm/lib/CodeGen/RDFLiveness.cpp:118:5: uninit_use: Using uninitialized value "RDefs". Field "RDefs.InlineElts" is uninitialized. +# 116| // If the reference is undefined, there is nothing to do. +# 117| if (RefA.Addr->getFlags() & NodeAttrs::Undef) +# 118|-> return RDefs; +# 119| +# 120| // The initial queue should not have reaching defs for shadows. The + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/RDFLiveness.cpp:108:3: var_decl: Declaring variable "RDefs". +llvm-project-19.0.0.src/llvm/lib/CodeGen/RDFLiveness.cpp:300:3: uninit_use: Using uninitialized value "RDefs". Field "RDefs.InlineElts" is uninitialized. +# 298| llvm::erase_if(RDefs, DeadP); +# 299| +# 300|-> return RDefs; +# 301| } +# 302| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectOptimize.cpp:1199:3: var_decl: Declaring variable "SImap". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectOptimize.cpp:1203:3: uninit_use: Using uninitialized value "SImap". Field "SImap.NumEntries" is uninitialized. +# 1201| for (SelectLike SI : ASI) +# 1202| SImap.try_emplace(SI.getI(), SI); +# 1203|-> return SImap; +# 1204| } +# 1205| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1770:7: address_of: Taking address with "&RV" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1770:7: callee_ptr_arith: Passing "&RV" to function "ReplaceAllUsesWith" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1768| assert(N->getValueType(0) == RV.getValueType() && +# 1769| N->getNumValues() == 1 && "Type mismatch"); +# 1770|-> DAG.ReplaceAllUsesWith(N, &RV); +# 1771| } +# 1772| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:17149:7: var_decl: Declaring variable "Recip". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:17150:7: uninit_use_in_call: Using uninitialized value "Recip.U" when calling "divide". +#17148| const APFloat &N1APF = N1CFP->getValueAPF(); +#17149| APFloat Recip(N1APF.getSemantics(), 1); // 1.0 +#17150|-> APFloat::opStatus st = Recip.divide(N1APF, APFloat::rmNearestTiesToEven); +#17151| // Only do the transform if the reciprocal is a legal fp immediate that +#17152| // isn't too nasty (eg NaN, denormal, ...). + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22395:7: var_decl: Declaring variable "CstFP". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22398:9: uninit_use_in_call: Using uninitialized value "CstFP.U" when calling "getConstantFP". +#22396| APFloat(DAG.EVTToAPFloatSemantics(ScalarVT), KnownElt.getConstant()); +#22397| if (TLI.isFPImmLegal(CstFP, ScalarVT)) +#22398|-> return DAG.getConstantFP(CstFP, DL, ScalarVT); +#22399| } +#22400| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22395:7: var_decl: Declaring variable "CstFP". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22399:5: uninit_use_in_call: Using uninitialized value "CstFP.U" when calling "~APFloat". +#22397| if (TLI.isFPImmLegal(CstFP, ScalarVT)) +#22398| return DAG.getConstantFP(CstFP, DL, ScalarVT); +#22399|-> } +#22400| } +#22401| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp:1014:7: var_decl: Declaring variable "MyFlags". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp:1024:7: uninit_use_in_call: Using uninitialized value "MyFlags". Field "MyFlags.OrigArgIndex" is uninitialized when calling "push_back". +# 1022| if (CLI.IsInReg) +# 1023| MyFlags.Flags.setInReg(); +# 1024|-> CLI.Ins.push_back(MyFlags); +# 1025| } +# 1026| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1425:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(this->DAG.EVTToAPFloatSemantics(NVT), llvm::APInt(64U, C.getRawData()[1], false))". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1425:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1423| APInt C = cast(N)->getValueAPF().bitcastToAPInt(); +# 1424| SDLoc dl(N); +# 1425|-> Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT), +# 1426| APInt(64, C.getRawData()[1])), +# 1427| dl, NVT); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1428:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(this->DAG.EVTToAPFloatSemantics(NVT), llvm::APInt(64U, C.getRawData()[0], false))". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1428:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1426| APInt(64, C.getRawData()[1])), +# 1427| dl, NVT); +# 1428|-> Hi = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT), +# 1429| APInt(64, C.getRawData()[0])), +# 1430| dl, NVT); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1673:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(this->DAG.EVTToAPFloatSemantics(NVT), llvm::APInt(llvm::TypeSize(NVT.getSizeInBits()).operator llvm::details::FixedOrScalableQuantity::ScalarTy(), 0UL, false))". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1673:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1671| } +# 1672| +# 1673|-> Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT), +# 1674| APInt(NVT.getSizeInBits(), 0)), dl, NVT); +# 1675| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1803:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(this->DAG.EVTToAPFloatSemantics(NVT), llvm::APInt(llvm::TypeSize(NVT.getSizeInBits()).operator llvm::details::FixedOrScalableQuantity::ScalarTy(), 0UL, false))". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1803:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1801| +# 1802| // The low part is zero. +# 1803|-> Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT), +# 1804| APInt(NVT.getSizeInBits(), 0)), dl, NVT); +# 1805| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h:195:5: var_decl: Declaring variable "Dependencies". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h:201:5: uninit_use: Using uninitialized value "Dependencies". Field "Dependencies.InlineElts" is uninitialized. +# 199| for (SDNode *Node : getAdditionalDependencies()) +# 200| Dependencies.push_back(Node); +# 201|-> return Dependencies; +# 202| } +# 203| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp:273:5: var_decl: Declaring variable "ChainPred". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp:295:7: uninit_use_in_call: Using uninitialized value "ChainPred". Field "ChainPred.Contents" is uninitialized when calling "RemovePred". +# 293| +# 294| if (ChainPred.getSUnit()) { +# 295|-> RemovePred(SU, ChainPred); +# 296| if (isNewLoad) +# 297| AddPred(LoadSU, ChainPred); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1793:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat((float)Val)". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1793:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1791| EVT EltVT = VT.getScalarType(); +# 1792| if (EltVT == MVT::f32) +# 1793|-> return getConstantFP(APFloat((float)Val), DL, VT, isTarget); +# 1794| if (EltVT == MVT::f64) +# 1795| return getConstantFP(APFloat(Val), DL, VT, isTarget); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1795:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Val)". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1795:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1793| return getConstantFP(APFloat((float)Val), DL, VT, isTarget); +# 1794| if (EltVT == MVT::f64) +# 1795|-> return getConstantFP(APFloat(Val), DL, VT, isTarget); +# 1796| if (EltVT == MVT::f80 || EltVT == MVT::f128 || EltVT == MVT::ppcf128 || +# 1797| EltVT == MVT::f16 || EltVT == MVT::bf16) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6324:9: var_decl: Declaring variable "apf". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6326:9: uninit_use_in_call: Using uninitialized value "apf.U" when calling "convertFromAPInt". +# 6324| APFloat apf(EVTToAPFloatSemantics(VT), +# 6325| APInt::getZero(VT.getSizeInBits())); +# 6326|-> (void)apf.convertFromAPInt(Val, Opcode == ISD::SINT_TO_FP, +# 6327| APFloat::rmNearestTiesToEven); +# 6328| return getConstantFP(apf, DL, VT); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6349:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), Val)". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6349:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 6347| case ISD::BITCAST: +# 6348| if (VT == MVT::f16 && C->getValueType(0) == MVT::i16) +# 6349|-> return getConstantFP(APFloat(APFloat::IEEEhalf(), Val), DL, VT); +# 6350| if (VT == MVT::f32 && C->getValueType(0) == MVT::i32) +# 6351| return getConstantFP(APFloat(APFloat::IEEEsingle(), Val), DL, VT); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6351:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), Val)". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6351:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 6349| return getConstantFP(APFloat(APFloat::IEEEhalf(), Val), DL, VT); +# 6350| if (VT == MVT::f32 && C->getValueType(0) == MVT::i32) +# 6351|-> return getConstantFP(APFloat(APFloat::IEEEsingle(), Val), DL, VT); +# 6352| if (VT == MVT::f64 && C->getValueType(0) == MVT::i64) +# 6353| return getConstantFP(APFloat(APFloat::IEEEdouble(), Val), DL, VT); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6353:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), Val)". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6353:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 6351| return getConstantFP(APFloat(APFloat::IEEEsingle(), Val), DL, VT); +# 6352| if (VT == MVT::f64 && C->getValueType(0) == MVT::i64) +# 6353|-> return getConstantFP(APFloat(APFloat::IEEEdouble(), Val), DL, VT); +# 6354| if (VT == MVT::f128 && C->getValueType(0) == MVT::i128) +# 6355| return getConstantFP(APFloat(APFloat::IEEEquad(), Val), DL, VT); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6355:11: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), Val)". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6355:11: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 6353| return getConstantFP(APFloat(APFloat::IEEEdouble(), Val), DL, VT); +# 6354| if (VT == MVT::f128 && C->getValueType(0) == MVT::i128) +# 6355|-> return getConstantFP(APFloat(APFloat::IEEEquad(), Val), DL, VT); +# 6356| break; +# 6357| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:7494:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(DAG.EVTToAPFloatSemantics(VT), Val)". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:7494:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7492| return DAG.getConstant(Val, dl, VT, false, IsOpaque); +# 7493| } +# 7494|-> return DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(VT), Val), dl, +# 7495| VT); +# 7496| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1065:3: var_decl: Declaring variable "OutVec". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1074:3: uninit_use: Using uninitialized value "OutVec". Field "OutVec.InlineElts" is uninitialized. +# 1072| OutVec.push_back(std::make_pair(Regs[I], RegisterSize)); +# 1073| } +# 1074|-> return OutVec; +# 1075| } +# 1076| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5342:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, Flt, false))". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5342:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5340| static SDValue getF32Constant(SelectionDAG &DAG, unsigned Flt, +# 5341| const SDLoc &dl) { +# 5342|-> return DAG.getConstantFP(APFloat(APFloat::IEEEsingle(), APInt(32, Flt)), dl, +# 5343| MVT::f32); +# 5344| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5766:7: var_decl: Declaring variable "Ten". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5767:7: uninit_use_in_call: Using uninitialized value "Ten.U" when calling "isExactlyValue". +# 5765| if (ConstantFPSDNode *LHSC = dyn_cast(LHS)) { +# 5766| APFloat Ten(10.0f); +# 5767|-> IsExp10 = LHSC->isExactlyValue(Ten); +# 5768| } +# 5769| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10611:9: var_decl: Declaring variable "MyFlags". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10627:9: uninit_use_in_call: Using uninitialized value "MyFlags". Field "MyFlags.OrigArgIndex" is uninitialized when calling "push_back". +#10625| if (CLI.IsInReg) +#10626| MyFlags.Flags.setInReg(); +#10627|-> CLI.Ins.push_back(MyFlags); +#10628| } +#10629| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10637:9: var_decl: Declaring variable "MyFlags". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10641:9: uninit_use_in_call: Using uninitialized value "MyFlags". Field "MyFlags.OrigArgIndex" is uninitialized when calling "push_back". +#10639| MyFlags.ArgVT = EVT(getPointerTy(DL)); +#10640| MyFlags.Flags.setSwiftError(); +#10641|-> CLI.Ins.push_back(MyFlags); +#10642| } +#10643| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5962:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5987:3: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 5985| }); +# 5986| +# 5987|-> return Ret; +# 5988| } +# 5989| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:8180:3: var_decl: Declaring variable "APF". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:8182:3: uninit_use_in_call: Using uninitialized value "APF.U" when calling "convertFromAPInt". +# 8180| APFloat APF(APFSem, APInt::getZero(SrcVT.getScalarSizeInBits())); +# 8181| APInt SignMask = APInt::getSignMask(DstVT.getScalarSizeInBits()); +# 8182|-> if (APFloat::opOverflow & +# 8183| APF.convertFromAPInt(SignMask, false, APFloat::rmNearestTiesToEven)) { +# 8184| if (Node->isStrictFPOpcode()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10952:3: var_decl: Declaring variable "MinFloat". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10955:3: uninit_use_in_call: Using uninitialized value "MinFloat.U" when calling "convertFromAPInt". +#10953| APFloat MaxFloat(DAG.EVTToAPFloatSemantics(SrcVT)); +#10954| +#10955|-> APFloat::opStatus MinStatus = +#10956| MinFloat.convertFromAPInt(MinInt, IsSigned, APFloat::rmTowardZero); +#10957| APFloat::opStatus MaxStatus = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10953:3: var_decl: Declaring variable "MaxFloat". +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10957:3: uninit_use_in_call: Using uninitialized value "MaxFloat.U" when calling "convertFromAPInt". +#10955| APFloat::opStatus MinStatus = +#10956| MinFloat.convertFromAPInt(MinInt, IsSigned, APFloat::rmTowardZero); +#10957|-> APFloat::opStatus MaxStatus = +#10958| MaxFloat.convertFromAPInt(MaxInt, IsSigned, APFloat::rmTowardZero); +#10959| bool AreExactFloatBounds = !(MinStatus & APFloat::opStatus::opInexact) && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp:210:5: var_decl: Declaring variable "SlotDebugMap". +llvm-project-19.0.0.src/llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp:237:5: uninit_use: Using uninitialized value "SlotDebugMap". Field "SlotDebugMap.NumEntries" is uninitialized. +# 235| } +# 236| +# 237|-> return SlotDebugMap; +# 238| } +# 239| }; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/StackMaps.cpp:386:3: var_decl: Declaring variable "LiveOuts". +llvm-project-19.0.0.src/llvm/lib/CodeGen/StackMaps.cpp:418:3: uninit_use: Using uninitialized value "LiveOuts". Field "LiveOuts.InlineElts" is uninitialized. +# 416| llvm::erase_if(LiveOuts, [](const LiveOutReg &LO) { return LO.Reg == 0; }); +# 417| +# 418|-> return LiveOuts; +# 419| } +# 420| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/CodeGen/TargetLoweringBase.cpp:776:21: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/llvm/lib/CodeGen/TargetLoweringBase.cpp:777:3: uninit_use_in_call: Using uninitialized element of array "this->AtomicLoadExtActions" when calling "initActions". +# 775| /// NOTE: The TargetMachine owns TLOF. +# 776| TargetLoweringBase::TargetLoweringBase(const TargetMachine &tm) : TM(tm) { +# 777|-> initActions(); +# 778| +# 779| // Perform these initializations only once. + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1212:9: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1212:9: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1215:9: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1213| reinterpret_cast(&LinkedAddress), +# 1214| OrigAddressByteSize); +# 1215|-> OutputBuffer.append(AddressBytes.begin(), AddressBytes.end()); +# 1216| } else +# 1217| Linker.reportWarning("cannot read DW_OP_addrx operand.", File); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1246:11: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1246:11: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1249:11: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1247| reinterpret_cast(&LinkedAddress), +# 1248| OrigAddressByteSize); +# 1249|-> OutputBuffer.append(AddressBytes.begin(), AddressBytes.end()); +# 1250| } +# 1251| } else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:1995:7: var_decl: Declaring variable "LinkedExpression". +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp:2009:7: uninit_use_in_call: Using uninitialized value "LinkedExpression". Field "LinkedExpression.Expr.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 2007| CurLocAttr.RelocAdjustment); +# 2008| +# 2009|-> LinkedLocationExpressions.push_back(LinkedExpression); +# 2010| } +# 2011| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DIEAttributeCloner.cpp:551:3: cond_at_least: Checking "Bytes.size() > 4294967295UL" implies that ".Length", "Buffer.Size", "Bytes.Length" and "Bytes.size()" are at least 4294967296 on the true branch. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DIEAttributeCloner.cpp:577:3: overrun-buffer-arg: Calling "~SmallVector" with "Buffer->BeginX" and "Buffer->Size" is suspicious because of the very large index, 4294967296. The index may be due to a negative parameter being interpreted as unsigned. +# 575| InUnit.getGlobalData().getOptions().UpdateIndexTablesOnly; +# 576| +# 577|-> return FinalAttributeSize; +# 578| } +# 579| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1178:9: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1178:9: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1181:9: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1179| reinterpret_cast(&LinkedAddress), +# 1180| OrigAddressByteSize); +# 1181|-> OutputExpression.append(AddressBytes.begin(), AddressBytes.end()); +# 1182| } else +# 1183| warn("cann't read DW_OP_addrx operand."); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1215:11: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1215:11: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-project-19.0.0.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1218:11: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1216| reinterpret_cast(&LinkedAddress), +# 1217| OrigAddressByteSize); +# 1218|-> OutputExpression.append(AddressBytes.begin(), AddressBytes.end()); +# 1219| } +# 1220| } else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1770:3: var_decl: Declaring variable "Lines". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1773:5: uninit_use: Using uninitialized value "Lines". Field "Lines.InlineElts" is uninitialized. +# 1771| DWARFCompileUnit *CU = getCompileUnitForCodeAddress(Address.Address); +# 1772| if (!CU) +# 1773|-> return Lines; +# 1774| +# 1775| uint32_t StartLine = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1770:3: var_decl: Declaring variable "Lines". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1792:5: uninit_use: Using uninitialized value "Lines". Field "Lines.InlineElts" is uninitialized. +# 1790| Result.StartAddress = StartAddress; +# 1791| Lines.push_back(std::make_pair(Address.Address, Result)); +# 1792|-> return Lines; +# 1793| } +# 1794| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1770:3: var_decl: Declaring variable "Lines". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1801:5: uninit_use: Using uninitialized value "Lines". Field "Lines.InlineElts" is uninitialized. +# 1799| if (!LineTable->lookupAddressRange({Address.Address, Address.SectionIndex}, +# 1800| Size, RowVector)) { +# 1801|-> return Lines; +# 1802| } +# 1803| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1770:3: var_decl: Declaring variable "Lines". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1819:3: uninit_use: Using uninitialized value "Lines". Field "Lines.InlineElts" is uninitialized. +# 1817| } +# 1818| +# 1819|-> return Lines; +# 1820| } +# 1821| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1825:3: var_decl: Declaring variable "InliningInfo". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1829:5: uninit_use: Using uninitialized value "InliningInfo". Field "InliningInfo.Frames.InlineElts" is uninitialized. +# 1827| DWARFCompileUnit *CU = getCompileUnitForCodeAddress(Address.Address); +# 1828| if (!CU) +# 1829|-> return InliningInfo; +# 1830| +# 1831| const DWARFLineTable *LineTable = nullptr; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1825:3: var_decl: Declaring variable "InliningInfo". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:1845:5: uninit_use: Using uninitialized value "InliningInfo". Field "InliningInfo.Frames.InlineElts" is uninitialized. +# 1843| InliningInfo.addFrame(Frame); +# 1844| } +# 1845|-> return InliningInfo; +# 1846| } +# 1847| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:218:5: var_decl: Declaring variable "FileEntry". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:232:5: uninit_use_in_call: Using uninitialized value "FileEntry". Field "FileEntry.Checksum" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 230| "the end of the prologue"); +# 231| } +# 232|-> FileNames.push_back(FileEntry); +# 233| } +# 234| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:316:5: var_decl: Declaring variable "FileEntry". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:351:5: uninit_use_in_call: Using uninitialized value "FileEntry". Field "FileEntry.Checksum" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 349| } +# 350| } +# 351|-> FileNames.push_back(FileEntry); +# 352| } +# 353| return Error::success(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:997:11: var_decl: Declaring variable "FileEntry". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:1004:11: uninit_use_in_call: Using uninitialized value "FileEntry". Field "FileEntry.Checksum" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1002| FileEntry.ModTime = TableData.getULEB128(Cursor); +# 1003| FileEntry.Length = TableData.getULEB128(Cursor); +# 1004|-> Prologue.FileNames.push_back(FileEntry); +# 1005| if (Cursor && Verbose) +# 1006| *OS << " (" << Name << ", dir=" << FileEntry.DirIdx << ", mod_time=" + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp:96:3: var_decl: Declaring variable "V". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp:99:3: uninit_use_in_call: Using uninitialized value "V". Field "V.SectionIndex" is uninitialized when calling "DWARFFormValue". +# 97| V.uval = D.size(); +# 98| V.data = D.data(); +# 99|-> return DWARFFormValue(F, V); +# 100| } +# 101| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp:811:5: var_decl: Declaring variable "LocationAddr" without initializer. +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp:835:5: uninit_use: Using uninitialized value "LocationAddr". +# 833| } +# 834| +# 835|-> Address = LocationAddr; +# 836| break; +# 837| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp:1539:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp:1570:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1568| } +# 1569| +# 1570|-> return Result; +# 1571| } +# 1572| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp:457:3: var_decl: Declaring variable "DstFI". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/GSYM/GsymCreator.cpp:481:3: uninit_use_in_call: Using uninitialized value "DstFI". Field "DstFI.EncodingCache.InlineElts" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 479| } +# 480| std::lock_guard Guard(Mutex); +# 481|-> Funcs.emplace_back(DstFI); +# 482| return Funcs.back().cacheEncoding(); +# 483| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/LogicalView/Core/LVSupport.cpp:75:3: var_decl: Declaring variable "Indexes". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/LogicalView/Core/LVSupport.cpp:117:3: uninit_use: Using uninitialized value "Indexes". Field "Indexes.InlineElts" is uninitialized. +# 115| Indexes.push_back(LexicalEntry(Current, Length - 1)); +# 116| LLVM_DEBUG({ PrintLexicalEntry(); }); +# 117|-> return Indexes; +# 118| } +# 119| + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp:368:20: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "Sig.operator bool() ? *Sig : time(NULL)" is cast to "llvm::support::detail::packed_endian_specific_integral::value_type". +# 366| H->Guid = Info->getGuid(); +# 367| std::optional Sig = Info->getSignature(); +# 368|-> H->Signature = Sig ? *Sig : time(nullptr); +# 369| } +# 370| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/PDB/PDBContext.cpp:81:3: var_decl: Declaring variable "Table". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/PDB/PDBContext.cpp:84:5: uninit_use: Using uninitialized value "Table". Field "Table.InlineElts" is uninitialized. +# 82| auto LineNumbers = Session->findLineNumbersByAddress(Address.Address, Size); +# 83| if (!LineNumbers || LineNumbers->getChildCount() == 0) +# 84|-> return Table; +# 85| +# 86| while (auto LineInfo = LineNumbers->getNext()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/PDB/PDBContext.cpp:81:3: var_decl: Declaring variable "Table". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/PDB/PDBContext.cpp:91:3: uninit_use: Using uninitialized value "Table". Field "Table.InlineElts" is uninitialized. +# 89| Table.push_back(std::make_pair(LineInfo->getVirtualAddress(), LineEntry)); +# 90| } +# 91|-> return Table; +# 92| } +# 93| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/Symbolize/Markup.cpp:146:3: var_decl: Declaring variable "Node". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/Symbolize/Markup.cpp:148:3: uninit_use: Using uninitialized value "Node". Field "Node.Fields.InlineElts" is uninitialized. +# 146| MarkupNode Node; +# 147| Node.Text = Text; +# 148|-> return Node; +# 149| } +# 150| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp:755:5: alloc_fn: Storage is returned from allocation function "microsoftDemangle". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp:755:5: var_assign: Assigning: "DemangledName" = storage returned from "llvm::microsoftDemangle(Name->operator std::__cxx11::basic_string, std::allocator >::__sv_type(), NULL, &status, (llvm::MSDemangleFlags)30)". +llvm-project-19.0.0.src/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp:760:7: leaked_storage: Variable "DemangledName" going out of scope leaks the storage it points to. +# 758| MSDF_NoMemberType | MSDF_NoReturnType)); +# 759| if (status != 0) +# 760|-> return Name; +# 761| Result = DemangledName; +# 762| free(DemangledName); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:72:3: var_decl: Declaring variable "ReadGuard". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:76:5: uninit_use_in_call: Using uninitialized value "ReadGuard._M_owns" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:76:5: uninit_use_in_call: Using uninitialized value "ReadGuard._M_pm" when calling "unlock". +# 74| // Only read from the environment variable if the user hasn't already +# 75| // set the value. +# 76|-> ReadGuard.unlock(); +# 77| std::unique_lock WriteGuard(UrlsMutex); +# 78| DebuginfodUrls = SmallVector(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:77:5: var_decl: Declaring variable "WriteGuard". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:83:5: uninit_use_in_call: Using uninitialized value "WriteGuard._M_device" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/Debuginfod/Debuginfod.cpp:83:5: uninit_use_in_call: Using uninitialized value "WriteGuard._M_owns" when calling "unlock". +# 81| .split(DebuginfodUrls.value(), " ", -1, false); +# 82| } +# 83|-> WriteGuard.unlock(); +# 84| ReadGuard.lock(); +# 85| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Demangle/MicrosoftDemangle.cpp:1022:3: var_decl: Declaring variable "OuterContext". +llvm-project-19.0.0.src/llvm/lib/Demangle/MicrosoftDemangle.cpp:1023:3: uninit_use_in_call: Using uninitialized value "OuterContext". Field "OuterContext.FunctionParams" is uninitialized when calling "swap". +# 1021| +# 1022| BackrefContext OuterContext; +# 1023|-> std::swap(OuterContext, Backrefs); +# 1024| +# 1025| IdentifierNode *Identifier = + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:144:7: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:144:7: leaked_storage: Ignoring storage allocated by "I->release()" leaks it. +# 142| Module *Found = I->get(); +# 143| if (Found == M) { +# 144|-> I->release(); +# 145| Modules.erase(I); +# 146| clearGlobalMappingsFromModule(M); + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:683:7: equal: The address of "GV.FloatVal" is equal to the address of "GV". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:683:7: equal: The address of "GV.DoubleVal" is equal to the address of "GV". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:683:7: overlapping_assignment: Assigning "GV.DoubleVal" to "GV.FloatVal", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:683:7: target_type: "GV.FloatVal" has type "float". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:683:7: source_type: "GV.DoubleVal" has type "double". +# 681| // FIXME long double +# 682| GenericValue GV = getConstantValue(Op0); +# 683|-> GV.FloatVal = float(GV.DoubleVal); +# 684| return GV; +# 685| } + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:689:7: equal: The address of "GV.DoubleVal" is equal to the address of "GV". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:689:7: equal: The address of "GV.FloatVal" is equal to the address of "GV". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:689:7: overlapping_assignment: Assigning "GV.FloatVal" to "GV.DoubleVal", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:689:7: target_type: "GV.DoubleVal" has type "double". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:689:7: source_type: "GV.FloatVal" has type "float". +# 687| // FIXME long double +# 688| GenericValue GV = getConstantValue(Op0); +# 689|-> GV.DoubleVal = double(GV.FloatVal); +# 690| return GV; +# 691| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:731:9: var_decl: Declaring variable "apf". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:734:9: uninit_use_in_call: Using uninitialized value "apf.U" when calling "convertToInteger". +# 732| uint64_t v; +# 733| bool ignored; +# 734|-> (void)apf.convertToInteger(MutableArrayRef(v), BitWidth, +# 735| CE->getOpcode()==Instruction::FPToSI, +# 736| APFloat::rmTowardZero, &ignored); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:855:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:855:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 853| default: llvm_unreachable("Invalid long double opcode"); +# 854| case Instruction::FAdd: +# 855|-> apfLHS.add(APFloat(Sem, RHS.IntVal), APFloat::rmNearestTiesToEven); +# 856| GV.IntVal = apfLHS.bitcastToAPInt(); +# 857| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:851:9: var_decl: Declaring variable "apfLHS". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:855:13: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "add". +# 853| default: llvm_unreachable("Invalid long double opcode"); +# 854| case Instruction::FAdd: +# 855|-> apfLHS.add(APFloat(Sem, RHS.IntVal), APFloat::rmNearestTiesToEven); +# 856| GV.IntVal = apfLHS.bitcastToAPInt(); +# 857| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:859:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:859:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 857| break; +# 858| case Instruction::FSub: +# 859|-> apfLHS.subtract(APFloat(Sem, RHS.IntVal), +# 860| APFloat::rmNearestTiesToEven); +# 861| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:851:9: var_decl: Declaring variable "apfLHS". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:859:13: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "subtract". +# 857| break; +# 858| case Instruction::FSub: +# 859|-> apfLHS.subtract(APFloat(Sem, RHS.IntVal), +# 860| APFloat::rmNearestTiesToEven); +# 861| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:864:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:864:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 862| break; +# 863| case Instruction::FMul: +# 864|-> apfLHS.multiply(APFloat(Sem, RHS.IntVal), +# 865| APFloat::rmNearestTiesToEven); +# 866| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:851:9: var_decl: Declaring variable "apfLHS". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:864:13: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "multiply". +# 862| break; +# 863| case Instruction::FMul: +# 864|-> apfLHS.multiply(APFloat(Sem, RHS.IntVal), +# 865| APFloat::rmNearestTiesToEven); +# 866| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:869:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:869:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 867| break; +# 868| case Instruction::FDiv: +# 869|-> apfLHS.divide(APFloat(Sem, RHS.IntVal), +# 870| APFloat::rmNearestTiesToEven); +# 871| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:851:9: var_decl: Declaring variable "apfLHS". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:869:13: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "divide". +# 867| break; +# 868| case Instruction::FDiv: +# 869|-> apfLHS.divide(APFloat(Sem, RHS.IntVal), +# 870| APFloat::rmNearestTiesToEven); +# 871| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:874:13: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:874:13: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 872| break; +# 873| case Instruction::FRem: +# 874|-> apfLHS.mod(APFloat(Sem, RHS.IntVal)); +# 875| GV.IntVal = apfLHS.bitcastToAPInt(); +# 876| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:851:9: var_decl: Declaring variable "apfLHS". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:874:13: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "mod". +# 872| break; +# 873| case Instruction::FRem: +# 874|-> apfLHS.mod(APFloat(Sem, RHS.IntVal)); +# 875| GV.IntVal = apfLHS.bitcastToAPInt(); +# 876| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:274:3: var_decl: Declaring variable "Guard". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:282:5: uninit_use_in_call: Using uninitialized value "Guard._M_device" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:282:5: uninit_use_in_call: Using uninitialized value "Guard._M_owns" when calling "unlock". +# 280| if (ExFunc Fn = (FI == Fns.ExportedFunctions.end()) ? lookupFunction(F) +# 281| : FI->second) { +# 282|-> Guard.unlock(); +# 283| return Fn(F->getFunctionType(), ArgVals); +# 284| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:274:3: var_decl: Declaring variable "Guard". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:300:3: uninit_use_in_call: Using uninitialized value "Guard._M_device" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:300:3: uninit_use_in_call: Using uninitialized value "Guard._M_owns" when calling "unlock". +# 298| } +# 299| +# 300|-> Guard.unlock(); +# 301| +# 302| GenericValue Result; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:509:3: identity_transfer: Passing "18446744073709551615UL" as argument 1 to member function "getLimitedValue", which returns that argument. +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:509:3: overrun-buffer-arg: Calling "memcpy" with "llvm::GVTOP(Args[0UL])" and "(size_t)Args[2UL].IntVal.getLimitedValue(18446744073709551615UL)" is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned. +# 507| static GenericValue lle_X_memcpy(FunctionType *FT, +# 508| ArrayRef Args) { +# 509|-> memcpy(GVTOP(Args[0]), GVTOP(Args[1]), +# 510| (size_t)(Args[2].IntVal.getLimitedValue())); +# 511| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:509:3: identity_transfer: Passing "18446744073709551615UL" as argument 1 to member function "getLimitedValue", which returns that argument. +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:509:3: overrun-buffer-arg: Calling "memcpy" with "llvm::GVTOP(Args[1UL])" and "(size_t)Args[2UL].IntVal.getLimitedValue(18446744073709551615UL)" is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned. +# 507| static GenericValue lle_X_memcpy(FunctionType *FT, +# 508| ArrayRef Args) { +# 509|-> memcpy(GVTOP(Args[0]), GVTOP(Args[1]), +# 510| (size_t)(Args[2].IntVal.getLimitedValue())); +# 511| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2312:3: extract: Calling "back" which extracts wrapped state from "IPLS.CurDefGeneratorStack". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2312:3: identity_transfer: Member function call "IPLS.CurDefGeneratorStack.back()->lock()" returns "IPLS.CurDefGeneratorStack.back()" ("this"). +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2312:3: assign: Assigning: "DG" = "IPLS.CurDefGeneratorStack.back()->lock()". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2313:5: invalidate: Calling "pop_back" invalidates the internal representation of "IPLS.CurDefGeneratorStack". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Core.cpp:2314:5: use_after_free: Using invalidated internal representation of "IPLS.CurDefGeneratorStack". +# 2312| if (auto DG = IPLS.CurDefGeneratorStack.back().lock()) { +# 2313| IPLS.CurDefGeneratorStack.pop_back(); +# 2314|-> std::lock_guard Lock(DG->M); +# 2315| +# 2316| // If there are no pending lookups then mark the generator as free and + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:163:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.MappedSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:169:5: uninit_use_in_call: Using uninitialized value "Record.UnwindDataSize" when calling "Expected". +# 167| if (!Eh_frame) { +# 168| LLVM_DEBUG(dbgs() << "No .eh_frame section found\n"); +# 169|-> return Record; +# 170| } +# 171| if (!G.getTargetTriple().isOSBinFormatELF()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:163:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.MappedSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:173:5: uninit_use_in_call: Using uninitialized value "Record.UnwindDataSize" when calling "Expected". +# 171| if (!G.getTargetTriple().isOSBinFormatELF()) { +# 172| LLVM_DEBUG(dbgs() << "Not an ELF file, will not emit unwinding info\n"); +# 173|-> return Record; +# 174| } +# 175| auto SR = SectionRange(*Eh_frame); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:163:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.EHFrameAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrAddr" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.EHFrameHdrSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.MappedSize" when calling "Expected". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:186:7: uninit_use_in_call: Using uninitialized value "Record.UnwindDataSize" when calling "Expected". +# 184| } else { +# 185| LLVM_DEBUG(dbgs() << "No .eh_frame_hdr section found\n"); +# 186|-> return Record; +# 187| } +# 188| Record.EHFrameHdrAddr = 0; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:230:3: var_decl: Declaring variable "Batch". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: uninit_use: Using uninitialized value "Batch". Field "Batch.UnwindingRecord.Prefix" is uninitialized. +# 249| Batch.UnwindingRecord.Prefix.TotalSize = 0; +# 250| } +# 251|-> return Batch; +# 252| } +# 253| } // namespace +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: note: trimmed 2 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:230:3: var_decl: Declaring variable "Batch". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: uninit_use: Using uninitialized value "Batch". Field "Batch.UnwindingRecord.UnwindDataSize" is uninitialized. +# 249| Batch.UnwindingRecord.Prefix.TotalSize = 0; +# 250| } +# 251|-> return Batch; +# 252| } +# 253| } // namespace +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp:251:3: note: trimmed 2 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp:535:3: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp:543:7: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp:543:7: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 541| // If there's no init sequence entry yet then we need to look up the +# 542| // header symbol to force creation of one. +# 543|-> Lock.unlock(); +# 544| +# 545| auto SearchOrder = +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp:543:7: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp:86:5: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp:93:7: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp:93:7: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 91| // callee. +# 92| if (I == AddrToSymbol.end()) { +# 93|-> Lock.unlock(); +# 94| ES.reportError( +# 95| make_error("No compile callback for trampoline at " + + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp:630:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp:630:5: leaked_storage: Ignoring storage allocated by "TmpMU.release()" leaks it. +# 628| +# 629| if (auto Err = unwrap(JD)->define(TmpMU)) { +# 630|-> TmpMU.release(); +# 631| return wrap(std::move(Err)); +# 632| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:142:3: tainted_data_argument: The check "Completed < static_cast(Size)" contains the tainted expression "Completed" which causes "Size" to be considered tainted. +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:143:5: overflow: The expression "Size - Completed" is deemed overflowed because at least one of its arguments has overflowed. +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:143:5: overflow_sink: "Size - Completed", which might have underflowed, is passed to "read(this->InFD, Dst + Completed, Size - Completed)". +# 141| ssize_t Completed = 0; +# 142| while (Completed < static_cast(Size)) { +# 143|-> ssize_t Read = ::read(InFD, Dst + Completed, Size - Completed); +# 144| if (Read <= 0) { +# 145| auto ErrNo = errno; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:172:3: tainted_data_argument: The check "Completed < static_cast(Size)" contains the tainted expression "Completed" which causes "Size" to be considered tainted. +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:173:5: overflow: The expression "Size - Completed" is deemed overflowed because at least one of its arguments has overflowed. +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:173:5: overflow_sink: "Size - Completed", which might have underflowed, is passed to "write(this->OutFD, Src + Completed, Size - Completed)". +# 171| ssize_t Completed = 0; +# 172| while (Completed < static_cast(Size)) { +# 173|-> ssize_t Written = ::write(OutFD, Src + Completed, Size - Completed); +# 174| if (Written < 0) { +# 175| auto ErrNo = errno; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:27:3: var_decl: Declaring variable "BBs". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:40:3: uninit_use: Using uninitialized value "BBs". Field "BBs.InlineElts" is uninitialized. +# 38| BBs.emplace_back(&BB); +# 39| +# 40|-> return BBs; +# 41| } +# 42| } // namespace + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:136:3: var_decl: Declaring variable "RearrangedBBSet". +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:144:3: uninit_use: Using uninitialized value "RearrangedBBSet". Field "RearrangedBBSet.InlineElts" is uninitialized. +# 142| assert(RearrangedBBSet.size() == BBList.size() && +# 143| "BasicBlock missing while rearranging?"); +# 144|-> return RearrangedBBSet; +# 145| } +# 146| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp:1470:5: move: "O" is moved (indicated by "std::move(O)"). +llvm-project-19.0.0.src/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp:1472:3: use_after_move: "O" is used after it has been already moved. +# 1470| OnEmitted(std::move(O), std::move(Info), std::move(Err)); +# 1471| +# 1472|-> RuntimeDyldImpl::finalizeAsync(std::move(RTDyld.Dyld), std::move(OnEmitted), +# 1473| std::move(O), std::move(Info)); +# 1474| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/FuzzMutate/OpDescriptor.cpp:35:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, 1UL)". +llvm-project-19.0.0.src/llvm/lib/FuzzMutate/OpDescriptor.cpp:35:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 33| auto &Sem = T->getFltSemantics(); +# 34| Cs.push_back(ConstantFP::get(Ctx, APFloat::getZero(Sem))); +# 35|-> Cs.push_back(ConstantFP::get(Ctx, APFloat(Sem, 1))); +# 36| Cs.push_back(ConstantFP::get(Ctx, APFloat(Sem, 42))); +# 37| Cs.push_back(ConstantFP::get(Ctx, APFloat::getLargest(Sem))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/FuzzMutate/OpDescriptor.cpp:36:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, 42UL)". +llvm-project-19.0.0.src/llvm/lib/FuzzMutate/OpDescriptor.cpp:36:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 34| Cs.push_back(ConstantFP::get(Ctx, APFloat::getZero(Sem))); +# 35| Cs.push_back(ConstantFP::get(Ctx, APFloat(Sem, 1))); +# 36|-> Cs.push_back(ConstantFP::get(Ctx, APFloat(Sem, 42))); +# 37| Cs.push_back(ConstantFP::get(Ctx, APFloat::getLargest(Sem))); +# 38| Cs.push_back(ConstantFP::get(Ctx, APFloat::getSmallest(Sem))); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/IR/AsmWriter.cpp:2629:7: extract: Calling "get" which extracts wrapped state from local "MachineStorage". +llvm-project-19.0.0.src/llvm/lib/IR/AsmWriter.cpp:2629:7: escape: The internal representation of local "MachineStorage" escapes into "WriterCtx.Machine", but is destroyed when it exits scope. +# 2627| if (!WriterCtx.Machine) { +# 2628| MachineStorage = std::make_unique(WriterCtx.Context); +# 2629|-> WriterCtx.Machine = MachineStorage.get(); +# 2630| } +# 2631| int Slot = WriterCtx.Machine->getMetadataSlot(N); + +Error: BAD_FREE (CWE-763): +llvm-project-19.0.0.src/llvm/lib/IR/BasicBlock.cpp:126:5: address: Taking address of "*Inst.DebugMarker". +llvm-project-19.0.0.src/llvm/lib/IR/BasicBlock.cpp:126:5: assign: Assigning: "Marker" = "*Inst.DebugMarker". +llvm-project-19.0.0.src/llvm/lib/IR/BasicBlock.cpp:131:5: incorrect_free: "eraseFromParent" frees incorrect pointer "Marker". +# 129| DR.createDebugIntrinsic(getModule(), nullptr)); +# 130| +# 131|-> Marker.eraseFromParent(); +# 132| } +# 133| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/ConstantFold.cpp:93:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(DestTy->getFltSemantics(), CI->getValue())". +llvm-project-19.0.0.src/llvm/lib/IR/ConstantFold.cpp:93:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 91| // See note below regarding the PPC_FP128 restriction. +# 92| if (DestTy->isFloatingPointTy() && !DestTy->isPPC_FP128Ty()) +# 93|-> return ConstantFP::get(DestTy->getContext(), +# 94| APFloat(DestTy->getFltSemantics(), +# 95| CI->getValue())); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/DataLayout.cpp:1001:3: var_decl: Declaring variable "Indices". +llvm-project-19.0.0.src/llvm/lib/IR/DataLayout.cpp:1010:3: uninit_use: Using uninitialized value "Indices". Field "Indices.InlineElts" is uninitialized. +# 1008| } +# 1009| +# 1010|-> return Indices; +# 1011| } +# 1012| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/LLVMRemarkStreamer.cpp:62:3: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/llvm/lib/IR/LLVMRemarkStreamer.cpp:78:3: uninit_use: Using uninitialized value "R". Field "R.Args.InlineElts" is uninitialized. +# 76| } +# 77| +# 78|-> return R; +# 79| } +# 80| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:265:3: var_decl: Declaring variable "MDUsers". +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:268:3: uninit_use: Using uninitialized value "MDUsers". Field "MDUsers.InlineElts" is uninitialized. +# 266| for (auto *UserWithID : MDUsersWithID) +# 267| MDUsers.push_back(cast(UserWithID->first)); +# 268|-> return MDUsers; +# 269| } +# 270| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:290:3: var_decl: Declaring variable "DVRUsers". +llvm-project-19.0.0.src/llvm/lib/IR/Metadata.cpp:293:3: uninit_use: Using uninitialized value "DVRUsers". Field "DVRUsers.InlineElts" is uninitialized. +# 291| for (auto UserWithID : DVRUsersWithID) +# 292| DVRUsers.push_back(UserWithID->first.get()->getUser()); +# 293|-> return DVRUsers; +# 294| } +# 295| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/ReplaceConstant.cpp:27:3: var_decl: Declaring variable "NewInsts". +llvm-project-19.0.0.src/llvm/lib/IR/ReplaceConstant.cpp:49:3: uninit_use: Using uninitialized value "NewInsts". Field "NewInsts.InlineElts" is uninitialized. +# 47| llvm_unreachable("Not an expandable user"); +# 48| } +# 49|-> return NewInsts; +# 50| } +# 51| + +Error: USE_AFTER_FREE (CWE-416): +llvm-project-19.0.0.src/llvm/lib/IR/Value.cpp:1152:3: identity_transfer: Member function call "Handles->getPointerIntoBucketsArray()" returns field "Buckets". +llvm-project-19.0.0.src/llvm/lib/IR/Value.cpp:1152:3: assign: Assigning: "OldBucketPtr" = "Handles->getPointerIntoBucketsArray()". +llvm-project-19.0.0.src/llvm/lib/IR/Value.cpp:1154:3: freed_arg: "operator []" frees "Handles.Buckets". +llvm-project-19.0.0.src/llvm/lib/IR/Value.cpp:1161:3: pass_freed_arg: Passing freed pointer "OldBucketPtr" as an argument to "isPointerIntoBucketsArray". +# 1159| // If reallocation didn't happen or if this was the first insertion, don't +# 1160| // walk the table. +# 1161|-> if (Handles.isPointerIntoBucketsArray(OldBucketPtr) || +# 1162| Handles.size() == 1) { +# 1163| return; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:3766:3: var_decl: Declaring variable "Copy". +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:3778:3: uninit_use: Using uninitialized value "Copy". Field "Copy.Attrs.InlineElts" is uninitialized. +# 3776| Attrs.hasParamAttr(I, Attribute::ByRef))) +# 3777| Copy.addAlignmentAttr(Attrs.getParamAlignment(I)); +# 3778|-> return Copy; +# 3779| } +# 3780| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5293:7: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5308:7: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 92 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5314:14: overrun-call: Overrunning callee's array of size 89 by passing argument "Kind" (which evaluates to 92) in call to "canUseAsParamAttr". +# 5312| Check(isa(Call.getOperand(Elem.Begin + 1)), +# 5313| "the second argument should be a constant integral value", Call); +# 5314|-> } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5315| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5316| } else if (Attribute::canUseAsFnAttr(Kind)) { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5293:7: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5308:7: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 92 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/IR/Verifier.cpp:5316:14: overrun-call: Overrunning callee's array of size 89 by passing argument "Kind" (which evaluates to 92) in call to "canUseAsFnAttr". +# 5314| } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5315| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5316|-> } else if (Attribute::canUseAsFnAttr(Kind)) { +# 5317| Check((ArgCount) == 0, "this attribute has no argument", Call); +# 5318| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/MCCodeView.cpp:520:3: var_decl: Declaring variable "CurSourceLoc" without initializer. +llvm-project-19.0.0.src/llvm/lib/MC/MCCodeView.cpp:602:5: uninit_use: Using uninitialized value "CurSourceLoc". Field "CurSourceLoc.Col" is uninitialized. +# 600| +# 601| LastLabel = Loc.getLabel(); +# 602|-> LastSourceLoc = CurSourceLoc; +# 603| } +# 604| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/AsmParser.cpp:3268:3: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/AsmParser.cpp:3277:7: uninit_use_in_call: Using uninitialized value "Value.U" when calling "~APFloat". +# 3275| Value = APFloat::getNaN(Semantics, false, ~0); +# 3276| else +# 3277|-> return TokError("invalid floating point literal"); +# 3278| } else if (errorToBool( +# 3279| Value.convertFromString(IDVal, APFloat::rmNearestTiesToEven) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/AsmParser.cpp:3268:3: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/AsmParser.cpp:3278:10: uninit_use_in_call: Using uninitialized value "Value.U" when calling "convertFromString". +# 3276| else +# 3277| return TokError("invalid floating point literal"); +# 3278|-> } else if (errorToBool( +# 3279| Value.convertFromString(IDVal, APFloat::rmNearestTiesToEven) +# 3280| .takeError())) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:1489:3: var_decl: Declaring variable "Refs". +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:1508:3: uninit_use: Using uninitialized value "Refs". Field "Refs.InlineElts" is uninitialized. +# 1506| } +# 1507| Refs.emplace_back(Start, getTok().getLoc().getPointer() - Start); +# 1508|-> return Refs; +# 1509| } +# 1510| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:3834:3: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:3844:7: uninit_use_in_call: Using uninitialized value "Value.U" when calling "~APFloat". +# 3842| Value = APFloat::getZero(Semantics); +# 3843| else +# 3844|-> return TokError("invalid floating point literal"); +# 3845| } else if (IDVal.consume_back("r") || IDVal.consume_back("R")) { +# 3846| // MASM hexadecimal floating-point literal; no APFloat conversion needed. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:3834:3: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:3850:7: uninit_use_in_call: Using uninitialized value "Value.U" when calling "~APFloat". +# 3848| unsigned SizeInBits = Value.getSizeInBits(Semantics); +# 3849| if (SizeInBits != (IDVal.size() << 2)) +# 3850|-> return TokError("invalid floating point literal"); +# 3851| +# 3852| // Consume the numeric token. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:3834:3: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:3857:7: uninit_use_in_call: Using uninitialized value "Value.U" when calling "~APFloat". +# 3855| Res = APInt(SizeInBits, IDVal, 16); +# 3856| if (SignLoc.isValid()) +# 3857|-> return Warning(SignLoc, "MASM-style hex floats ignore explicit sign"); +# 3858| return false; +# 3859| } else if (errorToBool( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:3834:3: var_decl: Declaring variable "Value". +llvm-project-19.0.0.src/llvm/lib/MC/MCParser/MasmParser.cpp:3859:10: uninit_use_in_call: Using uninitialized value "Value.U" when calling "convertFromString". +# 3857| return Warning(SignLoc, "MASM-style hex floats ignore explicit sign"); +# 3858| return false; +# 3859|-> } else if (errorToBool( +# 3860| Value.convertFromString(IDVal, APFloat::rmNearestTiesToEven) +# 3861| .takeError())) { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/MC/MCSectionMachO.cpp:119:3: assignment: Assigning: "SectionType" = "this->getType()". The value of "SectionType" may now be up to 255. +llvm-project-19.0.0.src/llvm/lib/MC/MCSectionMachO.cpp:123:3: illegal_address: "SectionTypeDescriptors + SectionType" evaluates to an address that is at byte offset 8160 of an array of 736 bytes. +# 121| "Invalid SectionType specified!"); +# 122| +# 123|-> if (!SectionTypeDescriptors[SectionType].AssemblerName.empty()) { +# 124| OS << ','; +# 125| OS << SectionTypeDescriptors[SectionType].AssemblerName; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/WasmObjectWriter.cpp:1658:11: var_decl: Declaring variable "Global". +llvm-project-19.0.0.src/llvm/lib/MC/WasmObjectWriter.cpp:1683:11: uninit_use_in_call: Using uninitialized value "Global". Field "Global.Offset" is uninitialized when calling "push_back". +# 1681| assert(WasmIndices.count(&WS) == 0); +# 1682| WasmIndices[&WS] = Global.Index; +# 1683|-> Globals.push_back(Global); +# 1684| } else { +# 1685| // An import; the index was assigned above + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/MC/WasmObjectWriter.cpp:1806:5: var_decl: Declaring variable "Info". +llvm-project-19.0.0.src/llvm/lib/MC/WasmObjectWriter.cpp:1818:5: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". +# 1816| } +# 1817| WS.setIndex(SymbolInfos.size()); +# 1818|-> SymbolInfos.emplace_back(Info); +# 1819| } +# 1820| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/MC/WinCOFFObjectWriter.cpp:672:5: assignment: Assigning: "SymbolSize" = "this->UseBigObj ? Symbol32Size : Symbol16Size". The value of "SymbolSize" is now 20. +llvm-project-19.0.0.src/llvm/lib/MC/WinCOFFObjectWriter.cpp:685:7: cond_between: Checking "Length > SymbolSize" implies that "Length" is between 1 and 20 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/MC/WinCOFFObjectWriter.cpp:690:9: overrun-local: Overrunning array of 20 bytes at byte offset 20 by dereferencing pointer "(char *)&Aux.Aux + Length". +# 688| } else { +# 689| memcpy(&Aux.Aux, Name.c_str() + Offset, Length); +# 690|-> memset((char *)&Aux.Aux + Length, 0, SymbolSize - Length); +# 691| break; +# 692| } + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/llvm/lib/MC/WinCOFFObjectWriter.cpp:1138:28: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "getTime()" is cast to "uint32_t". +# 1136| // /INCREMENTAL feature. +# 1137| if (Asm.isIncrementalLinkerCompatible()) { +# 1138|-> Header.TimeDateStamp = getTime(); +# 1139| } else { +# 1140| // Have deterministic output if /INCREMENTAL isn't needed. Also matches GNU. + +Error: BUFFER_SIZE (CWE-170): +llvm-project-19.0.0.src/llvm/lib/ObjCopy/COFF/COFFWriter.cpp:151:7: buffer_size_warning: Calling "strncpy" with a maximum size argument of 8 bytes on destination array "S.Sym.Name.ShortName" of size 8 bytes might leave the destination string unterminated. +# 149| S.Sym.Name.Offset.Offset = StrTabBuilder.getOffset(S.Name); +# 150| } else { +# 151|-> strncpy(S.Sym.Name.ShortName, S.Name.data(), COFF::NameSize); +# 152| } +# 153| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjCopy/ELF/ELFObject.cpp:703:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/llvm/lib/ObjCopy/ELF/ELFObject.cpp:720:3: uninit_use_in_call: Using uninitialized value "Sym.NameIndex" when calling "make_unique". +# 718| Sym.Size = SymbolSize; +# 719| Sym.Index = Symbols.size(); +# 720|-> Symbols.emplace_back(std::make_unique(Sym)); +# 721| Size += this->EntrySize; +# 722| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjCopy/ELF/ELFObject.cpp:703:3: var_decl: Declaring variable "Sym". +llvm-project-19.0.0.src/llvm/lib/ObjCopy/ELF/ELFObject.cpp:720:3: uninit_use_in_call: Using uninitialized value "Sym.NameIndex" when calling "make_unique". +llvm-project-19.0.0.src/llvm/lib/ObjCopy/ELF/ELFObject.cpp:720:3: uninit_use_in_call: Using uninitialized value "Sym.ShndxType" when calling "make_unique". +# 718| Sym.Size = SymbolSize; +# 719| Sym.Index = Symbols.size(); +# 720|-> Symbols.emplace_back(std::make_unique(Sym)); +# 721| Size += this->EntrySize; +# 722| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjCopy/ELF/ELFObject.cpp:1636:5: var_decl: Declaring variable "ToAdd". +llvm-project-19.0.0.src/llvm/lib/ObjCopy/ELF/ELFObject.cpp:1655:5: uninit_use_in_call: Using uninitialized value "ToAdd". Field "ToAdd.Addend" is uninitialized when calling "addRelocation". +# 1653| } +# 1654| +# 1655|-> Relocs->addRelocation(ToAdd); +# 1656| } +# 1657| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp:314:3: var_decl: Declaring variable "Sec". +llvm-project-19.0.0.src/llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp:326:7: uninit_use_in_call: Using uninitialized value "Sec.Index" when calling "make_unique". +# 324| for (const std::unique_ptr
&S : LC.Sections) +# 325| Addr = std::max(Addr, S->Addr + S->Size); +# 326|-> LC.Sections.push_back(std::make_unique
(Sec)); +# 327| LC.Sections.back()->Addr = Addr; +# 328| return Error::success(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp:314:3: var_decl: Declaring variable "Sec". +llvm-project-19.0.0.src/llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp:336:3: uninit_use_in_call: Using uninitialized value "Sec.Index" when calling "make_unique". +# 334| LoadCommand &NewSegment = +# 335| Obj.addSegment(TargetSegName, alignTo(Sec.Size, 16384)); +# 336|-> NewSegment.Sections.push_back(std::make_unique
(Sec)); +# 337| NewSegment.Sections.back()->Addr = *NewSegment.getSegmentVMAddr(); +# 338| return Error::success(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjCopy/MachO/MachOReader.cpp:225:3: var_decl: Declaring variable "SE". +llvm-project-19.0.0.src/llvm/lib/ObjCopy/MachO/MachOReader.cpp:231:3: uninit_use: Using uninitialized value "SE". Field "SE.Index" is uninitialized. +# 229| SE.n_desc = nlist.n_desc; +# 230| SE.n_value = nlist.n_value; +# 231|-> return SE; +# 232| } +# 233| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjCopy/wasm/WasmWriter.cpp:25:3: var_decl: Declaring variable "Header". +llvm-project-19.0.0.src/llvm/lib/ObjCopy/wasm/WasmWriter.cpp:45:3: uninit_use: Using uninitialized value "Header". Field "Header.InlineElts" is uninitialized. +# 43| // the LEB-encoded size. +# 44| SectionSize = SectionSize + 1 + HeaderSecSizeEncodingLen; +# 45|-> return Header; +# 46| } +# 47| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Object/MachOObjectFile.cpp:4355:3: var_decl: Declaring variable "CurSegAddress" without initializer. +llvm-project-19.0.0.src/llvm/lib/Object/MachOObjectFile.cpp:4373:5: uninit_use: Using uninitialized value "CurSegAddress". +# 4371| } +# 4372| Info.SegmentIndex = CurSegIndex - 1; +# 4373|-> Info.OffsetInSegment = Info.Address - CurSegAddress; +# 4374| Info.SegmentStartAddress = CurSegAddress; +# 4375| Sections.push_back(Info); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Object/MachOObjectFile.cpp:4495:3: var_decl: Declaring variable "Finish". +llvm-project-19.0.0.src/llvm/lib/Object/MachOObjectFile.cpp:4498:3: uninit_use_in_call: Using uninitialized value "Finish.Kind" when calling "MachOChainedFixupEntry". +# 4496| Finish.moveToEnd(); +# 4497| +# 4498|-> return make_range(fixup_iterator(Start), fixup_iterator(Finish)); +# 4499| } +# 4500| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:159:9: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:159:9: leaked_storage: Ignoring storage allocated by "ChildOrErr.get()->release()" leaks it. +# 157| } +# 158| if (!MFO) { +# 159|-> ChildOrErr.get().release(); +# 160| MFO.reset(O); +# 161| if (!CPU) + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:133:5: get_raw_ptr: Function "get" returns a pointer managed by "ChildOrErr.get()". +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:133:5: assign: Assigning: "Bin" = "ChildOrErr.get()->get()". +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:141:7: identity_transfer: Passing "Bin" as argument 1 to function "cast", which returns that argument. +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:141:7: assign: Assigning: "O" = "llvm::cast(Bin)". +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:160:9: multiple_init_smart_ptr: Function "reset" sets "MFO" with "O", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:160:9: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 158| if (!MFO) { +# 159| ChildOrErr.get().release(); +# 160|-> MFO.reset(O); +# 161| if (!CPU) +# 162| CPU.emplace(ObjectCPU); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:188:9: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:188:9: leaked_storage: Ignoring storage allocated by "ChildOrErr.get()->release()" leaks it. +# 186| +# 187| if (!IRFO) { +# 188|-> ChildOrErr.get().release(); +# 189| IRFO.reset(O); +# 190| if (!CPU) + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:133:5: get_raw_ptr: Function "get" returns a pointer managed by "ChildOrErr.get()". +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:133:5: assign: Assigning: "Bin" = "ChildOrErr.get()->get()". +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:165:7: identity_transfer: Passing "Bin" as argument 1 to function "cast", which returns that argument. +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:165:7: assign: Assigning: "O" = "llvm::cast(Bin)". +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:189:9: multiple_init_smart_ptr: Function "reset" sets "IRFO" with "O", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/llvm/lib/Object/MachOUniversalWriter.cpp:189:9: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 187| if (!IRFO) { +# 188| ChildOrErr.get().release(); +# 189|-> IRFO.reset(O); +# 190| if (!CPU) +# 191| CPU.emplace(*ObjectCPU); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:291:3: var_decl: Declaring variable "Result" without initializer. +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:296:3: uninit_use: Using uninitialized value "Result". Field "Result.Maximum" is uninitialized. +# 294| if (Result.Flags & wasm::WASM_LIMITS_FLAG_HAS_MAX) +# 295| Result.Maximum = readVaruint64(Ctx); +# 296|-> return Result; +# 297| } +# 298| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:710:5: var_decl: Declaring variable "Info". +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:886:5: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". +# 884| Twine(Info.Name), +# 885| object_error::parse_failed); +# 886|-> Symbols.emplace_back(Info, GlobalType, TableType, Signature); +# 887| LLVM_DEBUG(dbgs() << "Adding symbol: " << Symbols.back() << "\n"); +# 888| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:1327:5: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/llvm/lib/Object/WasmObjectFile.cpp:1329:5: uninit_use_in_call: Using uninitialized value "F". Field "F.Index" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1327| wasm::WasmFunction F; +# 1328| F.SigIndex = Type; +# 1329|-> Functions.push_back(F); +# 1330| } +# 1331| if (Ctx.Ptr != Ctx.End) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp:666:3: var_decl: Declaring variable "Kind" without initializer. +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp:669:3: uninit_use_in_call: Using uninitialized value "Kind" when calling "mapRequired". +# 667| if (IO.outputting()) +# 668| Kind = Obj.Symbol->Kind; +# 669|-> IO.mapRequired("Kind", Kind); +# 670| +# 671| #define SYMBOL_RECORD(EnumName, EnumVal, ClassName) \ + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/ELFYAML.cpp:1567:3: var_decl: Declaring variable "Type" without initializer. +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/ELFYAML.cpp:1601:3: uninit_use_in_call: Using uninitialized value "Type.value" when calling "operator ==". +# 1599| +# 1600| const auto &Obj = *static_cast(IO.getContext()); +# 1601|-> if (Obj.getMachine() == ELF::EM_MIPS && Type == ELF::SHT_MIPS_ABIFLAGS) { +# 1602| if (!IO.outputting()) +# 1603| Section.reset(new ELFYAML::MipsABIFlags()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/ELFYAML.cpp:1567:3: var_decl: Declaring variable "Type" without initializer. +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/ELFYAML.cpp:1608:3: uninit_use_in_call: Using uninitialized value "Type.value" when calling "operator ==". +# 1606| } +# 1607| +# 1608|-> if (Obj.getMachine() == ELF::EM_ARM && Type == ELF::SHT_ARM_EXIDX) { +# 1609| if (!IO.outputting()) +# 1610| Section.reset(new ELFYAML::ARMIndexTableSection()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/MachOEmitter.cpp:110:3: var_decl: Declaring variable "TempSec" without initializer. +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/MachOEmitter.cpp:122:3: uninit_use: Using uninitialized value "TempSec". Field "TempSec.reserved3" is uninitialized. +# 120| TempSec.reserved1 = Sec.reserved1; +# 121| TempSec.reserved2 = Sec.reserved2; +# 122|-> return TempSec; +# 123| } +# 124| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/MachOEmitter.cpp:694:3: var_decl: Declaring variable "FatArch" without initializer. +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/MachOEmitter.cpp:700:3: uninit_use: Using uninitialized value "FatArch". Field "FatArch.reserved" is uninitialized. +# 698| FatArch.size = Arch.size; +# 699| FatArch.align = Arch.align; +# 700|-> return FatArch; +# 701| } +# 702| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/MinidumpYAML.cpp:402:3: var_decl: Declaring variable "Type" without initializer. +llvm-project-19.0.0.src/llvm/lib/ObjectYAML/MinidumpYAML.cpp:405:3: uninit_use_in_call: Using uninitialized value "Type" when calling "mapRequired". +# 403| if (IO.outputting()) +# 404| Type = S->Type; +# 405|-> IO.mapRequired("Type", Type); +# 406| +# 407| if (!IO.outputting()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Passes/StandardInstrumentations.cpp:751:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Passes/StandardInstrumentations.cpp:781:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 779| llvm_unreachable("Unknown wrapped IR type"); +# 780| } +# 781|-> return Result; +# 782| } +# 783| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Passes/StandardInstrumentations.cpp:1342:3: var_decl: Declaring variable "Functions". +llvm-project-19.0.0.src/llvm/lib/Passes/StandardInstrumentations.cpp:1350:3: uninit_use: Using uninitialized value "Functions". Field "Functions.InlineElts" is uninitialized. +# 1348| Functions.push_back(&F); +# 1349| } +# 1350|-> return Functions; +# 1351| } +# 1352| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:184:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:208:9: uninit_use: Using uninitialized value "LastPoppedValue". +# 206| Current.VisitCount = StackElem::KVisitedOnce; +# 207| } else if (Current.VisitCount == StackElem::KVisitedOnce) { +# 208|-> Current.LHS = LastPoppedValue; +# 209| CounterStack.push(StackElem{E.RHS}); +# 210| Current.VisitCount = StackElem::KVisitedTwice; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:184:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:213:9: uninit_use: Using uninitialized value "LastPoppedValue". +# 211| } else { +# 212| int64_t LHS = Current.LHS; +# 213|-> int64_t RHS = LastPoppedValue; +# 214| LastPoppedValue = +# 215| E.Kind == CounterExpression::Subtract ? LHS - RHS : LHS + RHS; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:545:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:569:11: uninit_use: Using uninitialized value "LastPoppedValue". +# 567| Current.VisitCount = StackElem::KVisitedOnce; +# 568| } else if (Current.VisitCount == StackElem::KVisitedOnce) { +# 569|-> Current.LHS = LastPoppedValue; +# 570| CounterStack.push(StackElem{E.RHS}); +# 571| Current.VisitCount = StackElem::KVisitedTwice; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:545:3: var_decl: Declaring variable "LastPoppedValue" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:574:11: uninit_use: Using uninitialized value "LastPoppedValue". +# 572| } else { +# 573| int64_t LHS = Current.LHS; +# 574|-> int64_t RHS = LastPoppedValue; +# 575| LastPoppedValue = std::max(LHS, RHS); +# 576| CounterStack.pop(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProf.cpp:1605:3: var_decl: Declaring variable "H" without initializer. +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProf.cpp:1647:3: uninit_use_in_call: Using uninitialized value "H". Field "H.Unused" is uninitialized when calling "Expected". +# 1645| } +# 1646| +# 1647|-> return H; +# 1648| } +# 1649| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:113:5: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:113:5: assign: Assigning: "" = "llvm::InstrProfCorrelator::get(std::unique_ptr >(std::move(*BufferOrErr)), FileKind)". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:113:5: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 111| return std::move(Err); +# 112| +# 113|-> return get(std::move(*BufferOrErr), FileKind); +# 114| } +# 115| if (FileKind == BINARY) { + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:120:5: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:120:5: assign: Assigning: "" = "llvm::InstrProfCorrelator::get(std::unique_ptr >(std::move(*BufferOrErr)), FileKind)". +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfCorrelator.cpp:120:5: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 118| return std::move(Err); +# 119| +# 120|-> return get(std::move(*BufferOrErr), FileKind); +# 121| } +# 122| return make_error( + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfReader.cpp:961:5: move: "BitmapByteBuffer" is moved (indicated by "std::move(BitmapByteBuffer)"). +llvm-project-19.0.0.src/llvm/lib/ProfileData/InstrProfReader.cpp:961:5: use_after_move: "BitmapByteBuffer" is used after it has been already moved. +# 959| } +# 960| +# 961|-> DataBuffer.emplace_back(K, Hash, std::move(CounterBuffer), +# 962| std::move(BitmapByteBuffer)); +# 963| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:14:3: var_decl: Declaring variable "List". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:18:3: uninit_use: Using uninitialized value "List". Field "List.InlineElts" is uninitialized. +# 16| #include "llvm/ProfileData/MIBEntryDef.inc" +# 17| #undef MIBEntryDef +# 18|-> return List; +# 19| } +# 20| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:162:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:199:3: uninit_use: Using uninitialized value "Record". Field "Record.AllocSites.InlineElts" is uninitialized. +# 197| } +# 198| +# 199|-> return Record; +# 200| } +# 201| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:206:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:228:3: uninit_use: Using uninitialized value "Record". Field "Record.AllocSites.InlineElts" is uninitialized. +# 226| } +# 227| +# 228|-> return Record; +# 229| } +# 230| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:248:3: var_decl: Declaring variable "Record". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProf.cpp:260:3: uninit_use: Using uninitialized value "Record". Field "Record.AllocSites.InlineElts" is uninitialized. +# 258| Record.CallSites.push_back(Callback(CSId)); +# 259| +# 260|-> return Record; +# 261| } +# 262| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:90:3: var_decl: Declaring variable "Items". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:95:3: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 93| Ptr + I * sizeof(SegmentEntry))); +# 94| } +# 95|-> return Items; +# 96| } +# 97| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:104:3: var_decl: Declaring variable "Items". +llvm-project-19.0.0.src/llvm/lib/ProfileData/MemProfReader.cpp:113:3: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 111| Ptr += sizeof(MemInfoBlock); +# 112| } +# 113|-> return Items; +# 114| } +# 115| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFixedPoint.cpp:149:3: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/llvm/lib/Support/APFixedPoint.cpp:150:3: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromAPInt". +# 148| APSInt MaxInt = APFixedPoint::getMax(*this).getValue(); +# 149| APFloat F(FloatSema); +# 150|-> APFloat::opStatus Status = F.convertFromAPInt(MaxInt, MaxInt.isSigned(), +# 151| APFloat::rmNearestTiesToAway); +# 152| if ((Status & APFloat::opOverflow) || !isSigned()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFixedPoint.cpp:509:3: var_decl: Declaring variable "Flt". +llvm-project-19.0.0.src/llvm/lib/Support/APFixedPoint.cpp:510:3: uninit_use_in_call: Using uninitialized value "Flt.U" when calling "convertFromAPInt". +# 508| // given mode. +# 509| APFloat Flt(*OpSema); +# 510|-> APFloat::opStatus S = Flt.convertFromAPInt(Val, Sema.isSigned(), RM); +# 511| +# 512| // If we cared about checking for precision loss, we could look at this + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFixedPoint.cpp:587:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(std::pow(2, DstFXSema->getLsbWeight()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFixedPoint.cpp:587:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 585| // representable range of the fixed-point semantic even though no overflow +# 586| // would occur had we rounded first. +# 587|-> ScaleFactor = APFloat(std::pow(2, DstFXSema.getLsbWeight())); +# 588| ScaleFactor.convert(*OpSema, LosslessRM, &Ignored); +# 589| Val.roundToIntegral(RM); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:749:8: assignment: Assigning: "n" = "0U". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:756:7: overrun-local: Overrunning array "partsCount" of 16 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "n - 1U" (which evaluates to 4294967295). +# 754| /* Calculate pow(5,pow(2,n+3)) if we haven't yet. */ +# 755| if (pc == 0) { +# 756|-> pc = partsCount[n - 1]; +# 757| APInt::tcFullMultiply(pow5, pow5 - pc, pow5 - pc, pc, pc); +# 758| pc *= 2; + +Error: NO_EFFECT (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:3270:7: bad_memset: Function "memset" with fill value "'0'" (the zero character) in "memset(dst, 48, hexDigits - 1U)". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:3270:7: remediation: Did you intend to use 0 (the value zero)? +# 3268| if (hexDigits > 1) { +# 3269| *dst++ = '.'; +# 3270|-> memset (dst, '0', hexDigits - 1); +# 3271| dst += hexDigits - 1; +# 3272| } + +Error: NO_EFFECT (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:3374:5: bad_memset: Function "memset" with fill value "'0'" (the zero character) in "memset(dst, 48, outputDigits)". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:3374:5: remediation: Did you intend to use 0 (the value zero)? +# 3372| } else { +# 3373| /* Add trailing zeroes. */ +# 3374|-> memset (dst, '0', outputDigits); +# 3375| dst += outputDigits; +# 3376| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4290:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloat::IEEEFloat(reciprocal), this->semantics)". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4290:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4288| +# 4289| if (inv) +# 4290|-> *inv = APFloat(reciprocal, *semantics); +# 4291| +# 4292| return true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4854:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(RHS->bitcastToAPInt()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4854:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4852| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4853| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 4854|-> auto Ret = +# 4855| Tmp.divide(APFloat(semPPCDoubleDoubleLegacy, RHS.bitcastToAPInt()), RM); +# 4856| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4863:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(RHS->bitcastToAPInt()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4863:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4861| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4862| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 4863|-> auto Ret = +# 4864| Tmp.remainder(APFloat(semPPCDoubleDoubleLegacy, RHS.bitcastToAPInt())); +# 4865| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4872:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(RHS->bitcastToAPInt()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4872:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4870| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4871| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 4872|-> auto Ret = Tmp.mod(APFloat(semPPCDoubleDoubleLegacy, RHS.bitcastToAPInt())); +# 4873| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); +# 4874| return Ret; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4883:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(Addend->bitcastToAPInt()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4883:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4881| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4882| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 4883|-> auto Ret = Tmp.fusedMultiplyAdd( +# 4884| APFloat(semPPCDoubleDoubleLegacy, Multiplicand.bitcastToAPInt()), +# 4885| APFloat(semPPCDoubleDoubleLegacy, Addend.bitcastToAPInt()), RM); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4942:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semIEEEdouble, llvm::APInt(64U, 9218868437227405311UL, false))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4942:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4940| void DoubleAPFloat::makeLargest(bool Neg) { +# 4941| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4942|-> Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x7fefffffffffffffull)); +# 4943| Floats[1] = APFloat(semIEEEdouble, APInt(64, 0x7c8ffffffffffffeull)); +# 4944| if (Neg) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4943:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semIEEEdouble, llvm::APInt(64U, 8975674057349398526UL, false))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4943:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4941| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4942| Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x7fefffffffffffffull)); +# 4943|-> Floats[1] = APFloat(semIEEEdouble, APInt(64, 0x7c8ffffffffffffeull)); +# 4944| if (Neg) +# 4945| changeSign(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4956:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semIEEEdouble, llvm::APInt(64U, 243194379878006784UL, false))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:4956:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4954| void DoubleAPFloat::makeSmallestNormalized(bool Neg) { +# 4955| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4956|-> Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x0360000000000000ull)); +# 4957| if (Neg) +# 4958| Floats[0].changeSign(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5017:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(this->bitcastToAPInt()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5017:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5015| roundingMode RM, bool *IsExact) const { +# 5016| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 5017|-> return APFloat(semPPCDoubleDoubleLegacy, bitcastToAPInt()) +# 5018| .convertToInteger(Input, Width, IsSigned, RM, IsExact); +# 5019| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5036:3: var_decl: Declaring variable "Tmp". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5037:3: uninit_use_in_call: Using uninitialized value "Tmp.U" when calling "convertFromSignExtendedInteger". +# 5035| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 5036| APFloat Tmp(semPPCDoubleDoubleLegacy); +# 5037|-> auto Ret = Tmp.convertFromSignExtendedInteger(Input, InputSize, IsSigned, RM); +# 5038| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); +# 5039| return Ret; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5047:3: var_decl: Declaring variable "Tmp". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5048:3: uninit_use_in_call: Using uninitialized value "Tmp.U" when calling "convertFromZeroExtendedInteger". +# 5046| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 5047| APFloat Tmp(semPPCDoubleDoubleLegacy); +# 5048|-> auto Ret = Tmp.convertFromZeroExtendedInteger(Input, InputSize, IsSigned, RM); +# 5049| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); +# 5050| return Ret; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5058:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(this->bitcastToAPInt()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5058:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5056| roundingMode RM) const { +# 5057| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 5058|-> return APFloat(semPPCDoubleDoubleLegacy, bitcastToAPInt()) +# 5059| .convertToHexString(DST, HexDigits, UpperCase, RM); +# 5060| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5104:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(this->bitcastToAPInt()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5104:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5102| bool TruncateZero) const { +# 5103| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 5104|-> APFloat(semPPCDoubleDoubleLegacy, bitcastToAPInt()) +# 5105| .toString(Str, FormatPrecision, FormatMaxPadding, TruncateZero); +# 5106| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5110:3: var_decl: Declaring variable "Tmp". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5112:5: uninit_use_in_call: Using uninitialized value "Tmp.U" when calling "~APFloat". +# 5110| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 5111| if (!inv) +# 5112|-> return Tmp.getExactInverse(nullptr); +# 5113| APFloat Inv(semPPCDoubleDoubleLegacy); +# 5114| auto Ret = Tmp.getExactInverse(&Inv); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5115:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDouble, llvm::APInt(Inv.bitcastToAPInt()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5115:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5113| APFloat Inv(semPPCDoubleDoubleLegacy); +# 5114| auto Ret = Tmp.getExactInverse(&Inv); +# 5115|-> *inv = APFloat(semPPCDoubleDouble, Inv.bitcastToAPInt()); +# 5116| return Ret; +# 5117| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5110:3: var_decl: Declaring variable "Tmp". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5116:3: uninit_use_in_call: Using uninitialized value "Tmp.U" when calling "~APFloat". +# 5114| auto Ret = Tmp.getExactInverse(&Inv); +# 5115| *inv = APFloat(semPPCDoubleDouble, Inv.bitcastToAPInt()); +# 5116|-> return Ret; +# 5117| } +# 5118| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5155:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semIEEEdouble)". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5155:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5153| if (usesLayout(Semantics)) { +# 5154| const fltSemantics& S = F.getSemantics(); +# 5155|-> new (&Double) +# 5156| DoubleAPFloat(Semantics, APFloat(std::move(F), S), +# 5157| APFloat(semIEEEdouble)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5176:10: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5178:3: uninit_use_in_call: Using uninitialized value "this->U" when calling "convertFromString". +# 5176| APFloat::APFloat(const fltSemantics &Semantics, StringRef S) +# 5177| : APFloat(Semantics) { +# 5178|-> auto StatusOrErr = convertFromString(S, rmNearestTiesToEven); +# 5179| assert(StatusOrErr && "Invalid floating point representation"); +# 5180| consumeError(StatusOrErr.takeError()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5209:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(ToSemantics, llvm::APInt(this->U.IEEE.bitcastToAPInt()))". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5209:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5207| assert(&ToSemantics == &semPPCDoubleDouble); +# 5208| auto Ret = U.IEEE.convert(semPPCDoubleDoubleLegacy, RM, losesInfo); +# 5209|-> *this = APFloat(ToSemantics, U.IEEE.bitcastToAPInt()); +# 5210| return Ret; +# 5211| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5215:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloat::IEEEFloat(std::move(this->getIEEE())), ToSemantics)". +llvm-project-19.0.0.src/llvm/lib/Support/APFloat.cpp:5215:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5213| usesLayout(ToSemantics)) { +# 5214| auto Ret = getIEEE().convert(ToSemantics, RM, losesInfo); +# 5215|-> *this = APFloat(std::move(getIEEE()), ToSemantics); +# 5216| return Ret; +# 5217| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Support/ConvertUTFWrapper.cpp:66:3: address_of: Taking address with "&Source" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Support/ConvertUTFWrapper.cpp:66:3: assign: Assigning: "SourceStart" = "&Source". +llvm-project-19.0.0.src/llvm/lib/Support/ConvertUTFWrapper.cpp:67:3: ptr_arith: Using "SourceStart" as an array. This might corrupt or misinterpret adjacent memory locations. +# 65| bool ConvertCodePointToUTF8(unsigned Source, char *&ResultPtr) { +# 66| const UTF32 *SourceStart = &Source; +# 67|-> const UTF32 *SourceEnd = SourceStart + 1; +# 68| UTF8 *TargetStart = reinterpret_cast(ResultPtr); +# 69| UTF8 *TargetEnd = TargetStart + 4; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Support/DJB.cpp:31:3: address_of: Taking address with "&C" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Support/DJB.cpp:31:3: ptr_arith: Using "&C" as an array. This might corrupt or misinterpret adjacent memory locations. +# 29| // non-empty input. +# 30| assert(!Buffer.empty()); +# 31|-> ConvertUTF8toUTF32(&Begin8, reinterpret_cast(Buffer.end()), +# 32| &Begin32, &C + 1, lenientConversion); +# 33| Buffer = Buffer.drop_front(Begin8 - Begin8Const); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Support/DJB.cpp:38:3: address_of: Taking address with "&C" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Support/DJB.cpp:38:3: assign: Assigning: "Begin32" = "&C". +llvm-project-19.0.0.src/llvm/lib/Support/DJB.cpp:43:3: callee_ptr_arith: Passing "Begin32" via argument "&Begin32" to function "ConvertUTF32toUTF8" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 41| // The case-folded output should always be a valid unicode character, so use +# 42| // strict mode here. +# 43|-> ConversionResult CR = ConvertUTF32toUTF8(&Begin32, &C + 1, &Begin8, +# 44| Storage.end(), strictConversion); +# 45| assert(CR == conversionOK && "Case folding produced invalid char?"); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Support/DJB.cpp:43:3: address_of: Taking address with "&C" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Support/DJB.cpp:43:3: ptr_arith: Using "&C" as an array. This might corrupt or misinterpret adjacent memory locations. +# 41| // The case-folded output should always be a valid unicode character, so use +# 42| // strict mode here. +# 43|-> ConversionResult CR = ConvertUTF32toUTF8(&Begin32, &C + 1, &Begin8, +# 44| Storage.end(), strictConversion); +# 45| assert(CR == conversionOK && "Case folding produced invalid char?"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/MD5.cpp:282:3: var_decl: Declaring variable "Str". +llvm-project-19.0.0.src/llvm/lib/Support/MD5.cpp:284:3: uninit_use: Using uninitialized value "Str". Field "Str.InlineElts" is uninitialized. +# 282| SmallString<32> Str; +# 283| toHex(*this, /*LowerCase*/ true, Str); +# 284|-> return Str; +# 285| } +# 286| + +Error: NO_EFFECT (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Support/NativeFormatting.cpp:151:3: bad_memset: Function "memset" with fill value "'0'" (the zero character) in "memset(NumberBuffer, 48, 128UL)". +llvm-project-19.0.0.src/llvm/lib/Support/NativeFormatting.cpp:151:3: remediation: Did you intend to use 0 (the value zero)? +# 149| +# 150| char NumberBuffer[kMaxWidth]; +# 151|-> ::memset(NumberBuffer, '0', std::size(NumberBuffer)); +# 152| if (Prefix) +# 153| NumberBuffer[1] = 'x'; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/Parallel.cpp:125:7: var_decl: Declaring variable "Lock". +llvm-project-19.0.0.src/llvm/lib/Support/Parallel.cpp:140:7: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-project-19.0.0.src/llvm/lib/Support/Parallel.cpp:140:7: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 138| auto Task = std::move(Queue.back()); +# 139| Queue.pop_back(); +# 140|-> Lock.unlock(); +# 141| Task(); +# 142| if (Sequential) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1001:7: tainted_data_return: Called function "write(WriteFD, Buf, BytesRead)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1001:7: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1004:7: overflow: The expression "BytesRead" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1001:7: overflow_sink: "BytesRead", which might be negative, is passed to "write(WriteFD, Buf, BytesRead)". +# 999| break; +# 1000| while (BytesRead) { +# 1001|-> BytesWritten = write(WriteFD, Buf, BytesRead); +# 1002| if (BytesWritten < 0) +# 1003| break; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1019:3: open_arg: "openFileForRead" opens handle stored into "ReadFD". +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1020:5: leaked_handle: Handle variable "ReadFD" going out of scope leaks the handle. +# 1018| int ReadFD, WriteFD; +# 1019| if (std::error_code EC = openFileForRead(From, ReadFD, OF_None)) +# 1020|-> return EC; +# 1021| if (std::error_code EC = +# 1022| openFileForWrite(To, WriteFD, CD_CreateAlways, OF_None)) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1038:3: open_arg: "openFileForRead" opens handle stored into "ReadFD". +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1039:5: leaked_handle: Handle variable "ReadFD" going out of scope leaks the handle. +# 1037| int ReadFD; +# 1038| if (std::error_code EC = openFileForRead(From, ReadFD, OF_None)) +# 1039|-> return EC; +# 1040| +# 1041| std::error_code EC = copy_file_internal(ReadFD, ToFD); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1070:3: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/lib/Support/Path.cpp:1071:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1069| int FD; +# 1070| if (auto EC = openFileForRead(Path, FD, OF_None)) +# 1071|-> return EC; +# 1072| +# 1073| auto Result = md5_contents(FD); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/ScaledNumber.cpp:185:3: var_decl: Declaring variable "Float". +llvm-project-19.0.0.src/llvm/lib/Support/ScaledNumber.cpp:187:3: uninit_use_in_call: Using uninitialized value "Float.U" when calling "toString". +# 185| APFloat Float(APFloat::x87DoubleExtended(), APInt(80, RawBits)); +# 186| SmallVector Chars; +# 187|-> Float.toString(Chars, Precision, 0); +# 188| return std::string(Chars.begin(), Chars.end()); +# 189| } + +Error: CTOR_DTOR_LEAK (CWE-401): +llvm-project-19.0.0.src/llvm/lib/Support/StringMap.cpp:56:5: alloc_fn: Calling allocation function "init". +llvm-project-19.0.0.src/llvm/lib/Support/StringMap.cpp:56:5: ctor_dtor_leak: The constructor allocates field "TheTable" of "llvm::StringMapImpl" but there is no destructor. +# 54| // buckets. To guarantee that "InitSize" number of entries can be inserted +# 55| // in the table without growing, we allocate just what is needed here. +# 56|-> init(getMinBucketToReserveForEntries(InitSize)); +# 57| return; +# 58| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/StringRef.cpp:598:3: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/llvm/lib/Support/StringRef.cpp:599:3: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromString". +# 597| bool StringRef::getAsDouble(double &Result, bool AllowInexact) const { +# 598| APFloat F(0.0); +# 599|-> auto StatusOrErr = F.convertFromString(*this, APFloat::rmNearestTiesToEven); +# 600| if (errorToBool(StatusOrErr.takeError())) +# 601| return true; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Path.inc:1124:3: open_arg: "openFile" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Path.inc:1126:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1124| std::error_code EC = openFile(Name, FD, Disp, Access, Flags, Mode); +# 1125| if (EC) +# 1126|-> return errorCodeToError(EC); +# 1127| return FD; +# 1128| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Path.inc:1175:3: open_arg: "openFileForRead" opens handle stored into "ResultFD". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Path.inc:1177:5: leaked_handle: Handle variable "ResultFD" going out of scope leaks the handle. +# 1175| std::error_code EC = openFileForRead(Name, ResultFD, Flags, RealPath); +# 1176| if (EC) +# 1177|-> return errorCodeToError(EC); +# 1178| return ResultFD; +# 1179| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:428:3: var_decl: Declaring variable "WaitResult". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:442:7: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 440| if (WaitResult.Pid == 0) { +# 441| // Non-blocking wait. +# 442|-> return WaitResult; +# 443| } else { +# 444| if (SecondsToWait && errno == EINTR && !Polling) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:428:3: var_decl: Declaring variable "WaitResult". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:461:9: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 459| +# 460| WaitResult.ReturnCode = -2; // Timeout detected +# 461|-> return WaitResult; +# 462| } else if (errno != EINTR) { +# 463| MakeErrMsg(ErrMsg, "Error waiting for child process"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:428:3: var_decl: Declaring variable "WaitResult". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:465:9: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 463| MakeErrMsg(ErrMsg, "Error waiting for child process"); +# 464| WaitResult.ReturnCode = -1; +# 465|-> return WaitResult; +# 466| } +# 467| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:428:3: var_decl: Declaring variable "WaitResult". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:499:7: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 497| *ErrMsg = llvm::sys::StrError(ENOENT); +# 498| WaitResult.ReturnCode = -1; +# 499|-> return WaitResult; +# 500| } +# 501| if (result == 126) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:428:3: var_decl: Declaring variable "WaitResult". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:505:7: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 503| *ErrMsg = "Program could not be executed"; +# 504| WaitResult.ReturnCode = -1; +# 505|-> return WaitResult; +# 506| } +# 507| } else if (WIFSIGNALED(status)) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:428:3: var_decl: Declaring variable "WaitResult". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Program.inc:519:3: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 517| WaitResult.ReturnCode = -2; +# 518| } +# 519|-> return WaitResult; +# 520| } +# 521| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Signals.inc:122:5: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Signals.inc:122:5: var_assign: Assigning: "NewHead" = storage returned from "new ::FileToRemoveList(Filename)". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Signals.inc:125:5: noescape: Resource "NewHead" is not freed or pointed-to in "compare_exchange_strong". +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Signals.inc:129:3: leaked_storage: Variable "NewHead" going out of scope leaks the storage it points to. +# 127| OldHead = nullptr; +# 128| } +# 129|-> } +# 130| +# 131| // Not signal-safe. + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Signals.inc:267:3: tainted_data_return: Called function "sysconf(_SC_SIGSTKSZ)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Signals.inc:267:3: overflow: The expression "sysconf(_SC_SIGSTKSZ) + 65536L" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Signals.inc:267:3: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-project-19.0.0.src/llvm/lib/Support/Unix/Signals.inc:279:3: overflow_sink: "AltStackSize", which might be negative, is passed to "llvm::safe_malloc(AltStackSize)". +# 277| +# 278| stack_t AltStack = {}; +# 279|-> AltStack.ss_sp = static_cast(safe_malloc(AltStackSize)); +# 280| NewAltStackPointer = AltStack.ss_sp; // Save to avoid reporting a leak. +# 281| AltStack.ss_size = AltStackSize; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/raw_ostream.cpp:590:5: open_arg: "openFileForReadWrite" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/lib/Support/raw_ostream.cpp:594:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 592| EC = sys::fs::openFileForWrite(Filename, FD, Disp, Flags); +# 593| if (EC) +# 594|-> return -1; +# 595| +# 596| return FD; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:77:3: open_fn: Returning handle opened by "socket". +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:77:3: var_assign: Assigning: "Socket" = handle returned from "socket(1, SOCK_STREAM, 0)". +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:85:3: noescape: Resource "Socket" is not freed or pointed-to in "connect". +llvm-project-19.0.0.src/llvm/lib/Support/raw_socket_stream.cpp:86:5: leaked_handle: Handle variable "Socket" going out of scope leaks the handle. +# 84| struct sockaddr_un Addr = setSocketAddr(SocketPath); +# 85| if (::connect(Socket, (struct sockaddr *)&Addr, sizeof(Addr)) == -1) +# 86|-> return llvm::make_error(getLastSocketErrorCode(), +# 87| "Connect socket failed"); +# 88| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:239:3: new_object: Calling single-object form of 'new': "new (Mem) llvm::RecordRecTy(RK, Classes.size())". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:239:3: assign: Assigning: "Ty" = "new (Mem) llvm::RecordRecTy(RK, Classes.size())". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:240:3: callee_ptr_arith: Passing "Ty" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 238| totalSizeToAlloc(Classes.size()), alignof(RecordRecTy)); +# 239| RecordRecTy *Ty = new (Mem) RecordRecTy(RK, Classes.size()); +# 240|-> std::uninitialized_copy(Classes.begin(), Classes.end(), +# 241| Ty->getTrailingObjects()); +# 242| ThePool.InsertNode(Ty, IP); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:447:3: new_object: Calling single-object form of 'new': "new (Mem) llvm::BitsInit(RK, Range.size())". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:447:3: assign: Assigning: "I" = "new (Mem) llvm::BitsInit(RK, Range.size())". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:448:3: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 446| alignof(BitsInit)); +# 447| BitsInit *I = new (Mem) BitsInit(RK, Range.size()); +# 448|-> std::uninitialized_copy(Range.begin(), Range.end(), +# 449| I->getTrailingObjects()); +# 450| RKImpl.TheBitsInitPool.InsertNode(I, IP); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:674:3: new_object: Calling single-object form of 'new': "new (Mem) llvm::ListInit(Range.size(), EltTy)". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:674:3: assign: Assigning: "I" = "new (Mem) llvm::ListInit(Range.size(), EltTy)". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:675:3: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 673| alignof(ListInit)); +# 674| ListInit *I = new (Mem) ListInit(Range.size(), EltTy); +# 675|-> std::uninitialized_copy(Range.begin(), Range.end(), +# 676| I->getTrailingObjects()); +# 677| RK.TheListInitPool.InsertNode(I, IP); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:2253:3: new_object: Calling single-object form of 'new': "new (Mem) llvm::VarDefInit(Class, Args.size())". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:2253:3: assign: Assigning: "I" = "new (Mem) llvm::VarDefInit(Class, Args.size())". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:2254:3: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2252| totalSizeToAlloc(Args.size()), alignof(VarDefInit)); +# 2253| VarDefInit *I = new (Mem) VarDefInit(Class, Args.size()); +# 2254|-> std::uninitialized_copy(Args.begin(), Args.end(), +# 2255| I->getTrailingObjects()); +# 2256| RK.TheVarDefInitPool.InsertNode(I, IP); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:2451:3: new_object: Calling single-object form of 'new': "new (Mem) llvm::CondOpInit(CondRange.size(), Ty)". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:2451:3: assign: Assigning: "I" = "new (Mem) llvm::CondOpInit(CondRange.size(), Ty)". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:2453:3: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2451| CondOpInit *I = new(Mem) CondOpInit(CondRange.size(), Ty); +# 2452| +# 2453|-> std::uninitialized_copy(CondRange.begin(), CondRange.end(), +# 2454| I->getTrailingObjects()); +# 2455| std::uninitialized_copy(ValRange.begin(), ValRange.end(), + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:2575:3: new_object: Calling single-object form of 'new': "new (Mem) llvm::DagInit(V, VN, ArgRange.size(), NameRange.size())". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:2575:3: assign: Assigning: "I" = "new (Mem) llvm::DagInit(V, VN, ArgRange.size(), NameRange.size())". +llvm-project-19.0.0.src/llvm/lib/TableGen/Record.cpp:2576:3: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2574| alignof(BitsInit)); +# 2575| DagInit *I = new (Mem) DagInit(V, VN, ArgRange.size(), NameRange.size()); +# 2576|-> std::uninitialized_copy(ArgRange.begin(), ArgRange.end(), +# 2577| I->getTrailingObjects()); +# 2578| std::uninitialized_copy(NameRange.begin(), NameRange.end(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:757:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:766:20: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 764| Result.Rec = ParseClassID(); +# 765| } +# 766|-> if (!Result.Rec) return Result; +# 767| +# 768| // If there is no template arg list, we're done. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:757:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:771:5: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 769| if (!consume(tgtok::less)) { +# 770| Result.RefRange.End = Lex.getLoc(); +# 771|-> return Result; +# 772| } +# 773| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:757:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:776:5: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 774| if (ParseTemplateArgValueList(Result.TemplateArgs, CurRec, Result.Rec)) { +# 775| Result.Rec = nullptr; // Error parsing value list. +# 776|-> return Result; +# 777| } +# 778| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:757:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:786:3: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 784| +# 785| Result.RefRange.End = Lex.getLoc(); +# 786|-> return Result; +# 787| } +# 788| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:798:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:802:19: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 800| +# 801| Result.MC = ParseMultiClassID(); +# 802|-> if (!Result.MC) return Result; +# 803| +# 804| // If there is no template arg list, we're done. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:798:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:807:5: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 805| if (!consume(tgtok::less)) { +# 806| Result.RefRange.End = Lex.getLoc(); +# 807|-> return Result; +# 808| } +# 809| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:798:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:813:5: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 811| &Result.MC->Rec)) { +# 812| Result.MC = nullptr; // Error parsing value list. +# 813|-> return Result; +# 814| } +# 815| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:798:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/TableGen/TGParser.cpp:818:3: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 816| Result.RefRange.End = Lex.getLoc(); +# 817| +# 818|-> return Result; +# 819| } +# 820| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp:428:3: return_constant: Function call "llvm::countr_zero(SmallSize)" may return 32. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp:428:3: overrun-local: Overrunning array "RepeatedOnesTable" of 7 8-byte elements at element index 32 (byte offset 263) using index "llvm::countr_zero(SmallSize)" (which evaluates to 32). +# 426| // dividing the 64-bit value into fields of width SmallSize, and placing a +# 427| // one in the least significant bit of each field. +# 428|-> uint64_t SmallOnes = RepeatedOnesTable[countr_zero(SmallSize)]; +# 429| +# 430| // Now we try to find the number of ones in each of the smaller repetitions, + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp:1025:3: var_decl: Declaring variable "Opc" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp:1039:3: uninit_use_in_call: Using uninitialized value "Opc" when calling "get". +# 1037| auto TRI = MBB.getParent()->getSubtarget().getRegisterInfo(); +# 1038| unsigned SMReg32 = TRI->getSubReg(PStateSM, AArch64::sub_32); +# 1039|-> MachineInstrBuilder Tbx = +# 1040| BuildMI(MBB, MBBI, DL, TII->get(Opc)).addReg(SMReg32).addImm(0); +# 1041| +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp:1039:3: note: trimmed 1 message(s) with length over 512 + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:1015:5: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(Use)->getSuccessOrdering()" (which evaluates to 15) in call to "isStrongerThanMonotonic". +# 1013| // ldar and stlr have much more restrictive addressing modes (just a +# 1014| // register). +# 1015|-> if (isStrongerThanMonotonic(cast(Use)->getSuccessOrdering())) +# 1016| return false; +# 1017| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:3714:3: var_decl: Declaring variable "FVal". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:3721:7: uninit_use_in_call: Using uninitialized value "FVal.U" when calling "~APFloat". +# 3719| if (LN->getOperand(1).getOpcode() != AArch64ISD::ADDlow || +# 3720| !isa(LN->getOperand(1)->getOperand(1))) +# 3721|-> return false; +# 3722| +# 3723| ConstantPoolSDNode *CN = + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8258:3: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8258:3: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8554:7: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8627:5: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 8625| // link register. +# 8626| bool ModStackToSaveLR = false; +# 8627|-> if (std::any_of(FirstCand.begin(), std::prev(FirstCand.end()), +# 8628| [](const MachineInstr &MI) { return MI.isCall(); })) +# 8629| ModStackToSaveLR = true; +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8627:5: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8713:3: var_decl: Declaring variable "Ranges". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8787:5: uninit_use: Using uninitialized value "Ranges". Field "Ranges.InlineElts" is uninitialized. +# 8785| // If we exhausted the entire block, we have no safe ranges to outline. +# 8786| if (FirstPossibleEndPt == MBB.instr_rend()) +# 8787|-> return Ranges; +# 8788| // Current range. +# 8789| CreateNewRangeStartingAt(FirstPossibleEndPt->getIterator()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64SLSHardening.cpp:375:3: assignment: Assigning: "FirstOpIdxToRemove" = "std::max(ImpLROpIdx, ImpSPOpIdx)". The value of "FirstOpIdxToRemove" is now -1. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64SLSHardening.cpp:377:3: overrun-buffer-arg: Calling "removeOperand" with "BL->Operands" and "FirstOpIdxToRemove" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 375| int FirstOpIdxToRemove = std::max(ImpLROpIdx, ImpSPOpIdx); +# 376| int SecondOpIdxToRemove = std::min(ImpLROpIdx, ImpSPOpIdx); +# 377|-> BL->removeOperand(FirstOpIdxToRemove); +# 378| BL->removeOperand(SecondOpIdxToRemove); +# 379| // Now copy over the implicit operands from the original BLR + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64SLSHardening.cpp:376:3: assignment: Assigning: "SecondOpIdxToRemove" = "std::min(ImpLROpIdx, ImpSPOpIdx)". The value of "SecondOpIdxToRemove" is now -1. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64SLSHardening.cpp:378:3: overrun-buffer-arg: Calling "removeOperand" with "BL->Operands" and "SecondOpIdxToRemove" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 376| int SecondOpIdxToRemove = std::min(ImpLROpIdx, ImpSPOpIdx); +# 377| BL->removeOperand(FirstOpIdxToRemove); +# 378|-> BL->removeOperand(SecondOpIdxToRemove); +# 379| // Now copy over the implicit operands from the original BLR +# 380| BL->copyImplicitOps(MF, BLR); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:3155:3: var_decl: Declaring variable "Options". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:3159:5: uninit_use: Using uninitialized value "Options". Field "Options.LoadSizes.InlineElts" is uninitialized. +# 3157| // TODO: Add cost modeling for strict align. Misaligned loads expand to +# 3158| // a bunch of instructions when strict align is enabled. +# 3159|-> return Options; +# 3160| } +# 3161| Options.AllowOverlappingLoads = true; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:95:7: var_decl: Declaring variable "Prefix". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:129:7: uninit_use: Using uninitialized value "Prefix". Field "Prefix.ElementSize" is uninitialized. +# 127| } +# 128| +# 129|-> return Prefix; +# 130| } +# 131| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:1507:7: var_decl: Declaring variable "RealVal". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:1508:7: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "convertFromString". +# 1506| // Calculate its FP value. +# 1507| APFloat RealVal(APFloat::IEEEdouble()); +# 1508|-> auto StatusOrErr = +# 1509| RealVal.convertFromString(Desc->Repr, APFloat::rmTowardZero); +# 1510| if (errorToBool(StatusOrErr.takeError()) || *StatusOrErr != APFloat::opOK) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3325:5: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3328:3: uninit_use_in_call: Using uninitialized value "F.U" when calling "~APFloat". +# 3326| Operands.push_back( +# 3327| AArch64Operand::CreateFPImm(F, true, S, getContext())); +# 3328|-> } else { +# 3329| // Parse FP representation. +# 3330| APFloat RealVal(APFloat::IEEEdouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3330:5: var_decl: Declaring variable "RealVal". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3331:5: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "convertFromString". +# 3329| // Parse FP representation. +# 3330| APFloat RealVal(APFloat::IEEEdouble()); +# 3331|-> auto StatusOrErr = +# 3332| RealVal.convertFromString(Tok.getString(), APFloat::rmTowardZero); +# 3333| if (errorToBool(StatusOrErr.takeError())) + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:2889:9: return_constant: Function call "llvm::Log2_32(MemSizeInBytes)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:2889:9: overrun-local: Overrunning array "Opcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSizeInBytes)" (which evaluates to 4294967295). +# 2887| I.getOperand(0).setReg(NewVal); +# 2888| } +# 2889|-> I.setDesc(TII.get(Opcodes[Log2_32(MemSizeInBytes)])); +# 2890| } +# 2891| constrainSelectedInstRegOperands(I, TII, TRI, RBI); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3524:3: var_decl: Declaring variable "Mopcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3548:3: uninit_use: Using uninitialized value "Mopcode". +# 3546| const Register SizeCopy = MRI.cloneVirtualRegister(Size.getReg()); +# 3547| +# 3548|-> const bool IsSet = Mopcode == AArch64::MOPSMemorySetPseudo; +# 3549| const auto &SrcValRegClass = +# 3550| IsSet ? AArch64::GPR64RegClass : AArch64::GPR64commonRegClass; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3788:3: return_constant: Function call "llvm::Log2_32(SrcEltSize / 8U)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3788:3: assignment: Assigning: "EltIdx" = "llvm::Log2_32(SrcEltSize / 8U)". The value of "EltIdx" is now 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3790:3: overrun-local: Overrunning array "OpcTable" of 4 144-byte elements at element index 4294967295 (byte offset 618475290623) using index "EltIdx" (which evaluates to 4294967295). +# 3788| unsigned EltIdx = Log2_32(SrcEltSize / 8); +# 3789| unsigned NumEltsIdx = Log2_32(NumElts / 2); +# 3790|-> unsigned Opc = OpcTable[EltIdx][NumEltsIdx][PredIdx]; +# 3791| if (!Opc) { +# 3792| LLVM_DEBUG(dbgs() << "Could not map G_ICMP to cmp opcode"); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5609:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5609:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5607| AArch64::LDRQpre}; +# 5608| if (RBI.getRegBank(Dst, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5609|-> Opc = FPROpcodes[Log2_32(MemSize)]; +# 5610| else +# 5611| Opc = GPROpcodes[Log2_32(MemSize)]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5611:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5611:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5609| Opc = FPROpcodes[Log2_32(MemSize)]; +# 5610| else +# 5611|-> Opc = GPROpcodes[Log2_32(MemSize)]; +# 5612| } else { +# 5613| static constexpr unsigned GPROpcodes[] = { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5620:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5620:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5618| AArch64::LDRDpost, AArch64::LDRQpost}; +# 5619| if (RBI.getRegBank(Dst, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5620|-> Opc = FPROpcodes[Log2_32(MemSize)]; +# 5621| else +# 5622| Opc = GPROpcodes[Log2_32(MemSize)]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5622:7: return_constant: Function call "llvm::Log2_32(MemSize)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5622:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSize)" (which evaluates to 4294967295). +# 5620| Opc = FPROpcodes[Log2_32(MemSize)]; +# 5621| else +# 5622|-> Opc = GPROpcodes[Log2_32(MemSize)]; +# 5623| } +# 5624| auto Cst = getIConstantVRegVal(Offset, MRI); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5654:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5654:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5652| +# 5653| if (RBI.getRegBank(Val, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5654|-> Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5655| else +# 5656| Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5656:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5656:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5654| Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5655| else +# 5656|-> Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5657| } else { +# 5658| static constexpr unsigned GPROpcodes[] = { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5666:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5666:7: overrun-local: Overrunning array "FPROpcodes" of 5 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5664| +# 5665| if (RBI.getRegBank(Val, MRI, TRI)->getID() == AArch64::FPRRegBankID) +# 5666|-> Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5667| else +# 5668| Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5668:7: return_constant: Function call "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:5668:7: overrun-local: Overrunning array "GPROpcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(llvm::TypeSize(ValTy.getSizeInBytes()).operator llvm::details::FixedOrScalableQuantity::ScalarTy())" (which evaluates to 4294967295). +# 5666| Opc = FPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5667| else +# 5668|-> Opc = GPROpcodes[Log2_32(ValTy.getSizeInBytes())]; +# 5669| } +# 5670| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:314:5: var_decl: Declaring variable "AltMappings". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:324:5: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 322| AltMappings.push_back(&GPRMapping); +# 323| AltMappings.push_back(&FPRMapping); +# 324|-> return AltMappings; +# 325| } +# 326| case TargetOpcode::G_BITCAST: { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:336:5: var_decl: Declaring variable "AltMappings". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:364:5: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 362| AltMappings.push_back(&GPRToFPRMapping); +# 363| AltMappings.push_back(&FPRToGPRMapping); +# 364|-> return AltMappings; +# 365| } +# 366| case TargetOpcode::G_LOAD: { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:376:5: var_decl: Declaring variable "AltMappings". +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:392:5: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 390| AltMappings.push_back(&GPRMapping); +# 391| AltMappings.push_back(&FPRMapping); +# 392|-> return AltMappings; +# 393| } +# 394| default: + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:77:5: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:80:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:81:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 79| +# 80| if (Kind < FirstTargetFixupKind) +# 81|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 82| +# 83| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:77:5: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:80:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:85:5: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 360 bytes. +# 83| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 84| "Invalid kind!"); +# 85|-> return Infos[Kind - FirstTargetFixupKind]; +# 86| } +# 87| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp:153:3: var_decl: Declaring variable "AI". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp:174:3: uninit_use: Using uninitialized value "AI". Field "AI.PreloadKernArgs.NumEntries" is uninitialized. +# 172| AI.WorkItemIDY = ArgDescriptor::createRegister(AMDGPU::VGPR31, Mask << 10); +# 173| AI.WorkItemIDZ = ArgDescriptor::createRegister(AMDGPU::VGPR31, Mask << 20); +# 174|-> return AI; +# 175| } +# 176| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp:1043:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp:1051:3: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 1049| }; +# 1050| +# 1051|-> Attributor A(Functions, InfoCache, AC); +# 1052| +# 1053| for (Function &F : M) { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def:279:9: assignment: Assigning: "Idx" = "AGPRStartIdx". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def:283:5: assignment: Assigning: "Idx" += "llvm::Log2_32_Ceil(Size)". The value of "Idx" may now be up to 70. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def:291:3: illegal_address: "&llvm::AMDGPU::ValMappings[Idx]" evaluates to an address that is at byte offset 1120 of an array of 784 bytes. +# 289| assert(BankID == ValMappings[Idx].BreakDown->RegBank->getID()); +# 290| +# 291|-> return &ValMappings[Idx]; +# 292| } +# 293| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3235:3: var_decl: Declaring variable "ModOpcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3252:7: uninit_use_in_call: Using uninitialized value "ModOpcode" when calling "selectWMMAModsNegAbs". +# 3250| // All elements have ModOpcode modifier +# 3251| if (BV->getNumOperands() * 2 == EltsF16.size()) +# 3252|-> selectWMMAModsNegAbs(ModOpcode, Mods, EltsF16, Src, CurDAG, SDLoc(In), +# 3253| 16); +# 3254| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3345:15: var_decl: Declaring variable "FloatVal". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:3349:15: uninit_use_in_call: Using uninitialized value "FloatVal.U" when calling "isInlineConstant". +# 3347| : APFloatBase::BFloat(), +# 3348| RawValue.value()); +# 3349|-> if (TII->isInlineConstant(FloatVal)) { +# 3350| Src = CurDAG->getTargetConstant(RawValue.value(), SDLoc(In), +# 3351| MVT::i16); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp:5252:11: var_decl: Declaring variable "Zero". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp:5253:11: uninit_use_in_call: Using uninitialized value "Zero.U" when calling "~APFloat". +# 5251| if (V.isDenormal()) { +# 5252| APFloat Zero(V.getSemantics(), 0); +# 5253|-> return V.isNegative() ? -Zero : Zero; +# 5254| } +# 5255| return V; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp:462:7: var_decl: Declaring variable "Val". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp:463:7: uninit_use_in_call: Using uninitialized value "Val.U" when calling "divide". +# 461| const APFloat &ArgVal = C->getValueAPF(); +# 462| APFloat Val(ArgVal.getSemantics(), 1); +# 463|-> Val.divide(ArgVal, APFloat::rmNearestTiesToEven); +# 464| +# 465| // This is more precise than the instruction may give. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:3917:9: var_decl: Declaring variable "CarryOut". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:3992:9: uninit_use: Using uninitialized value "CarryOut". Field "CarryOut.InlineElts" is uninitialized. +# 3990| } +# 3991| +# 3992|-> return CarryOut; +# 3993| }; +# 3994| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:5092:3: var_decl: Declaring variable "C0Val". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:5112:3: uninit_use_in_call: Using uninitialized value "C0Val.U" when calling "~APFloat". +# 5110| +# 5111| MI.eraseFromParent(); +# 5112|-> return true; +# 5113| } +# 5114| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:6270:3: zero_return: Function call "this->ST->getNSAMaxSize(BaseOpcode->Sampler)" returns 0. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:6270:3: assignment: Assigning: "NSAMaxSize" = "this->ST->getNSAMaxSize(BaseOpcode->Sampler)". The value of "NSAMaxSize" is now 0. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:6291:7: overrun-buffer-arg: Calling "slice" with "llvm::ArrayRef(PackedRegs).Data" and "NSAMaxSize - 1U" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 6289| LLT PackedAddrTy = +# 6290| LLT::fixed_vector(2 * (PackedRegs.size() - NSAMaxSize + 1), 16); +# 6291|-> auto Concat = B.buildConcatVectors( +# 6292| PackedAddrTy, ArrayRef(PackedRegs).slice(NSAMaxSize - 1)); +# 6293| PackedRegs[NSAMaxSize - 1] = Concat.getReg(0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:1408:9: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:1411:9: uninit_use_in_call: Using uninitialized value "F". Field "F.Scratch" is uninitialized when calling "emplace_back". +# 1409| DL.getTypeAllocSize(GV->getValueType()), +# 1410| AMDGPU::getAlign(DL, GV)); +# 1411|-> LayoutFields.emplace_back(F); +# 1412| } +# 1413| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp:2303:5: var_decl: Declaring variable "InnerRegion". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp:2312:5: uninit_use_in_call: Using uninitialized value "InnerRegion.RMRT" when calling "rewriteLiveOutRegs". +# 2310| +# 2311| LLVM_DEBUG(InnerRegion.print(dbgs(), TRI)); +# 2312|-> rewriteLiveOutRegs(IfBB, CodeBB, MergeBB, &InnerRegion, CurrentRegion); +# 2313| extractKilledPHIs(CodeBB); +# 2314| if (IsRegionEntryBB) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp:314:3: var_decl: Declaring variable "AltMappings". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp:342:3: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 340| } +# 341| +# 342|-> return AltMappings; +# 343| } +# 344| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp:3788:5: assignment: Assigning: "ResultBank" = "InvalidRegBankID". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp:3814:5: overrun-buffer-arg: Calling "getRegBank" with "this->RegBanks" and "ResultBank" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 3812| unsigned Size = MRI.getType(DstReg).getSizeInBits(); +# 3813| +# 3814|-> const ValueMapping &ValMap = +# 3815| getValueMapping(0, Size, getRegBank(ResultBank)); +# 3816| return getInstructionMapping( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:3160:5: var_decl: Declaring variable "RealVal". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:3162:5: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "convertFromString". +# 3160| APFloat RealVal(APFloat::IEEEdouble()); +# 3161| auto roundMode = APFloat::rmNearestTiesToEven; +# 3162|-> if (errorToBool(RealVal.convertFromString(Num, roundMode).takeError())) +# 3163| return ParseStatus::Failure; +# 3164| if (Negate) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:7002:3: var_decl: Declaring variable "OperandIdx" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:7043:5: uninit_use_in_call: Using uninitialized value "OperandIdx[1]" when calling "getOperand". +# 7041| if (OptionalIdx.find(AMDGPUOperand::ImmTyExpCompr) != OptionalIdx.end()) { +# 7042| Compr = true; +# 7043|-> Inst.getOperand(OperandIdx[1]) = Inst.getOperand(OperandIdx[2]); +# 7044| Inst.getOperand(OperandIdx[2]).setReg(AMDGPU::NoRegister); +# 7045| Inst.getOperand(OperandIdx[3]).setReg(AMDGPU::NoRegister); +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:7043:5: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:1781:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:1795:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1793| } +# 1794| +# 1795|-> return Result; +# 1796| } +# 1797| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp:176:5: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp:176:5: leaked_storage: Ignoring storage allocated by "this->Sch.SchedImpl.release()" leaks it. +# 174| Sch.BaseClass::exitRegion(); +# 175| Sch.BaseClass::finishBlock(); +# 176|-> Sch.SchedImpl.release(); +# 177| Sch.SchedImpl = std::move(SaveSchedImpl); +# 178| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:183:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:186:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:187:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 185| +# 186| if (Kind < FirstTargetFixupKind) +# 187|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 188| +# 189| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:183:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:186:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:191:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 24 bytes. +# 189| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 190| "Invalid kind!"); +# 191|-> return Infos[Kind - FirstTargetFixupKind]; +# 192| } +# 193| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp:268:5: var_decl: Declaring variable "DstMI" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp:295:7: uninit_use_in_call: Using uninitialized value "DstMI" when calling "insert". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 293| } +# 294| if ((DstRegs.find(SrcMI) == DstRegs.end())) { +# 295|-> DstRegs.insert(DstMI); +# 296| return true; +# 297| } else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:258:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:282:5: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 280| } +# 281| } +# 282|-> return Result; +# 283| } +# 284| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:258:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:313:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 311| Result.push_back(std::pair(&MO, 0)); +# 312| } +# 313|-> return Result; +# 314| } +# 315| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:1075:8: tainted_data_return: Called function "this->getIndirectIndexBegin(MF)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:1075:8: assign: Assigning: "Index" = "this->getIndirectIndexBegin(MF)". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:1077:7: overflow: The expression "4 * Index" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:1077:7: overflow: The expression "4 * Index + Chan" is deemed overflowed because at least one of its arguments has overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:1077:7: overflow_sink: "4 * Index + Chan", which might have underflowed, is passed to "llvm::R600::R600_TReg32RegClass.getRegister(4 * Index + Chan)". +# 1075| for (int Index = getIndirectIndexBegin(MF); Index <= End; ++Index) { +# 1076| for (unsigned Chan = 0; Chan < StackWidth; ++Chan) { +# 1077|-> unsigned Reg = R600::R600_TReg32RegClass.getRegister((4 * Index) + Chan); +# 1078| TRI.reserveRegisterTuples(Reserved, Reg); +# 1079| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp:122:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp:127:3: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 125| Res.push_back(Node->getOperand(OpIdx)); +# 126| } +# 127|-> return Res; +# 128| } +# 129| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:7893:3: zero_return: Function call "ST->getNSAMaxSize(BaseOpcode->Sampler)" returns 0. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:7893:3: assignment: Assigning: "NSAMaxSize" = "ST->getNSAMaxSize(BaseOpcode->Sampler)". The value of "NSAMaxSize" is now 0. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:7903:5: overrun-buffer-arg: Calling "drop_front" with "llvm::ArrayRef(VAddrs).Data" and "NSAMaxSize - 1U" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 7901| SDValue VAddr; +# 7902| if (UsePartialNSA) { +# 7903|-> VAddr = getBuildDwordsVector(DAG, DL, +# 7904| ArrayRef(VAddrs).drop_front(NSAMaxSize - 1)); +# 7905| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:10647:3: var_decl: Declaring variable "K0Val". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:10648:3: uninit_use_in_call: Using uninitialized value "K0Val.U" when calling "getConstantFP". +#10646| +#10647| const APFloat K0Val(0x1p+96f); +#10648|-> const SDValue K0 = DAG.getConstantFP(K0Val, SL, MVT::f32); +#10649| +#10650| const APFloat K1Val(0x1p-32f); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:10650:3: var_decl: Declaring variable "K1Val". +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:10651:3: uninit_use_in_call: Using uninitialized value "K1Val.U" when calling "getConstantFP". +#10649| +#10650| const APFloat K1Val(0x1p-32f); +#10651|-> const SDValue K1 = DAG.getConstantFP(K1Val, SL, MVT::f32); +#10652| +#10653| const SDValue One = DAG.getConstantFP(1.0, SL, MVT::f32); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:923:9: cond_at_most: Checking "Interval.first >= NUM_ALL_VGPRS" implies that "Interval.first" may be up to 520 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:931:16: assignment: Assigning: "RegNo" = "Interval.first". The value of "RegNo" may now be up to 520. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:931:69: incr: Incrementing "RegNo". The value of "RegNo" may now be up to 521. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:932:13: overrun-local: Overrunning array "this->VgprVmemTypes" of 521 bytes at byte offset 521 using index "RegNo" (which evaluates to 521). +# 930| VmemType V = getVmemType(Inst); +# 931| for (int RegNo = Interval.first; RegNo < Interval.second; ++RegNo) +# 932|-> VgprVmemTypes[RegNo] |= 1 << V; +# 933| } +# 934| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp:9809:5: var_decl: Declaring variable "Mask" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp:9827:5: uninit_use_in_call: Using uninitialized value "(uint64_t)Mask" when calling "countr_zero". +# 9825| return false; +# 9826| +# 9827|-> unsigned BitNo = llvm::countr_zero((uint64_t)Mask); +# 9828| if (IsSigned && BitNo == SrcSize - 1) +# 9829| return false; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:612:3: tainted_data_return: Called function "MI->findFirstPredOperandIdx()", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:612:3: assign: Assigning: "PIdx" = "MI->findFirstPredOperandIdx()". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:616:5: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:616:5: overflow_sink: "PIdx + 1", which might have overflowed, is passed to "MI->getOperand(PIdx + 1)". +# 614| MachineOperand &PMO = MI.getOperand(PIdx); +# 615| PMO.setImm(Pred[0].getImm()); +# 616|-> MI.getOperand(PIdx+1).setReg(Pred[1].getReg()); +# 617| +# 618| // Thumb 1 arithmetic instructions do not set CPSR when executed inside an + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:2234:3: tainted_data_return: Called function "MI->findFirstPredOperandIdx()", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:2234:3: assign: Assigning: "PIdx" = "MI->findFirstPredOperandIdx()". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:2240:3: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:2240:3: overflow_sink: "PIdx + 1", which might be negative, is passed to "MI->getOperand(PIdx + 1)". +# 2238| } +# 2239| +# 2240|-> PredReg = MI.getOperand(PIdx+1).getReg(); +# 2241| return (ARMCC::CondCodes)MI.getOperand(PIdx).getImm(); +# 2242| } + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5876:3: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5876:3: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6063:7: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6074:5: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 6072| // check if the range contains a call. These require a save + restore of +# 6073| // the link register. +# 6074|-> if (std::any_of(FirstCand.begin(), std::prev(FirstCand.end()), +# 6075| [](const MachineInstr &MI) { return MI.isCall(); })) +# 6076| NumBytesToCreateFrame += Costs.SaveRestoreLROnStack; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp:849:3: tainted_data_return: Called function "MI->findFirstPredOperandIdx()", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp:849:3: assign: Assigning: "PIdx" = "MI->findFirstPredOperandIdx()". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp:852:3: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp:852:3: overflow_sink: "PIdx + 1", which might have overflowed, is passed to "MI->getOperand(PIdx + 1)". +# 850| ARMCC::CondCodes Pred = (PIdx == -1) +# 851| ? ARMCC::AL : (ARMCC::CondCodes)MI.getOperand(PIdx).getImm(); +# 852|-> Register PredReg = (PIdx == -1) ? Register() : MI.getOperand(PIdx+1).getReg(); +# 853| +# 854| const MCInstrDesc &MCID = MI.getDesc(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMCallingConv.cpp:88:3: cond_const: Checking "i < 2U" implies that "i" is 2 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMCallingConv.cpp:92:3: overrun-local: Overrunning array "LoRegList" of 2 2-byte elements at element index 2 (byte offset 5) using index "i" (which evaluates to 2). +# 90| break; +# 91| +# 92|-> unsigned T = State.AllocateReg(LoRegList[i]); +# 93| (void)T; +# 94| assert(T == LoRegList[i] && "Could not allocate register"); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMCallingConv.cpp:88:3: cond_const: Checking "i < 2U" implies that "i" is 2 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMCallingConv.cpp:97:3: overrun-local: Overrunning array "LoRegList" of 2 2-byte elements at element index 2 (byte offset 5) using index "i" (which evaluates to 2). +# 95| +# 96| State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, Reg, LocVT, LocInfo)); +# 97|-> State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, LoRegList[i], +# 98| LocVT, LocInfo)); +# 99| return true; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMCallingConv.cpp:124:3: cond_const: Checking "i < 2U" implies that "i" is 2 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMCallingConv.cpp:129:3: overrun-local: Overrunning array "LoRegList" of 2 2-byte elements at element index 2 (byte offset 5) using index "i" (which evaluates to 2). +# 127| +# 128| State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, Reg, LocVT, LocInfo)); +# 129|-> State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, LoRegList[i], +# 130| LocVT, LocInfo)); +# 131| return true; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1691:3: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1704:3: overrun-call: Overrunning callee's array of size 653 by passing argument "LC" (which evaluates to 653) in call to "ARMEmitLibcall". +# 1702| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SDIV!"); +# 1703| +# 1704|-> return ARMEmitLibcall(I, LC); +# 1705| } +# 1706| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1720:3: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMFastISel.cpp:1733:3: overrun-call: Overrunning callee's array of size 653 by passing argument "LC" (which evaluates to 653) in call to "ARMEmitLibcall". +# 1731| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SREM!"); +# 1732| +# 1733|-> return ARMEmitLibcall(I, LC); +# 1734| } +# 1735| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:3197:3: var_decl: Declaring variable "ImmAPF". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:3202:7: uninit_use_in_call: Using uninitialized value "ImmAPF.U" when calling "~APFloat". +# 3200| case ARMISD::VDUP: { +# 3201| if (!isa(ImmNode.getOperand(0))) +# 3202|-> return false; +# 3203| unsigned Imm = ImmNode.getConstantOperandVal(0); +# 3204| if (ImmNode.getOpcode() == ARMISD::VMOVIMM) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:3206:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(((ScalarBits == 32U) ? llvm::APFloatBase::IEEEsingle() : llvm::APFloatBase::IEEEhalf()), llvm::APInt(ScalarBits, Imm, false))". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:3206:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3204| if (ImmNode.getOpcode() == ARMISD::VMOVIMM) +# 3205| Imm = ARM_AM::decodeVMOVModImm(Imm, ScalarBits); +# 3206|-> ImmAPF = +# 3207| APFloat(ScalarBits == 32 ? APFloat::IEEEsingle() : APFloat::IEEEhalf(), +# 3208| APInt(ScalarBits, Imm)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:3212:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::ARM_AM::getFPImmFloat(ImmNode.getConstantOperandVal(0U)))". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:3212:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3210| } +# 3211| case ARMISD::VMOVFPIMM: { +# 3212|-> ImmAPF = APFloat(ARM_AM::getFPImmFloat(ImmNode.getConstantOperandVal(0))); +# 3213| break; +# 3214| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:3290:5: var_decl: Declaring variable "Opcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:3303:5: uninit_use_in_call: Using uninitialized value "Opcode" when calling "getMachineNode". +# 3301| AddEmptyMVEPredicateToOps(Ops, dl, Type); +# 3302| +# 3303|-> ReplaceNode(N, CurDAG->getMachineNode(Opcode, dl, Type, Ops)); +# 3304| return true; +# 3305| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelLowering.cpp:5061:3: var_decl: Declaring variable "NewOpcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelLowering.cpp:5100:3: uninit_use_in_call: Using uninitialized value "NewOpcode" when calling "getNode". +# 5098| +# 5099| SDLoc dl(Op); +# 5100|-> SDValue Add = +# 5101| DAG.getNode(NewOpcode, dl, MVT::i32, +# 5102| DAG.getSExtOrTrunc(Op->getOperand(0), dl, MVT::i32), + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelLowering.cpp:10412:3: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(Op)->getSuccessOrdering()" (which evaluates to 15) in call to "isStrongerThanMonotonic". +#10410| +#10411| static SDValue LowerAtomicLoadStore(SDValue Op, SelectionDAG &DAG) { +#10412|-> if (isStrongerThanMonotonic(cast(Op)->getSuccessOrdering())) +#10413| // Acquire/Release load/store is not legal for targets without a dmb or +#10414| // equivalent available. + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3019:3: tainted_data_return: Called function "getBaseOperandIndex(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3019:3: cast_underflow: An assign of a possibly negative number to an unsigned type, which might trigger an underflow. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3028:3: overflow: The expression "BaseOp + 1U" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3028:3: overflow_sink: "BaseOp + 1U", which might have underflowed, is passed to "MI->getOperand(BaseOp + 1U)". +# 3026| MRI.constrainRegClass(NewBaseReg, TRC); +# 3027| +# 3028|-> int OldOffset = MI->getOperand(BaseOp + 1).getImm(); +# 3029| if (isLegalAddressImm(MI->getOpcode(), OldOffset - Offset, TII)) +# 3030| MI->getOperand(BaseOp + 1).setImm(OldOffset - Offset); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3160:5: tainted_data_return: Called function "getBaseOperandIndex(Use)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3160:5: assign: Assigning: "BaseOp" = "getBaseOperandIndex(Use)". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3169:10: overflow: The expression "BaseOp + 1" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3169:10: overflow_sink: "BaseOp + 1", which might have overflowed, is passed to "Use->getOperand(BaseOp + 1)". +# 3167| if (isPreIndex(Use) || isPostIndex(Use)) +# 3168| PrePostInc = &Use; +# 3169|-> else if (Use.getOperand(BaseOp + 1).getImm() == 0) +# 3170| BaseAccess = &Use; +# 3171| else + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3218:5: tainted_data_return: Called function "getBaseOperandIndex(PrePostInc)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3218:5: assign: Assigning: "BaseOp" = "getBaseOperandIndex(PrePostInc)". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3219:5: overflow: The expression "BaseOp + 1" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3219:5: overflow_sink: "BaseOp + 1", which might be negative, is passed to "PrePostInc->getOperand(BaseOp + 1)". +# 3217| << "indexed VirtualReg " << Base.virtRegIndex() << "\n"); +# 3218| int BaseOp = getBaseOperandIndex(*PrePostInc); +# 3219|-> IncrementOffset = PrePostInc->getOperand(BaseOp+1).getImm(); +# 3220| BaseAccess = PrePostInc; +# 3221| NewBaseReg = PrePostInc->getOperand(0).getReg(); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3239:7: tainted_data_return: Called function "getBaseOperandIndex(Use)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3239:7: cast_underflow: An assign of a possibly negative number to an unsigned type, which might trigger an underflow. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3240:7: overflow: The expression "BaseOp + 1U" is deemed underflowed because at least one of its arguments has underflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3240:7: overflow_sink: "BaseOp + 1U", which might have underflowed, is passed to "Use->getOperand(BaseOp + 1U)". +# 3238| SuccessorAccesses.insert(Use); +# 3239| unsigned BaseOp = getBaseOperandIndex(*Use); +# 3240|-> if (!isLegalOrConvertableAddressImm(Use->getOpcode(), +# 3241| Use->getOperand(BaseOp + 1).getImm() - +# 3242| IncrementOffset, + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:89:3: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:89:3: assign: Assigning: "PIdx" = "llvm::findFirstVPTPredOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:90:3: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:90:3: overflow_sink: "PIdx + 1", which might be negative, is passed to "MI->getOperand(PIdx + 1)". +# 88| static bool isVectorPredicated(MachineInstr *MI) { +# 89| int PIdx = llvm::findFirstVPTPredOperandIdx(*MI); +# 90|-> return PIdx != -1 && MI->getOperand(PIdx + 1).getReg() == ARM::VPR; +# 91| } +# 92| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:1584:5: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:1584:5: assign: Assigning: "PIdx" = "llvm::findFirstVPTPredOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:1589:5: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:1589:5: overflow_sink: "PIdx + 1", which might have overflowed, is passed to "MI->getOperand(PIdx + 1)". +# 1587| "Expected Then predicate!"); +# 1588| MI->getOperand(PIdx).setImm(ARMVCC::None); +# 1589|-> MI->getOperand(PIdx + 1).setReg(0); +# 1590| }; +# 1591| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMSLSHardening.cpp:344:3: assignment: Assigning: "FirstOpIdxToRemove" = "std::max(ImpLROpIdx, ImpSPOpIdx)". The value of "FirstOpIdxToRemove" is now -1. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMSLSHardening.cpp:346:3: overrun-buffer-arg: Calling "removeOperand" with "BL->Operands" and "FirstOpIdxToRemove" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 344| int FirstOpIdxToRemove = std::max(ImpLROpIdx, ImpSPOpIdx); +# 345| int SecondOpIdxToRemove = std::min(ImpLROpIdx, ImpSPOpIdx); +# 346|-> BL->removeOperand(FirstOpIdxToRemove); +# 347| BL->removeOperand(SecondOpIdxToRemove); +# 348| // Now copy over the implicit operands from the original IndirectCall + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMSLSHardening.cpp:345:3: assignment: Assigning: "SecondOpIdxToRemove" = "std::min(ImpLROpIdx, ImpSPOpIdx)". The value of "SecondOpIdxToRemove" is now -1. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMSLSHardening.cpp:347:3: overrun-buffer-arg: Calling "removeOperand" with "BL->Operands" and "SecondOpIdxToRemove" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 345| int SecondOpIdxToRemove = std::min(ImpLROpIdx, ImpSPOpIdx); +# 346| BL->removeOperand(FirstOpIdxToRemove); +# 347|-> BL->removeOperand(SecondOpIdxToRemove); +# 348| // Now copy over the implicit operands from the original IndirectCall +# 349| BL->copyImplicitOps(MF, IndirectCall); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:6263:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(RealVal)". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:6263:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 6261| return Error(Loc, "encoded floating point value out of range"); +# 6262| float RealVal = ARM_AM::getFPImmFloat(Val); +# 6263|-> Val = APFloat(RealVal).bitcastToAPInt().getZExtValue(); +# 6264| +# 6265| Operands.push_back( + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:198:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:201:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:202:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 200| +# 201| if (Kind < FirstTargetFixupKind) +# 202|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 203| +# 204| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:198:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:201:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:206:3: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 984 bytes. +# 204| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 205| "Invalid kind!"); +# 206|-> return (Endian == llvm::endianness::little +# 207| ? InfosLE +# 208| : InfosBE)[Kind - FirstTargetFixupKind]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp:570:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::bit_cast(uint64_t const(MO->getDFPImm())))". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp:570:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 568| return static_cast(MO.getImm()); +# 569| } else if (MO.isDFPImm()) { +# 570|-> return static_cast(APFloat(bit_cast(MO.getDFPImm())) +# 571| .bitcastToAPInt() +# 572| .getHiBits(32) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:538:7: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:538:7: assign: Assigning: "Idx" = "llvm::findFirstVPTPredOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:539:7: overflow: The expression "Idx + 2" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:539:7: overflow_sink: "Idx + 2", which might be negative, is passed to "MI->getOperand(Idx + 2)". +# 537| for (MachineInstr *MI : MVEInstrs) { +# 538| int Idx = findFirstVPTPredOperandIdx(*MI); +# 539|-> MI->getOperand(Idx + 2).setReg(LR); +# 540| } +# 541| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:931:5: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(Instr)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:931:5: assign: Assigning: "PIdx" = "llvm::findFirstVPTPredOperandIdx(Instr)". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:934:5: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:934:5: overflow_sink: "PIdx + 1", which might be negative, is passed to "Instr->getOperand(PIdx + 1)". +# 932| if (PIdx == -1) +# 933| continue; +# 934|-> Register VPR = Instr.getOperand(PIdx + 1).getReg(); +# 935| if (!VPR.isVirtual()) +# 936| continue; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp:805:3: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp:805:3: assign: Assigning: "PIdx" = "llvm::findFirstVPTPredOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp:811:3: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp:811:3: overflow_sink: "PIdx + 1", which might be negative, is passed to "MI->getOperand(PIdx + 1)". +# 809| } +# 810| +# 811|-> PredReg = MI.getOperand(PIdx+1).getReg(); +# 812| return (ARMVCC::VPTCodes)MI.getOperand(PIdx).getImm(); +# 813| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/AVR/AVRISelLowering.cpp:2194:3: var_decl: Declaring variable "Opc" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/AVRISelLowering.cpp:2216:3: uninit_use_in_call: Using uninitialized value "Opc" when calling "insertMultibyteShift". +# 2214| +# 2215| // Do the shift. The registers are modified in-place. +# 2216|-> insertMultibyteShift(MI, BB, Registers, Opc, ShiftAmt); +# 2217| +# 2218| // Combine the 8-bit registers into 16-bit register pairs. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:485:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:488:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:489:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 487| +# 488| if (Kind < FirstTargetFixupKind) +# 489|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 490| +# 491| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:485:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:488:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp:494:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 840 bytes. +# 492| "Invalid kind!"); +# 493| +# 494|-> return Infos[Kind - FirstTargetFixupKind]; +# 495| } +# 496| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/BPF/BPFTargetTransformInfo.h:74:5: var_decl: Declaring variable "Options". +llvm-project-19.0.0.src/llvm/lib/Target/BPF/BPFTargetTransformInfo.h:77:5: uninit_use: Using uninitialized value "Options". Field "Options.AllowedTailExpansions.InlineElts" is uninitialized. +# 75| Options.LoadSizes = {8, 4, 2, 1}; +# 76| Options.MaxNumLoads = TLI->getMaxExpandSizeMemcmp(OptSize); +# 77|-> return Options; +# 78| } +# 79| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp:63:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp:64:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 62| +# 63| if (Kind < FirstTargetFixupKind) +# 64|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 65| +# 66| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp:147:7: var_decl: Declaring variable "Nodes". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp:149:7: uninit_use: Using uninitialized value "Nodes". Field "Nodes.InlineElts" is uninitialized. +# 147| SmallVector Nodes; +# 148| nodesWith(Root, P, CheckAlign, Nodes); +# 149|-> return Nodes; +# 150| } +# 151| void dump() const; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: alloc_fn: Storage is returned from allocation function "getLoopTripCount". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: var_assign: Assigning: "TripCount" = storage returned from "this->getLoopTripCount(L, OldInsts)". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1211:3: noescape: Resource "TripCount" is not freed or pointed-to in "isReg". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1214:5: noescape: Resource "TripCount" is not freed or pointed-to in "getReg". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1217:7: leaked_storage: Variable "TripCount" going out of scope leaks the storage it points to. +# 1215| MachineBasicBlock *BBDef = TCDef->getParent(); +# 1216| if (!MDT->dominates(BBDef, Preheader)) +# 1217|-> return false; +# 1218| } +# 1219| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: alloc_fn: Storage is returned from allocation function "getLoopTripCount". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1206:3: var_assign: Assigning: "TripCount" = storage returned from "this->getLoopTripCount(L, OldInsts)". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1211:3: noescape: Resource "TripCount" is not freed or pointed-to in "isReg". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp:1229:7: leaked_storage: Variable "TripCount" going out of scope leaks the storage it points to. +# 1227| +# 1228| if (TII->analyzeBranch(*ExitingBlock, TB, FB, Cond, false)) +# 1229|-> return false; +# 1230| +# 1231| if (L->contains(TB)) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1890:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1912:3: uninit_use: Using uninitialized value "Result". Field "Result.Weight" is uninitialized. +# 1910| } +# 1911| +# 1912|-> return Result; +# 1913| } +# 1914| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1917:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1939:3: uninit_use: Using uninitialized value "Result". Field "Result.Weight" is uninitialized. +# 1937| } +# 1938| +# 1939|-> return Result; +# 1940| } +# 1941| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1058:3: var_decl: Declaring variable "SegList". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1060:5: uninit_use: Using uninitialized value "SegList". Field "SegList.InlineElts" is uninitialized. +# 1058| SmallVector SegList; +# 1059| if (SM.MaxSrc == -1) +# 1060|-> return SegList; +# 1061| +# 1062| unsigned Shift = Log2_32(SegLen); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1058:3: var_decl: Declaring variable "SegList". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1072:3: uninit_use: Using uninitialized value "SegList". Field "SegList.InlineElts" is uninitialized. +# 1070| for (unsigned B : Segs.set_bits()) +# 1071| SegList.push_back(B); +# 1072|-> return SegList; +# 1073| } +# 1074| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1340:8: assignment: Assigning: "X" = "*__begin1". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1344:7: assignment: Assigning: "Seg0" = "X". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1345:10: cond_const: Checking "Seg1 != 4294967295U" implies that "Seg1" is 4294967295 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1391:5: cond_at_most: Checking "Seg0 / 2U == Seg1 / 2U" implies that "Seg0" may be up to 4294967293 on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:1393:7: overrun-local: Overrunning array "Inp" of 2 24-byte elements at element index 2147483646 (byte offset 51539607527) using index "Seg0 / 2U" (which evaluates to 2147483646). +# 1391| if (Seg0 / 2 == Seg1 / 2) { +# 1392| // Same input vector. +# 1393|-> Va = Inp[Seg0 / 2]; +# 1394| if (Seg0 > Seg1) { +# 1395| // Swap halves. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp:2899:3: var_decl: Declaring variable "TLOpc" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp:2916:3: uninit_use_in_call: Using uninitialized value "TLOpc" when calling "getNode". +# 2914| +# 2915| const SDLoc &dl(Op); +# 2916|-> return DAG.getNode(TLOpc, dl, ty(Op), Op.getOperand(0), +# 2917| DAG.getUNDEF(MVT::i128), // illegal type +# 2918| DAG.getConstant(Opc, dl, MVT::i32)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3361:3: var_decl: Declaring variable "Jumpers". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3365:5: uninit_use: Using uninitialized value "Jumpers". Field "Jumpers.InlineElts" is uninitialized. +# 3363| MachineBasicBlock::instr_iterator I = MBB.instr_end(); +# 3364| if (I == MBB.instr_begin()) +# 3365|-> return Jumpers; +# 3366| +# 3367| // A basic block may looks like this: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3361:3: var_decl: Declaring variable "Jumpers". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3382:7: uninit_use: Using uninitialized value "Jumpers". Field "Jumpers.InlineElts" is uninitialized. +# 3380| --I; +# 3381| if (I->isEHLabel()) +# 3382|-> return Jumpers; +# 3383| } while (I != MBB.instr_begin()); +# 3384| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3361:3: var_decl: Declaring variable "Jumpers". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp:3390:7: uninit_use: Using uninitialized value "Jumpers". Field "Jumpers.InlineElts" is uninitialized. +# 3388| while (I->isDebugInstr()) { +# 3389| if (I == MBB.instr_begin()) +# 3390|-> return Jumpers; +# 3391| --I; +# 3392| } + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:1140:5: extract: Calling "operator []" which extracts wrapped state from "ASpan.Blocks". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:1140:5: escape: The internal representation of "ASpan.Blocks" escapes into "ASpan.Blocks[Index].Seg.Val", but is destroyed when it exits scope. +# 1138| ASpan.Blocks.emplace_back(nullptr, ScLen, Index * ScLen); +# 1139| for (int Index = 0; Index != NumSectors; ++Index) { +# 1140|-> ASpan.Blocks[Index].Seg.Val = +# 1141| reinterpret_cast(&ASpan.Blocks[Index]); +# 1142| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:2121:3: var_decl: Declaring variable "WordP". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:2127:3: uninit_use: Using uninitialized value "WordP". Field "WordP.InlineElts" is uninitialized. +# 2125| } +# 2126| +# 2127|-> return WordP; +# 2128| } +# 2129| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp:196:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp:197:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 195| +# 196| if (Kind < FirstTargetFixupKind) +# 197|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 198| +# 199| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:697:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:1009:3: uninit_use: Using uninitialized value "Result". Field "Result.Operands.InlineElts" is uninitialized. +# 1007| break; // 1,2 SUBInst $Rd = zxth($Rs) +# 1008| } +# 1009|-> return Result; +# 1010| } +# 1011| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:1032:3: var_decl: Declaring variable "duplexToTry". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp:1104:3: uninit_use: Using uninitialized value "duplexToTry". Field "duplexToTry.InlineElts" is uninitialized. +# 1102| } +# 1103| } +# 1104|-> return duplexToTry; +# 1105| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp:108:5: overrun-local: Overrunning array "sbss" of 4 16-byte elements at element index 63 (byte offset 1023) using index "llvm::Log2_64(AccessSize)" (which evaluates to 63). +# 106| +# 107| if (ELFSymbol->getBinding() == ELF::STB_LOCAL) { +# 108|-> StringRef SectionName = +# 109| ((AccessSize == 0) || (Size == 0) || (Size > GPSize)) +# 110| ? ".bss" + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp:576:3: alloc_fn: Storage is returned from allocation function "createHexagonMCSubtargetInfoImpl". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp:576:3: var_assign: Assigning: "X" = storage returned from "llvm::createHexagonMCSubtargetInfoImpl(TT, CPUName, CPUName, ArchFS)". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp:587:5: leaked_storage: Variable "X" going out of scope leaks the storage it points to. +# 585| errs() << "error: invalid CPU \"" << CPUName.str().c_str() +# 586| << "\" specified\n"; +# 587|-> return nullptr; +# 588| } +# 589| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:465:7: uninit_use: Using uninitialized value "Summary.pSlot3Cnt". +# 463| +# 464| if (HexagonMCInstrInfo::prefersSlot3(MCII, ID)) { +# 465|-> ++Summary.pSlot3Cnt; +# 466| Summary.PrefSlot3Inst = ISJ; +# 467| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:470:5: uninit_use: Using uninitialized value "Summary.ReservedSlotMask". +# 468| const unsigned ReservedSlots = +# 469| HexagonMCInstrInfo::getOtherReservedSlots(MCII, STI, ID); +# 470|-> Summary.ReservedSlotMask |= ReservedSlots; +# 471| if (ReservedSlots != 0) +# 472| AppliedRestrictions.push_back(std::make_pair(ID.getLoc(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:491:7: uninit_use: Using uninitialized value "Summary.NonZCVIloads". +# 489| case HexagonII::TypeCVI_GATHER_DV: +# 490| case HexagonII::TypeCVI_GATHER_RST: +# 491|-> ++Summary.NonZCVIloads; +# 492| [[fallthrough]]; +# 493| case HexagonII::TypeCVI_ZW: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:494:7: uninit_use: Using uninitialized value "Summary.AllCVIloads". +# 492| [[fallthrough]]; +# 493| case HexagonII::TypeCVI_ZW: +# 494|-> ++Summary.AllCVIloads; +# 495| [[fallthrough]]; +# 496| case HexagonII::TypeLD: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:497:7: uninit_use: Using uninitialized value "Summary.loads". +# 495| [[fallthrough]]; +# 496| case HexagonII::TypeLD: +# 497|-> ++Summary.loads; +# 498| ++Summary.memory; +# 499| if (ISJ->Core.getUnits() == slotSingleLoad || + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:498:7: uninit_use: Using uninitialized value "Summary.memory". +# 496| case HexagonII::TypeLD: +# 497| ++Summary.loads; +# 498|-> ++Summary.memory; +# 499| if (ISJ->Core.getUnits() == slotSingleLoad || +# 500| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_VP_LDU) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:501:9: uninit_use: Using uninitialized value "Summary.load0". +# 499| if (ISJ->Core.getUnits() == slotSingleLoad || +# 500| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_VP_LDU) +# 501|-> ++Summary.load0; +# 502| if (HexagonMCInstrInfo::getDesc(MCII, ID).isReturn()) +# 503| Summary.branchInsts.push_back(ISJ); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:513:7: uninit_use: Using uninitialized value "Summary.CVIstores". +# 511| case HexagonII::TypeCVI_SCATTER_NEW_RST: +# 512| case HexagonII::TypeCVI_SCATTER_NEW_ST: +# 513|-> ++Summary.CVIstores; +# 514| [[fallthrough]]; +# 515| case HexagonII::TypeST: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:516:7: uninit_use: Using uninitialized value "Summary.stores". +# 514| [[fallthrough]]; +# 515| case HexagonII::TypeST: +# 516|-> ++Summary.stores; +# 517| ++Summary.memory; +# 518| if (ISJ->Core.getUnits() == slotSingleStore || + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:517:7: uninit_use: Using uninitialized value "Summary.memory". +# 515| case HexagonII::TypeST: +# 516| ++Summary.stores; +# 517|-> ++Summary.memory; +# 518| if (ISJ->Core.getUnits() == slotSingleStore || +# 519| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_STU) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:520:9: uninit_use: Using uninitialized value "Summary.store0". +# 518| if (ISJ->Core.getUnits() == slotSingleStore || +# 519| HexagonMCInstrInfo::getType(MCII, ID) == HexagonII::TypeCVI_VM_STU) +# 520|-> ++Summary.store0; +# 521| break; +# 522| case HexagonII::TypeV4LDST: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:523:7: uninit_use: Using uninitialized value "Summary.loads". +# 521| break; +# 522| case HexagonII::TypeV4LDST: +# 523|-> ++Summary.loads; +# 524| ++Summary.stores; +# 525| ++Summary.store1; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:524:7: uninit_use: Using uninitialized value "Summary.stores". +# 522| case HexagonII::TypeV4LDST: +# 523| ++Summary.loads; +# 524|-> ++Summary.stores; +# 525| ++Summary.store1; +# 526| ++Summary.memops; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:525:7: uninit_use: Using uninitialized value "Summary.store1". +# 523| ++Summary.loads; +# 524| ++Summary.stores; +# 525|-> ++Summary.store1; +# 526| ++Summary.memops; +# 527| ++Summary.memory; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:526:7: uninit_use: Using uninitialized value "Summary.memops". +# 524| ++Summary.stores; +# 525| ++Summary.store1; +# 526|-> ++Summary.memops; +# 527| ++Summary.memory; +# 528| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:527:7: uninit_use: Using uninitialized value "Summary.memory". +# 525| ++Summary.store1; +# 526| ++Summary.memops; +# 527|-> ++Summary.memory; +# 528| break; +# 529| case HexagonII::TypeNCJ: + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:530:7: uninit_use: Using uninitialized value "Summary.memory". +# 528| break; +# 529| case HexagonII::TypeNCJ: +# 530|-> ++Summary.memory; // NV insns are memory-like. +# 531| Summary.branchInsts.push_back(ISJ); +# 532| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:535:9: uninit_use: Using uninitialized value "Summary.loads". +# 533| case HexagonII::TypeV2LDST: +# 534| if (HexagonMCInstrInfo::getDesc(MCII, ID).mayLoad()) { +# 535|-> ++Summary.loads; +# 536| ++Summary.memory; +# 537| if (ISJ->Core.getUnits() == slotSingleLoad || + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:536:9: uninit_use: Using uninitialized value "Summary.memory". +# 534| if (HexagonMCInstrInfo::getDesc(MCII, ID).mayLoad()) { +# 535| ++Summary.loads; +# 536|-> ++Summary.memory; +# 537| if (ISJ->Core.getUnits() == slotSingleLoad || +# 538| HexagonMCInstrInfo::getType(MCII, ID) == + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:540:11: uninit_use: Using uninitialized value "Summary.load0". +# 538| HexagonMCInstrInfo::getType(MCII, ID) == +# 539| HexagonII::TypeCVI_VM_VP_LDU) +# 540|-> ++Summary.load0; +# 541| } else { +# 542| assert(HexagonMCInstrInfo::getDesc(MCII, ID).mayStore()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:543:9: uninit_use: Using uninitialized value "Summary.memory". +# 541| } else { +# 542| assert(HexagonMCInstrInfo::getDesc(MCII, ID).mayStore()); +# 543|-> ++Summary.memory; +# 544| ++Summary.stores; +# 545| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:544:9: uninit_use: Using uninitialized value "Summary.stores". +# 542| assert(HexagonMCInstrInfo::getDesc(MCII, ID).mayStore()); +# 543| ++Summary.memory; +# 544|-> ++Summary.stores; +# 545| } +# 546| break; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:554:7: uninit_use: Using uninitialized value "Summary.duplex". +# 552| break; +# 553| case HexagonII::TypeDUPLEX: { +# 554|-> ++Summary.duplex; +# 555| MCInst const &Inst0 = *ID.getOperand(0).getInst(); +# 556| MCInst const &Inst1 = *ID.getOperand(1).getInst(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:453:3: var_decl: Declaring variable "Summary". +llvm-project-19.0.0.src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp:569:3: uninit_use: Using uninitialized value "Summary". Field "Summary.memory" is uninitialized. +# 567| } +# 568| } +# 569|-> return Summary; +# 570| } +# 571| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp:151:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp:152:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 150| +# 151| if (Kind < FirstTargetFixupKind) +# 152|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 153| +# 154| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:74:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:77:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:78:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 76| +# 77| if (Kind < FirstTargetFixupKind) +# 78|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 79| +# 80| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:74:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:77:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp:82:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 264 bytes. +# 80| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 81| "Invalid kind!"); +# 82|-> return Infos[Kind - FirstTargetFixupKind]; +# 83| } +# 84| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:27:3: var_decl: Declaring variable "Insts". +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:31:5: uninit_use: Using uninitialized value "Insts". Field "Insts.InlineElts" is uninitialized. +# 29| if (Highest12 != 0 && SignExtend64<52>(Val) == 0) { +# 30| Insts.push_back(Inst(LoongArch::LU52I_D, SignExtend64<12>(Highest12))); +# 31|-> return Insts; +# 32| } +# 33| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:27:3: var_decl: Declaring variable "Insts". +llvm-project-19.0.0.src/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp:50:3: uninit_use: Using uninitialized value "Insts". Field "Insts.InlineElts" is uninitialized. +# 48| Insts.push_back(Inst(LoongArch::LU52I_D, SignExtend64<12>(Highest12))); +# 49| +# 50|-> return Insts; +# 51| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp:87:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp:88:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 86| +# 87| if (Kind < FirstTargetFixupKind) +# 88|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 89| +# 90| return Infos[Kind - FirstTargetFixupKind]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:3414:5: var_decl: Declaring variable "RealVal". +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:3415:5: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "bitcastToAPInt". +# 3413| if ((Hi_32(ImmOp64) & 0x7ff00000) == 0) { +# 3414| APFloat RealVal(APFloat::IEEEdouble(), ImmOp64); +# 3415|-> ImmOp64 = RealVal.bitcastToAPInt().getZExtValue(); +# 3416| } +# 3417| return ImmOp64; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:3974:3: var_decl: Declaring variable "TrgReg" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:4096:3: uninit_use: Using uninitialized value "TrgReg". +# 4094| } +# 4095| +# 4096|-> bool IsTrgRegZero = (TrgReg == Mips::ZERO); +# 4097| bool IsSrcRegZero = (SrcReg == Mips::ZERO); +# 4098| if (IsSrcRegZero && IsTrgRegZero) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:4247:3: var_decl: Declaring variable "RtReg" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:4322:3: uninit_use: Using uninitialized value "RtReg". +# 4320| // GAS. GAS has an inconsistency/missed optimization in that not all cases +# 4321| // are handled equivalently. As the observed behaviour is the same, we're ok. +# 4322|-> if (RtReg == Mips::ZERO || RtReg == Mips::ZERO_64) { +# 4323| if (UseTraps) { +# 4324| TOut.emitRRI(Mips::TEQ, ZeroReg, ZeroReg, 0x7, IDLoc, STI); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:514:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:516:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:517:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 515| return MCAsmBackend::getFixupKindInfo(FK_NONE); +# 516| if (Kind < FirstTargetFixupKind) +# 517|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 518| +# 519| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:514:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:516:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:523:5: illegal_address: "LittleEndianInfos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1680 bytes. +# 521| +# 522| if (Endian == llvm::endianness::little) +# 523|-> return LittleEndianInfos[Kind - FirstTargetFixupKind]; +# 524| return BigEndianInfos[Kind - FirstTargetFixupKind]; +# 525| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:514:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:516:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:524:3: illegal_address: "BigEndianInfos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1680 bytes. +# 522| if (Endian == llvm::endianness::little) +# 523| return LittleEndianInfos[Kind - FirstTargetFixupKind]; +# 524|-> return BigEndianInfos[Kind - FirstTargetFixupKind]; +# 525| } +# 526| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp:900:3: assignment: Assigning: "Ordering" = "LD->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp:905:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isStrongerThanMonotonic". +# 903| // with PTX ISA 6.0 / sm_70. +# 904| // TODO: Check if we can actually use the new instructions and implement them. +# 905|-> if (isStrongerThanMonotonic(Ordering)) +# 906| return false; +# 907| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp:1682:3: assignment: Assigning: "Ordering" = "ST->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp:1687:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isStrongerThanMonotonic". +# 1685| // with PTX ISA 6.0 / sm_70. +# 1686| // TODO: Check if we can actually use the new instructions and implement them. +# 1687|-> if (isStrongerThanMonotonic(Ordering)) +# 1688| return false; +# 1689| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp:358:3: var_decl: Declaring variable "VectorInfo". +llvm-project-19.0.0.src/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp:362:5: uninit_use: Using uninitialized value "VectorInfo". Field "VectorInfo.InlineElts" is uninitialized. +# 360| +# 361| if (IsVAArg) +# 362|-> return VectorInfo; +# 363| +# 364| // Check what we can vectorize using 128/64/32-bit accesses. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp:358:3: var_decl: Declaring variable "VectorInfo". +llvm-project-19.0.0.src/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp:398:3: uninit_use: Using uninitialized value "VectorInfo". Field "VectorInfo.InlineElts" is uninitialized. +# 396| } +# 397| } +# 398|-> return VectorInfo; +# 399| } +# 400| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp:608:5: overrun-local: Overrunning array "CRRegs" of 8 2-byte elements at element index 4294967239 (byte offset 8589934479) using index "this->getCRBitMask()" (which evaluates to 4294967239). +# 606| void addCRBitMaskOperands(MCInst &Inst, unsigned N) const { +# 607| assert(N == 1 && "Invalid number of operands!"); +# 608|-> Inst.addOperand(MCOperand::createReg(CRRegs[getCRBitMask()])); +# 609| } +# 610| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:128:5: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:131:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:132:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 130| +# 131| if (Kind < FirstTargetFixupKind) +# 132|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 133| +# 134| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:128:5: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:131:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:136:5: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 264 bytes. +# 134| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 135| "Invalid kind!"); +# 136|-> return (Endian == llvm::endianness::little +# 137| ? InfosLE +# 138| : InfosBE)[Kind - FirstTargetFixupKind]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCCallingConv.cpp:159:3: cond_const: Checking "i < 4UL" implies that "i" is 4 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCCallingConv.cpp:163:3: overrun-local: Overrunning array "LoRegList" of 4 2-byte elements at element index 4 (byte offset 9) using index "i" (which evaluates to 4). +# 161| break; +# 162| +# 163|-> unsigned T = State.AllocateReg(LoRegList[i]); +# 164| (void)T; +# 165| assert(T == LoRegList[i] && "Could not allocate register"); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCCallingConv.cpp:159:3: cond_const: Checking "i < 4UL" implies that "i" is 4 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCCallingConv.cpp:168:3: overrun-local: Overrunning array "LoRegList" of 4 2-byte elements at element index 4 (byte offset 9) using index "i" (which evaluates to 4). +# 166| +# 167| State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, Reg, LocVT, LocInfo)); +# 168|-> State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, LoRegList[i], +# 169| LocVT, LocInfo)); +# 170| return true; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCCallingConv.cpp:188:3: cond_const: Checking "i < 1UL" implies that "i" is 1 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCCallingConv.cpp:193:3: overrun-local: Overrunning array "LoRegList" of 1 2-byte elements at element index 1 (byte offset 3) using index "i" (which evaluates to 1). +# 191| +# 192| State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, Reg, LocVT, LocInfo)); +# 193|-> State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, LoRegList[i], +# 194| LocVT, LocInfo)); +# 195| return true; + +Error: NEGATIVE_RETURNS (CWE-394): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp:367:5: negative_return_fn: Function "this->this->getFMAOpIdxInfo(this->Root->getOpcode())" returns a negative number. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp:367:5: negative_returns: Using variable "this->this->getFMAOpIdxInfo(this->Root->getOpcode())" as an index to array "FMAOpIdxInfo". +# 365| auto IsReassociableAddOrSub = [&](const MachineInstr &Instr, +# 366| unsigned OpType) { +# 367|-> if (Instr.getOpcode() != +# 368| FMAOpIdxInfo[getFMAOpIdxInfo(Root.getOpcode())][OpType]) +# 369| return false; + +Error: NEGATIVE_RETURNS (CWE-394): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp:802:3: negative_return_fn: Function "this->getFMAOpIdxInfo(FmaOp)" returns a negative number. +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp:802:3: assign: Assigning: "Idx" = "this->getFMAOpIdxInfo(FmaOp)". +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp:809:3: negative_returns: Using variable "Idx" as an index to array "FMAOpIdxInfo". +# 807| (Pattern == PPCMachineCombinerPattern::REASSOC_XMM_AMM_BMM); +# 808| +# 809|-> uint16_t AddOpIdx = FMAOpIdxInfo[Idx][InfoArrayIdxAddOpIdx]; +# 810| uint16_t FirstMulOpIdx = FMAOpIdxInfo[Idx][InfoArrayIdxMULOpIdx]; +# 811| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp:1252:3: var_decl: Declaring variable "Nop". +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp:1254:3: uninit_use: Using uninitialized value "Nop". Field "Nop.Operands.InlineElts" is uninitialized. +# 1252| MCInst Nop; +# 1253| Nop.setOpcode(PPC::NOP); +# 1254|-> return Nop; +# 1255| } +# 1256| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:870:3: var_decl: Declaring variable "Buckets". +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:898:3: uninit_use: Using uninitialized value "Buckets". Field "Buckets.InlineElts" is uninitialized. +# 896| addOneCandidate(&J, LSCEV, Buckets, isValidDiff, MaxCandidateNum); +# 897| } +# 898|-> return Buckets; +# 899| } +# 900| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp:438:3: var_decl: Declaring variable "Options". +llvm-project-19.0.0.src/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp:441:3: uninit_use: Using uninitialized value "Options". Field "Options.AllowedTailExpansions.InlineElts" is uninitialized. +# 439| Options.LoadSizes = {8, 4, 2, 1}; +# 440| Options.MaxNumLoads = TLI->getMaxExpandSizeMemcmp(OptSize); +# 441|-> return Options; +# 442| } +# 443| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:615:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, this->getFPConst(), false))". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:615:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 613| if (Kind != KindTy::FPImmediate) +# 614| return false; +# 615|-> int Idx = RISCVLoadFPImm::getLoadFPImm( +# 616| APFloat(APFloat::IEEEdouble(), APInt(64, getFPConst()))); +# 617| // Don't allow decimal version of the minimum value. It is a different value + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1210:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, this->getFPConst(), false))". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1210:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1208| } +# 1209| +# 1210|-> int Imm = RISCVLoadFPImm::getLoadFPImm( +# 1211| APFloat(APFloat::IEEEdouble(), APInt(64, getFPConst()))); +# 1212| Inst.addOperand(MCOperand::createImm(Imm)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1944:3: var_decl: Declaring variable "RealVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1945:3: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "convertFromString". +# 1943| // Parse FP representation. +# 1944| APFloat RealVal(APFloat::IEEEdouble()); +# 1945|-> auto StatusOrErr = +# 1946| RealVal.convertFromString(Tok.getString(), APFloat::rmTowardZero); +# 1947| if (errorToBool(StatusOrErr.takeError())) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp:138:5: var_decl: Declaring variable "Instruments". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp:163:5: uninit_use: Using uninitialized value "Instruments". Field "Instruments.InlineElts" is uninitialized. +# 161| createInstrument(RISCVSEWInstrument::DESC_NAME, SEWStr)); +# 162| +# 163|-> return Instruments; +# 164| } +# 165| return SmallVector(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:101:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:104:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:105:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 103| +# 104| if (Kind < FirstTargetFixupKind) +# 105|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 106| +# 107| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:101:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:104:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp:109:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 624 bytes. +# 107| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 108| "Invalid kind!"); +# 109|-> return Infos[Kind - FirstTargetFixupKind]; +# 110| } +# 111| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:380:3: var_decl: Declaring variable "NonLibcallCSI". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:388:3: uninit_use: Using uninitialized value "NonLibcallCSI". Field "NonLibcallCSI.InlineElts" is uninitialized. +# 386| } +# 387| +# 388|-> return NonLibcallCSI; +# 389| } +# 390| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:395:3: var_decl: Declaring variable "RVVCSI". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:403:3: uninit_use: Using uninitialized value "RVVCSI". Field "RVVCSI.InlineElts" is uninitialized. +# 401| } +# 402| +# 403|-> return RVVCSI; +# 404| } +# 405| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:840:3: var_decl: Declaring variable "Opcode" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:873:3: uninit_use_in_call: Using uninitialized value "Opcode" when calling "getMachineNode". +# 871| } +# 872| +# 873|-> ReplaceNode(Node, CurDAG->getMachineNode( +# 874| Opcode, DL, Node->getSimpleValueType(0), Operands)); +# 875| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3025:3: var_decl: Declaring variable "MaxVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3026:3: uninit_use_in_call: Using uninitialized value "MaxVal.U" when calling "convertFromAPInt". +# 3024| unsigned Precision = APFloat::semanticsPrecision(FltSem); +# 3025| APFloat MaxVal = APFloat(FltSem); +# 3026|-> MaxVal.convertFromAPInt(APInt::getOneBitSet(Precision, Precision - 1), +# 3027| /*IsSigned*/ false, APFloat::rmNearestTiesToEven); +# 3028| SDValue MaxValNode = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3135:3: var_decl: Declaring variable "MaxVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3136:3: uninit_use_in_call: Using uninitialized value "MaxVal.U" when calling "convertFromAPInt". +# 3134| unsigned Precision = APFloat::semanticsPrecision(FltSem); +# 3135| APFloat MaxVal = APFloat(FltSem); +# 3136|-> MaxVal.convertFromAPInt(APInt::getOneBitSet(Precision, Precision - 1), +# 3137| /*IsSigned*/ false, APFloat::rmNearestTiesToEven); +# 3138| SDValue MaxValNode = + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3215:3: var_decl: Declaring variable "MaxVal". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:3216:3: uninit_use_in_call: Using uninitialized value "MaxVal.U" when calling "convertFromAPInt". +# 3214| unsigned Precision = APFloat::semanticsPrecision(FltSem); +# 3215| APFloat MaxVal = APFloat(FltSem); +# 3216|-> MaxVal.convertFromAPInt(APInt::getOneBitSet(Precision, Precision - 1), +# 3217| /*IsSigned*/ false, APFloat::rmNearestTiesToEven); +# 3218| SDValue MaxValNode = DAG.getConstantFP(MaxVal, DL, VT); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:7606:9: address_of: Taking address with "&NewSel" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:7606:9: callee_ptr_arith: Passing "&NewSel" to function "ReplaceAllUsesWith" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 7604| if (SDValue NewSel = foldBinOpIntoSelectIfProfitable(*Op->use_begin(), +# 7605| DAG, Subtarget)) { +# 7606|-> DAG.ReplaceAllUsesWith(BinOp, &NewSel); +# 7607| return lowerSELECT(NewSel, DAG); +# 7608| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:14478:3: var_decl: Declaring variable "Strategies". +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:14525:3: uninit_use: Using uninitialized value "Strategies". Field "Strategies.InlineElts" is uninitialized. +#14523| llvm_unreachable("Unexpected opcode"); +#14524| } +#14525|-> return Strategies; +#14526| } +#14527| } // End anonymous namespace. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:260:7: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:263:7: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:264:9: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 262| +# 263| if (Kind < FirstTargetFixupKind) +# 264|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 265| +# 266| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:260:7: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:263:7: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:269:9: illegal_address: "InfosLE[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1008 bytes. +# 267| "Invalid kind!"); +# 268| if (Endian == llvm::endianness::little) +# 269|-> return InfosLE[Kind - FirstTargetFixupKind]; +# 270| +# 271| return InfosBE[Kind - FirstTargetFixupKind]; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:260:7: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:263:7: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp:271:7: illegal_address: "InfosBE[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1008 bytes. +# 269| return InfosLE[Kind - FirstTargetFixupKind]; +# 270| +# 271|-> return InfosBE[Kind - FirstTargetFixupKind]; +# 272| } +# 273| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/Sparc/SparcISelLowering.cpp:3226:3: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(Op)->getSuccessOrdering()" (which evaluates to 15) in call to "isStrongerThanMonotonic". +# 3224| +# 3225| static SDValue LowerATOMIC_LOAD_STORE(SDValue Op, SelectionDAG &DAG) { +# 3226|-> if (isStrongerThanMonotonic(cast(Op)->getSuccessOrdering())) { +# 3227| // Expand with a fence. +# 3228| return SDValue(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:156:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:159:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:160:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 158| +# 159| if (Kind < FirstTargetFixupKind) +# 160|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 161| +# 162| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:156:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:159:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:164:3: illegal_address: "llvm::SystemZ::MCFixupKindInfos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 432 bytes. +# 162| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 163| "Invalid kind!"); +# 164|-> return SystemZ::MCFixupKindInfos[Kind - FirstTargetFixupKind]; +# 165| } +# 166| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp:636:3: return_constant: Function call "MBBI->findRegisterUseOperandIdx(llvm::Register(CC), this->TRI, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp:636:3: assignment: Assigning: "CCUse" = "MBBI->findRegisterUseOperandIdx(llvm::Register(CC), this->TRI, false)". The value of "CCUse" is now -1. +llvm-project-19.0.0.src/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp:638:3: overrun-buffer-arg: Calling "removeOperand" with "Branch->Operands" and "CCUse" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 636| int CCUse = MBBI->findRegisterUseOperandIdx(SystemZ::CC, TRI, false); +# 637| assert(CCUse >= 0 && "BRC/BCR must use CC"); +# 638|-> Branch->removeOperand(CCUse); +# 639| // Remove regmask (sibcall). +# 640| if (Type == SystemZII::CompareAndSibcall) + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:686:5: cond_at_most: Checking "regIdx > 31U" implies that "regIdx" may be up to 31 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:686:5: overrun-local: Overrunning array "MISCRegs" of 31 2-byte elements at element index 31 (byte offset 63) using index "regIdx" (which evaluates to 31). +# 684| return false; +# 685| unsigned regIdx = ConstExpr->getValue(); +# 686|-> if (regIdx > 31 || MISCRegs[regIdx] == VE::NoRegister) +# 687| return false; +# 688| Op.Kind = k_Register; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:686:5: cond_at_most: Checking "regIdx > 31U" implies that "regIdx" may be up to 31 on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp:689:5: overrun-local: Overrunning array "MISCRegs" of 31 2-byte elements at element index 31 (byte offset 63) using index "regIdx" (which evaluates to 31). +# 687| return false; +# 688| Op.Kind = k_Register; +# 689|-> Op.Reg.RegNum = MISCRegs[regIdx]; +# 690| return true; +# 691| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp:126:5: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp:127:7: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 125| +# 126| if (Kind < FirstTargetFixupKind) +# 127|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 128| +# 129| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp:79:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp:80:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 78| +# 79| if (Kind < FirstTargetFixupKind) +# 80|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 81| +# 82| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp:312:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, Op->getSFPImm(), false))". +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp:312:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 310| O << Op.getImm(); +# 311| } else if (Op.isSFPImm()) { +# 312|-> O << ::toString(APFloat(APFloat::IEEEsingle(), APInt(32, Op.getSFPImm()))); +# 313| } else if (Op.isDFPImm()) { +# 314| O << ::toString(APFloat(APFloat::IEEEdouble(), APInt(64, Op.getDFPImm()))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp:314:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, Op->getDFPImm(), false))". +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp:314:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 312| O << ::toString(APFloat(APFloat::IEEEsingle(), APInt(32, Op.getSFPImm()))); +# 313| } else if (Op.isDFPImm()) { +# 314|-> O << ::toString(APFloat(APFloat::IEEEdouble(), APInt(64, Op.getDFPImm()))); +# 315| } else { +# 316| assert(Op.isExpr() && "unknown operand kind in printOperand"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp:130:3: var_decl: Declaring variable "SinkableDbgValues". +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp:215:3: uninit_use: Using uninitialized value "SinkableDbgValues". Field "SinkableDbgValues.InlineElts" is uninitialized. +# 213| SinkableDbgValues.push_back(DV); +# 214| } +# 215|-> return SinkableDbgValues; +# 216| } +# 217| +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp:215:3: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp:1954:3: var_decl: Declaring variable "Ext" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp:1966:5: uninit_use_in_call: Using uninitialized value "Ext" when calling "getNode". +# 1964| SDValue Ret = Src; +# 1965| while (Scale != 1) { +# 1966|-> Ret = DAG.getNode(Ext, DL, +# 1967| Ret.getValueType() +# 1968| .widenIntegerVectorElementType(*DAG.getContext()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp:2122:11: var_decl: Declaring variable "Info". +llvm-project-19.0.0.src/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp:2124:11: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "onIdentifierExpr". +# 2122| InlineAsmIdentifierInfo Info; +# 2123| AsmTypeInfo Type; +# 2124|-> if (SM.onIdentifierExpr(Val, Identifier, Info, Type, +# 2125| isParsingMSInlineAsm(), ErrMsg)) +# 2126| return Error(Loc, ErrMsg); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/GISel/X86RegisterBankInfo.cpp:450:5: var_decl: Declaring variable "AltMappings". +llvm-project-19.0.0.src/llvm/lib/Target/X86/GISel/X86RegisterBankInfo.cpp:452:5: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 450| InstructionMappings AltMappings; +# 451| AltMappings.push_back(&Mapping); +# 452|-> return AltMappings; +# 453| } +# 454| default: + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/ImmutableGraph.h:375:10: address_of: Taking address with "*__begin0" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/ImmutableGraph.h:375:10: assign: Assigning: "N" = "*__begin0". +llvm-project-19.0.0.src/llvm/lib/Target/X86/ImmutableGraph.h:380:28: callee_ptr_arith: Passing "N" to function "edges" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 378| NewVertexArray[VertexI].Value = N.getValue(); +# 379| NewVertexArray[VertexI].Edges = &NewEdgeArray[EdgeI]; +# 380|-> for (const Edge &E : N.edges()) { +# 381| if (TrimEdges.contains(E)) +# 382| continue; + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:636:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:639:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:640:5: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 638| +# 639| if (Kind < FirstTargetFixupKind) +# 640|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 641| +# 642| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:636:3: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:639:3: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:645:3: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 216 bytes. +# 643| "Invalid kind!"); +# 644| assert(Infos[Kind - FirstTargetFixupKind].Name && "Empty fixup name!"); +# 645|-> return Infos[Kind - FirstTargetFixupKind]; +# 646| } +# 647| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1032:3: alias: Assigning: "Nops" = "Nops16Bit". "Nops" now points to element 0 of "Nops16Bit" (which consists of 4 11-byte elements). +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1041:5: cond_at_most: Checking "ThisNopLength <= 10" implies that "ThisNopLength" may be up to 10 on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1041:5: assignment: Assigning: "Prefixes" = "(ThisNopLength <= 10) ? 0 : (ThisNopLength - 10)". The value of "Prefixes" is now 0. +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1044:5: assignment: Assigning: "Rest" = "ThisNopLength - Prefixes". The value of "Rest" may now be up to 10. +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1045:5: cond_between: Checking "Rest != 0" implies that "Rest" is between 1 and 10 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1046:7: illegal_address: "Nops + (Rest - 1)" evaluates to an address that is at byte offset 99 of an array of 44 bytes. +# 1044| const uint8_t Rest = ThisNopLength - Prefixes; +# 1045| if (Rest != 0) +# 1046|-> OS.write(Nops[Rest - 1], Rest); +# 1047| Count -= ThisNopLength; +# 1048| } while (Count != 0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:340:3: var_decl: Declaring variable "PotentialBlockers". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:353:7: uninit_use: Using uninitialized value "PotentialBlockers". Field "PotentialBlockers.InlineElts" is uninitialized. +# 351| MachineInstr &MI = *PBInst; +# 352| if (MI.getDesc().isCall()) +# 353|-> return PotentialBlockers; +# 354| PotentialBlockers.push_back(&MI); +# 355| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:340:3: var_decl: Declaring variable "PotentialBlockers". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:377:3: uninit_use: Using uninitialized value "PotentialBlockers". Field "PotentialBlockers.InlineElts" is uninitialized. +# 375| } +# 376| } +# 377|-> return PotentialBlockers; +# 378| } +# 379| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: assign: Assigning: "MemOpNo" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:652:5: overflow: The expression "MemOpNo + AddrDisp" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:652:5: overflow_sink: "MemOpNo + AddrDisp", which might be negative, is passed to "MI->getOperand(MemOpNo + AddrDisp)". +# 650| return false; +# 651| int MemOpNo = X86::getFirstAddrOperandIdx(MI); +# 652|-> const MachineOperand &DispOp = MI.getOperand(MemOpNo + X86::AddrDisp); +# 653| Register Base = MI.getOperand(MemOpNo + X86::AddrBaseReg).getReg(); +# 654| // If the displacement is a expr, conservatively estimate 4 bytes. + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: assign: Assigning: "MemOpNo" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:658:5: overflow: The expression "MemOpNo + AddrIndexReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:658:5: overflow_sink: "MemOpNo + AddrIndexReg", which might be negative, is passed to "MI->getOperand(MemOpNo + AddrIndexReg)". +# 656| return false; +# 657| // There can only be one of three: SIB, segment override register, ADSIZE +# 658|-> Register Index = MI.getOperand(MemOpNo + X86::AddrIndexReg).getReg(); +# 659| unsigned Count = !!MI.getOperand(MemOpNo + X86::AddrSegmentReg).getReg(); +# 660| if (X86II::needSIB(Base, Index, /*In64BitMode=*/true)) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:651:5: assign: Assigning: "MemOpNo" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:659:5: overflow: The expression "MemOpNo + AddrSegmentReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ExpandPseudo.cpp:659:5: overflow_sink: "MemOpNo + AddrSegmentReg", which might be negative, is passed to "MI->getOperand(MemOpNo + AddrSegmentReg)". +# 657| // There can only be one of three: SIB, segment override register, ADSIZE +# 658| Register Index = MI.getOperand(MemOpNo + X86::AddrIndexReg).getReg(); +# 659|-> unsigned Count = !!MI.getOperand(MemOpNo + X86::AddrSegmentReg).getReg(); +# 660| if (X86II::needSIB(Base, Index, /*In64BitMode=*/true)) +# 661| ++Count; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:6655:3: var_decl: Declaring variable "FirstNonZeroIdx" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:6711:3: uninit_use: Using uninitialized value "FirstNonZeroIdx". +# 6709| +# 6710| SDValue V2 = Elt.getOperand(0); +# 6711|-> if (Elt == FirstNonZero && EltIdx == FirstNonZeroIdx) +# 6712| V1 = SDValue(); +# 6713| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7187:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7187:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7185| if (VT.isFloatingPoint()) { +# 7186| if (ScalarSize == 16) +# 7187|-> return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 7188| if (ScalarSize == 32) +# 7189| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7189:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7189:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7187| return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 7188| if (ScalarSize == 32) +# 7189|-> return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 7190| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 7191| return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7191:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7191:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7189| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 7190| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 7191|-> return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); +# 7192| } +# 7193| return Constant::getIntegerValue(Ty, Val); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7211:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7211:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7209| if (VT.isFloatingPoint()) { +# 7210| if (ScalarSize == 16) +# 7211|-> return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 7212| if (ScalarSize == 32) +# 7213| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7213:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7213:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7211| return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 7212| if (ScalarSize == 32) +# 7213|-> return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 7214| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 7215| return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7215:7: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), Val)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:7215:7: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7213| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 7214| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 7215|-> return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); +# 7216| } +# 7217| return Constant::getIntegerValue(Type::getIntNTy(C, ScalarSize), Val); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:15803:5: address_of: Taking address with "&Perm2" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:15803:5: callee_ptr_arith: Passing "&Perm2" to function "ReplaceAllUsesWith" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +#15801| DAG.getTargetConstant(0x31, DL, MVT::i8)); +#15802| if (IsFirstHalf) { +#15803|-> DAG.ReplaceAllUsesWith(SecondHalf, &Perm2); +#15804| return Perm1; +#15805| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:15806:3: address_of: Taking address with "&Perm1" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:15806:3: callee_ptr_arith: Passing "&Perm1" to function "ReplaceAllUsesWith" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +#15804| return Perm1; +#15805| } +#15806|-> DAG.ReplaceAllUsesWith(FirstHalf, &Perm1); +#15807| return Perm2; +#15808| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:19488:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, 4841369599423283200UL, false))". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:19488:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#19486| +#19487| SmallVector CV1; +#19488|-> CV1.push_back( +#19489| ConstantFP::get(*Context, APFloat(APFloat::IEEEdouble(), +#19490| APInt(64, 0x4330000000000000ULL)))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:19491:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, 4985484787499139072UL, false))". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:19491:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#19489| ConstantFP::get(*Context, APFloat(APFloat::IEEEdouble(), +#19490| APInt(64, 0x4330000000000000ULL)))); +#19491|-> CV1.push_back( +#19492| ConstantFP::get(*Context, APFloat(APFloat::IEEEdouble(), +#19493| APInt(64, 0x4530000000000000ULL)))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:19678:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, 4841369599423283200UL, false))". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:19678:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#19676| Op->getSimpleValueType(0) == MVT::v4f64) { +#19677| SDValue ZExtIn = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::v4i64, V); +#19678|-> Constant *Bias = ConstantFP::get( +#19679| *DAG.getContext(), +#19680| APFloat(APFloat::IEEEdouble(), APInt(64, 0x4330000000000000ULL))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:19764:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, 1392509056UL, false))". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:19764:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#19762| +#19763| // Create the vector constant for (0x1.0p39f + 0x1.0p23f). +#19764|-> SDValue VecCstFSub = DAG.getConstantFP( +#19765| APFloat(APFloat::IEEEsingle(), APInt(32, 0x53000080)), DL, VecFloatVT); +#19766| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:20032:5: var_decl: Declaring variable "Thresh". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:20046:5: uninit_use_in_call: Using uninitialized value "Thresh.U" when calling "getConstantFP". +#20044| "FP conversion should have been exact"); +#20045| +#20046|-> SDValue ThreshVal = DAG.getConstantFP(Thresh, DL, TheVT); +#20047| +#20048| EVT ResVT = getSetCCResultType(DAG.getDataLayout(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:21846:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, MaskElt)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:21846:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#21844| APInt::getSignMask(EltBits); +#21845| const fltSemantics &Sem = SelectionDAG::EVTToAPFloatSemantics(VT); +#21846|-> SDValue Mask = DAG.getConstantFP(APFloat(Sem, MaskElt), dl, LogicVT); +#21847| +#21848| SDValue Op0 = Op.getOperand(0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:21904:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, llvm::APInt(llvm::APInt::getSignMask(EltSizeInBits)))". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:21904:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#21902| // The mask constants are automatically splatted for vector types. +#21903| unsigned EltSizeInBits = VT.getScalarSizeInBits(); +#21904|-> SDValue SignMask = DAG.getConstantFP( +#21905| APFloat(Sem, APInt::getSignMask(EltSizeInBits)), dl, LogicVT); +#21906| SDValue MagMask = DAG.getConstantFP( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:21906:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, llvm::APInt(llvm::APInt::getSignedMaxValue(EltSizeInBits)))". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:21906:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#21904| SDValue SignMask = DAG.getConstantFP( +#21905| APFloat(Sem, APInt::getSignMask(EltSizeInBits)), dl, LogicVT); +#21906|-> SDValue MagMask = DAG.getConstantFP( +#21907| APFloat(Sem, APInt::getSignedMaxValue(EltSizeInBits)), dl, LogicVT); +#21908| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:39857:3: var_decl: Declaring variable "Mask". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:39878:5: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +#39876| switch (N.getOpcode()) { +#39877| case X86ISD::PSHUFD: +#39878|-> return Mask; +#39879| case X86ISD::PSHUFLW: +#39880| Mask.resize(4); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:39857:3: var_decl: Declaring variable "Mask". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:39881:5: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +#39879| case X86ISD::PSHUFLW: +#39880| Mask.resize(4); +#39881|-> return Mask; +#39882| case X86ISD::PSHUFHW: +#39883| Mask.erase(Mask.begin(), Mask.begin() + 4); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:39857:3: var_decl: Declaring variable "Mask". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:39886:5: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +#39884| for (int &M : Mask) +#39885| M -= 4; +#39886|-> return Mask; +#39887| default: +#39888| llvm_unreachable("No valid shuffle instruction found!"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:43591:7: var_decl: Declaring variable "F64". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:43592:7: uninit_use_in_call: Using uninitialized value "F64.U" when calling "getConstantFP". +#43590| // TODO - investigate supporting sext 32-bit immediates on x86_64. +#43591| APFloat F64(APFloat::IEEEdouble(), EltBits[0]); +#43592|-> return DAG.getBitcast(VT, DAG.getConstantFP(F64, DL, MVT::f64)); +#43593| } +#43594| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:47529:7: var_decl: Declaring variable "ShiftAmt1" without initializer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86ISelLowering.cpp:47540:9: uninit_use_in_call: Using uninitialized value "ShiftAmt1" when calling "Log2_64". +#47538| +#47539| if (Opc) { +#47540|-> SDValue Shift1 = +#47541| DAG.getNode(ISD::SHL, DL, VT, N->getOperand(0), +#47542| DAG.getConstant(Log2_64(ShiftAmt1), DL, ShiftVT)); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5680:9: return_constant: Function call "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5680:9: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5678| return true; +# 5679| UseMI.setDesc(get(X86::MOV32r0)); +# 5680|-> UseMI.removeOperand( +# 5681| UseMI.findRegisterUseOperandIdx(Reg, /*TRI=*/nullptr)); +# 5682| UseMI.addOperand(MachineOperand::CreateReg(X86::EFLAGS, /*isDef=*/true, + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5714:5: return_constant: Function call "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5714:5: assignment: Assigning: "RegIdx" = "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)". The value of "RegIdx" is now 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5724:5: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "RegIdx" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5722| return true; +# 5723| UseMI.setDesc(get(NewOpc)); +# 5724|-> UseMI.removeOperand(RegIdx); +# 5725| UseMI.addOperand(MachineOperand::CreateImm(ImmVal)); +# 5726| // Reg is physical register $cl, so we don't know if DefMI is dead through + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5743:7: return_constant: Function call "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5743:7: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "UseMI->findRegisterUseOperandIdx(Reg, NULL, false)" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5741| // %100 = COPY %101 +# 5742| UseMI.setDesc(get(TargetOpcode::COPY)); +# 5743|-> UseMI.removeOperand( +# 5744| UseMI.findRegisterUseOperandIdx(Reg, /*TRI=*/nullptr)); +# 5745| UseMI.removeOperand( + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5745:7: return_constant: Function call "UseMI->findRegisterDefOperandIdx(llvm::Register(EFLAGS), NULL, false, false)" may return -1. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:5745:7: overrun-buffer-arg: Calling "removeOperand" with "UseMI.Operands" and "UseMI->findRegisterDefOperandIdx(llvm::Register(EFLAGS), NULL, false, false)" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5743| UseMI.removeOperand( +# 5744| UseMI.findRegisterUseOperandIdx(Reg, /*TRI=*/nullptr)); +# 5745|-> UseMI.removeOperand( +# 5746| UseMI.findRegisterDefOperandIdx(X86::EFLAGS, /*TRI=*/nullptr)); +# 5747| UseMI.untieRegOperand(0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:8188:3: var_decl: Declaring variable "LoadMMOs". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:8204:3: uninit_use: Using uninitialized value "LoadMMOs". Field "LoadMMOs.InlineElts" is uninitialized. +# 8202| } +# 8203| +# 8204|-> return LoadMMOs; +# 8205| } +# 8206| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:8209:3: var_decl: Declaring variable "StoreMMOs". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:8225:3: uninit_use: Using uninitialized value "StoreMMOs". Field "StoreMMOs.InlineElts" is uninitialized. +# 8223| } +# 8224| +# 8225|-> return StoreMMOs; +# 8226| } +# 8227| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:9209:3: var_decl: Declaring variable "Nop". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86InstrInfo.cpp:9211:3: uninit_use: Using uninitialized value "Nop". Field "Nop.Operands.InlineElts" is uninitialized. +# 9209| MCInst Nop; +# 9210| Nop.setOpcode(X86::NOOP); +# 9211|-> return Nop; +# 9212| } +# 9213| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:561:8: address_of: Taking address with "*__begin1" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:561:8: assign: Assigning: "RootN" = "*__begin1". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:562:5: callee_ptr_arith: Passing "RootN" to function "edges" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 560| NodeSet ReachableNodes{G}; +# 561| for (const Node &RootN : G.nodes()) { +# 562|-> if (llvm::none_of(RootN.edges(), MachineGadgetGraph::isGadgetEdge)) +# 563| continue; // skip this node if it isn't a gadget source +# 564| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:687:8: address_of: Taking address with "*__begin1" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:687:8: assign: Assigning: "N" = "*__begin1". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:688:26: callee_ptr_arith: Passing "N" to function "edges" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 686| // than the gadget sink, or an (a)-type cut otherwise. +# 687| for (const Node &N : Graph->nodes()) { +# 688|-> for (const Edge &E : N.edges()) { +# 689| if (!MachineGadgetGraph::isGadgetEdge(E)) +# 690| continue; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:727:8: address_of: Taking address with "*__begin1" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:727:8: assign: Assigning: "N" = "*__begin1". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:728:26: callee_ptr_arith: Passing "N" to function "edges" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 726| int FencesInserted = 0; +# 727| for (const Node &N : G.nodes()) { +# 728|-> for (const Edge &E : N.edges()) { +# 729| if (CutEdges.contains(E)) { +# 730| MachineInstr *MI = N.getValue(), *Prev; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:773:3: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:773:3: assign: Assigning: "MemRefBeginIdx" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:783:3: overflow: The expression "MemRefBeginIdx + AddrIndexReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:783:3: overflow_sink: "MemRefBeginIdx + AddrIndexReg", which might have overflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrIndexReg)". +# 781| const MachineOperand &BaseMO = +# 782| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 783|-> const MachineOperand &IndexMO = +# 784| MI.getOperand(MemRefBeginIdx + X86::AddrIndexReg); +# 785| return (BaseMO.isReg() && BaseMO.getReg() != X86::NoRegister && + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:600:3: var_decl: Declaring variable "Infos". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:680:3: uninit_use: Using uninitialized value "Infos". Field "Infos.InlineElts" is uninitialized. +# 678| } +# 679| +# 680|-> return Infos; +# 681| } +# 682| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1052:3: var_decl: Declaring variable "CMovs". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1056:5: uninit_use: Using uninitialized value "CMovs". Field "CMovs.InlineElts" is uninitialized. +# 1054| // If we didn't find any indirect branches with targets, nothing to do here. +# 1055| if (IndirectTargetMBBs.empty()) +# 1056|-> return CMovs; +# 1057| +# 1058| // We found indirect branches and targets that need to be instrumented to + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1052:3: var_decl: Declaring variable "CMovs". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1201:3: uninit_use: Using uninitialized value "CMovs". Field "CMovs.InlineElts" is uninitialized. +# 1199| +# 1200| // Return all the newly inserted cmov instructions of the predicate state. +# 1201|-> return CMovs; +# 1202| } +# 1203| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1324:9: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1324:9: assign: Assigning: "MemRefBeginIdx" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1334:9: overflow: The expression "MemRefBeginIdx + AddrIndexReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1334:9: overflow_sink: "MemRefBeginIdx + AddrIndexReg", which might have overflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrIndexReg)". +# 1332| MachineOperand &BaseMO = +# 1333| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1334|-> MachineOperand &IndexMO = +# 1335| MI.getOperand(MemRefBeginIdx + X86::AddrIndexReg); +# 1336| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1400:11: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(MI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1400:11: assign: Assigning: "MemRefBeginIdx" = "llvm::X86::getFirstAddrOperandIdx(MI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405:11: overflow: The expression "MemRefBeginIdx + AddrIndexReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405:11: overflow_sink: "MemRefBeginIdx + AddrIndexReg", which might be negative, is passed to "MI->getOperand(MemRefBeginIdx + AddrIndexReg)". +# 1403| MachineOperand &BaseMO = +# 1404| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1405|-> MachineOperand &IndexMO = +# 1406| MI.getOperand(MemRefBeginIdx + X86::AddrIndexReg); +# 1407| hardenLoadAddr(MI, BaseMO, IndexMO, AddrRegToHardenedReg); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1799:9: tainted_data_return: Called function "llvm::X86::getFirstAddrOperandIdx(UseMI)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1799:9: assign: Assigning: "MemRefBeginIdx" = "llvm::X86::getFirstAddrOperandIdx(UseMI)". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1805:9: overflow: The expression "MemRefBeginIdx + AddrIndexReg" is considered to have possibly overflowed. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1805:9: overflow_sink: "MemRefBeginIdx + AddrIndexReg", which might be negative, is passed to "UseMI->getOperand(MemRefBeginIdx + AddrIndexReg)". +# 1803| MachineOperand &BaseMO = +# 1804| UseMI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1805|-> MachineOperand &IndexMO = +# 1806| UseMI.getOperand(MemRefBeginIdx + X86::AddrIndexReg); +# 1807| if ((BaseMO.isReg() && BaseMO.getReg() == DefReg) || + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1868:3: return_constant: Function call "llvm::Log2_32(RegBytes)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1868:3: assignment: Assigning: "RegIdx" = "llvm::Log2_32(RegBytes)". The value of "RegIdx" is now 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1881:3: overrun-local: Overrunning array "NOREXRegClasses" of 4 8-byte elements at element index 4294967295 (byte offset 34359738367) using index "RegIdx" (which evaluates to 4294967295). +# 1879| &X86::GR8_NOREXRegClass, &X86::GR16_NOREXRegClass, +# 1880| &X86::GR32_NOREXRegClass, &X86::GR64_NOREXRegClass}; +# 1881|-> if (RC == NOREXRegClasses[RegIdx]) +# 1882| return false; +# 1883| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1868:3: return_constant: Function call "llvm::Log2_32(RegBytes)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1868:3: assignment: Assigning: "RegIdx" = "llvm::Log2_32(RegBytes)". The value of "RegIdx" is now 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1887:3: overrun-local: Overrunning array "GPRRegClasses" of 4 8-byte elements at element index 4294967295 (byte offset 34359738367) using index "RegIdx" (which evaluates to 4294967295). +# 1885| &X86::GR8RegClass, &X86::GR16RegClass, &X86::GR32RegClass, +# 1886| &X86::GR64RegClass}; +# 1887|-> return RC->hasSuperClassEq(GPRRegClasses[RegIdx]); +# 1888| } +# 1889| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1918:5: return_constant: Function call "llvm::Log2_32(Bytes)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1918:5: overrun-local: Overrunning array "SubRegImms" of 3 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(Bytes)" (which evaluates to 4294967295). +# 1916| if (Bytes != 8) { +# 1917| unsigned SubRegImms[] = {X86::sub_8bit, X86::sub_16bit, X86::sub_32bit}; +# 1918|-> unsigned SubRegImm = SubRegImms[Log2_32(Bytes)]; +# 1919| Register NarrowStateReg = MRI->createVirtualRegister(RC); +# 1920| BuildMI(MBB, InsertPt, Loc, TII->get(TargetOpcode::COPY), NarrowStateReg) + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1931:3: return_constant: Function call "llvm::Log2_32(Bytes)" may return 4294967295. +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1931:3: overrun-local: Overrunning array "OrOpCodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(Bytes)" (which evaluates to 4294967295). +# 1929| Register NewReg = MRI->createVirtualRegister(RC); +# 1930| unsigned OrOpCodes[] = {X86::OR8rr, X86::OR16rr, X86::OR32rr, X86::OR64rr}; +# 1931|-> unsigned OrOpCode = OrOpCodes[Log2_32(Bytes)]; +# 1932| auto OrI = BuildMI(MBB, InsertPt, Loc, TII->get(OrOpCode), NewReg) +# 1933| .addReg(StateReg) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86TargetTransformInfo.cpp:6232:3: var_decl: Declaring variable "Options". +llvm-project-19.0.0.src/llvm/lib/Target/X86/X86TargetTransformInfo.cpp:6252:3: uninit_use: Using uninitialized value "Options". Field "Options.LoadSizes.InlineElts" is uninitialized. +# 6250| Options.LoadSizes.push_back(2); +# 6251| Options.LoadSizes.push_back(1); +# 6252|-> return Options; +# 6253| } +# 6254| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/TextAPI/TextStub.cpp:558:7: var_decl: Declaring variable "Targets". +llvm-project-19.0.0.src/llvm/lib/TextAPI/TextStub.cpp:570:7: uninit_use: Using uninitialized value "Targets". Field "Targets.InlineElts" is uninitialized. +# 568| } +# 569| } +# 570|-> return Targets; +# 571| } +# 572| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Coroutines/CoroFrame.cpp:474:5: var_decl: Declaring variable "Defs". +llvm-project-19.0.0.src/llvm/lib/Transforms/Coroutines/CoroFrame.cpp:479:5: uninit_use: Using uninitialized value "Defs". Field "Defs.InlineElts" is uninitialized. +# 477| for (const auto &A : Allocas) +# 478| Defs.push_back(A.Alloca); +# 479|-> return Defs; +# 480| } +# 481| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Coroutines/CoroFrame.cpp:804:5: var_decl: Declaring variable "Allocas". +llvm-project-19.0.0.src/llvm/lib/Transforms/Coroutines/CoroFrame.cpp:808:5: uninit_use: Using uninitialized value "Allocas". Field "Allocas.InlineElts" is uninitialized. +# 806| for (const auto &A : FrameData.Allocas) +# 807| Allocas.push_back(A.Alloca); +# 808|-> return Allocas; +# 809| }; +# 810| StackLifetime StackLifetimeAnalyzer(F, ExtractAllocas(), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3830:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3853:3: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 3851| } +# 3852| +# 3853|-> Attributor A(Functions, InfoCache, AC); +# 3854| +# 3855| // Create shallow wrappers for all functions that are not IPO amendable + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3830:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3853:3: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 3851| } +# 3852| +# 3853|-> Attributor A(Functions, InfoCache, AC); +# 3854| +# 3855| // Create shallow wrappers for all functions that are not IPO amendable + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3934:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3946:3: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 3944| AC.UseLiveness = false; +# 3945| +# 3946|-> Attributor A(Functions, InfoCache, AC); +# 3947| +# 3948| for (Function *F : Functions) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3934:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/Attributor.cpp:3946:3: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 3944| AC.UseLiveness = false; +# 3945| +# 3946|-> Attributor A(Functions, InfoCache, AC); +# 3947| +# 3948| for (Function *F : Functions) { + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:62:5: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(AttributeText)". The value of "Kind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:63:5: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 92 (inclusive) on the false branch. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:63:5: overrun-call: Overrunning callee's array of size 89 by passing argument "Kind" (which evaluates to 92) in call to "canUseAsFnAttr". +# 61| } +# 62| auto Kind = Attribute::getAttrKindFromName(AttributeText); +# 63|-> if (Kind == Attribute::None || !Attribute::canUseAsFnAttr(Kind)) { +# 64| LLVM_DEBUG(dbgs() << "ForcedAttribute: " << AttributeText +# 65| << " unknown or not a function attribute!\n"); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:112:11: assignment: Assigning: "AttrKind" = "llvm::Attribute::getAttrKindFromName(SplitPair.second)". The value of "AttrKind" is now between 0 and 92 (inclusive). +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:113:11: cond_between: Checking "AttrKind != None" implies that "AttrKind" is between 1 and 92 (inclusive) on the true branch. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:113:11: overrun-call: Overrunning callee's array of size 89 by passing argument "AttrKind" (which evaluates to 92) in call to "canUseAsFnAttr". +# 111| } else { +# 112| auto AttrKind = Attribute::getAttrKindFromName(SplitPair.second); +# 113|-> if (AttrKind != Attribute::None && +# 114| Attribute::canUseAsFnAttr(AttrKind)) { +# 115| // TODO: There could be string attributes without a value, we should + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/FunctionAttrs.cpp:1806:3: var_decl: Declaring variable "Res". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/FunctionAttrs.cpp:1832:3: uninit_use: Using uninitialized value "Res". Field "Res.SCCNodes.vector_.InlineElts" is uninitialized. +# 1830| Res.SCCNodes.insert(F); +# 1831| } +# 1832|-> return Res; +# 1833| } +# 1834| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:965:3: var_decl: Declaring variable "TIL". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:1029:3: uninit_use: Using uninitialized value "TIL". Field "TIL.AlignLog2" is uninitialized. +# 1027| TTRes.SizeM1BitWidth <= 5 ? Int32Ty : Int64Ty); +# 1028| +# 1029|-> return TIL; +# 1030| } +# 1031| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:965:3: var_decl: Declaring variable "TIL". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:1029:3: uninit_use: Using uninitialized value "TIL". Field "TIL.InlineBits" is uninitialized. +# 1027| TTRes.SizeM1BitWidth <= 5 ? Int32Ty : Int64Ty); +# 1028| +# 1029|-> return TIL; +# 1030| } +# 1031| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:965:3: var_decl: Declaring variable "TIL". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:1029:3: uninit_use: Using uninitialized value "TIL". Field "TIL.OffsetedGlobal" is uninitialized. +# 1027| TTRes.SizeM1BitWidth <= 5 ? Int32Ty : Int64Ty); +# 1028| +# 1029|-> return TIL; +# 1030| } +# 1031| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:965:3: var_decl: Declaring variable "TIL". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:1029:3: uninit_use: Using uninitialized value "TIL". Field "TIL.TheByteArray" is uninitialized. +# 1027| TTRes.SizeM1BitWidth <= 5 ? Int32Ty : Int64Ty); +# 1028| +# 1029|-> return TIL; +# 1030| } +# 1031| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:1132:5: var_decl: Declaring variable "TIL". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/LowerTypeTests.cpp:1169:7: uninit_use_in_call: Using uninitialized value "TIL.InlineBits" when calling "lowerTypeTestCall". +# 1167| for (CallInst *CI : TIUI.CallSites) { +# 1168| ++NumTypeTestCallsLowered; +# 1169|-> Value *Lowered = lowerTypeTestCall(TypeId, CI, TIL); +# 1170| if (Lowered) { +# 1171| CI->replaceAllUsesWith(Lowered); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:2711:7: address_of: Taking address with "&EI" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:2711:7: callee_ptr_arith: Passing "&EI" to function "moveEdgeToExistingCalleeClone" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2709| // The edge iterator is adjusted when we move the CallerEdge to the clone. +# 2710| if (Clone) +# 2711|-> moveEdgeToExistingCalleeClone(CallerEdge, Clone, &EI, /*NewClone=*/false, +# 2712| CallerEdgeContextsForAlloc); +# 2713| else + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:3164:17: address_of: Taking address with "&EI" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:3164:17: callee_ptr_arith: Passing "&EI" to function "moveEdgeToExistingCalleeClone" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 3162| ContextNode *NewClone = +# 3163| FuncCloneToNewCallsiteCloneMap[FuncCloneCalledByCaller]; +# 3164|-> moveEdgeToExistingCalleeClone(Edge, NewClone, &EI); +# 3165| // Cleanup any none type edges cloned over. +# 3166| removeNoneTypeCalleeEdges(NewClone); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:3302:3: var_decl: Declaring variable "VMaps". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:3351:3: uninit_use: Using uninitialized value "VMaps". Field "VMaps.InlineElts" is uninitialized. +# 3349| } +# 3350| } +# 3351|-> return VMaps; +# 3352| } +# 3353| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/OpenMPOpt.cpp:5877:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/OpenMPOpt.cpp:5886:3: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 5884| AC.InitializationCallback = OpenMPOpt::registerAAsForFunction; +# 5885| +# 5886|-> Attributor A(Functions, InfoCache, AC); +# 5887| +# 5888| OpenMPOpt OMPOpt(SCC, CGUpdater, OREGetter, InfoCache, A); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/SampleProfile.cpp:1599:3: var_decl: Declaring variable "R". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/SampleProfile.cpp:1604:3: uninit_use: Using uninitialized value "R". Field "R.InlineElts" is uninitialized. +# 1602| InstrProfValueData{I.first.getHashCode(), I.second}); +# 1603| } +# 1604|-> return R; +# 1605| } +# 1606| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/SampleProfile.cpp:2279:5: extract: Calling "get" which extracts wrapped state from local "OwnedORE". +llvm-project-19.0.0.src/llvm/lib/Transforms/IPO/SampleProfile.cpp:2279:5: escape: The internal representation of local "OwnedORE" escapes into "this->ORE", but is destroyed when it exits scope. +# 2277| } else { +# 2278| OwnedORE = std::make_unique(&F); +# 2279|-> ORE = OwnedORE.get(); +# 2280| } +# 2281| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:260:3: var_decl: Declaring variable "T". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:261:3: uninit_use_in_call: Using uninitialized value "T.U" when calling "changeSign". +# 259| +# 260| APFloat T(Sem, 0 - Val); +# 261|-> T.changeSign(); +# 262| +# 263| return T; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:386:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(C0->getValueAPF()->getSemantics())". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:386:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 384| +# 385| // Both operands are zero. Weird! +# 386|-> Addend0.set(APFloat(C0->getValueAPF().getSemantics()), nullptr); +# 387| return 1; +# 388| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:3291:9: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(FPType->getFltSemantics(), C)". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:3291:9: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3289| Attribute::NoImplicitFloat) && +# 3290| Cmp.isEquality() && FPType->isIEEELikeFPTy()) { +# 3291|-> FPClassTest Mask = APFloat(FPType->getFltSemantics(), *C).classify(); +# 3292| if (Mask & (fcInf | fcZero)) { +# 3293| if (Pred == ICmpInst::ICMP_NE) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:7578:5: var_decl: Declaring variable "SMax". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:7579:5: uninit_use_in_call: Using uninitialized value "SMax.U" when calling "convertFromAPInt". +# 7577| // and large values. +# 7578| APFloat SMax(RHS->getSemantics()); +# 7579|-> SMax.convertFromAPInt(APInt::getSignedMaxValue(IntWidth), true, +# 7580| APFloat::rmNearestTiesToEven); +# 7581| if (SMax < *RHS) { // smax < 13123.0 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:7590:5: var_decl: Declaring variable "UMax". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:7591:5: uninit_use_in_call: Using uninitialized value "UMax.U" when calling "convertFromAPInt". +# 7589| // +INF and large values. +# 7590| APFloat UMax(RHS->getSemantics()); +# 7591|-> UMax.convertFromAPInt(APInt::getMaxValue(IntWidth), false, +# 7592| APFloat::rmNearestTiesToEven); +# 7593| if (UMax < *RHS) { // umax < 13123.0 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:7603:5: var_decl: Declaring variable "SMin". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:7604:5: uninit_use_in_call: Using uninitialized value "SMin.U" when calling "convertFromAPInt". +# 7602| // See if the RHS value is < SignedMin. +# 7603| APFloat SMin(RHS->getSemantics()); +# 7604|-> SMin.convertFromAPInt(APInt::getSignedMinValue(IntWidth), true, +# 7605| APFloat::rmNearestTiesToEven); +# 7606| if (SMin > *RHS) { // smin > 12312.0 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:7614:5: var_decl: Declaring variable "UMin". +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp:7615:5: uninit_use_in_call: Using uninitialized value "UMin.U" when calling "convertFromAPInt". +# 7613| // See if the RHS value is < UnsignedMin. +# 7614| APFloat UMin(RHS->getSemantics()); +# 7615|-> UMin.convertFromAPInt(APInt::getMinValue(IntWidth), false, +# 7616| APFloat::rmNearestTiesToEven); +# 7617| if (UMin > *RHS) { // umin > 12312.0 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp:1295:3: var_decl: Declaring variable "Cond" without initializer. +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp:1349:3: uninit_use_in_call: Using uninitialized value "Cond" when calling "CreateSelect". +# 1347| return nullptr; +# 1348| +# 1349|-> Value *SI = Builder.CreateSelect(Cond, True, False); +# 1350| SI->takeName(&I); +# 1351| return SI; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/BlockCoverageInference.cpp:67:3: var_decl: Declaring variable "Dependencies". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/BlockCoverageInference.cpp:74:3: uninit_use: Using uninitialized value "Dependencies". Field "Dependencies.vector_.InlineElts" is uninitialized. +# 72| if (It != SuccessorDependencies.end()) +# 73| Dependencies.set_union(It->second); +# 74|-> return Dependencies; +# 75| } +# 76| +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/BlockCoverageInference.cpp:74:3: note: trimmed 2 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp:1240:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp:1257:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1255| assert(Result.empty() && +# 1256| "If no outer (top-level), must return no nested ones"); +# 1257|-> return Result; +# 1258| } +# 1259| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp:1320:5: var_decl: Declaring variable "ArgIt". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp:1321:5: uninit_use_in_call: Using uninitialized value "ArgIt". Field "ArgIt.Ptr" is uninitialized when calling "vector". +# 1319| } else { +# 1320| auto ArgIt = pointer_iterator(NewF->arg_begin()); +# 1321|-> std::vector Args(ArgIt, ArgIt + FT->getNumParams()); +# 1322| +# 1323| CallInst *CI = CallInst::Create(F, Args, "", BB); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp:214:3: var_decl: Declaring variable "Path". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp:220:3: uninit_use: Using uninitialized value "Path". Field "Path.InlineElts" is uninitialized. +# 218| else +# 219| sys::path::append(Path, SP->getDirectory(), SP->getFilename()); +# 220|-> return Path; +# 221| } +# 222| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp:3646:5: var_decl: Declaring variable "Mask". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp:3650:5: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 3648| Mask.append(2, X); +# 3649| } +# 3650|-> return Mask; +# 3651| } +# 3652| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp:4681:5: tainted_data_return: Called function "this->getNumOutputArgs(IA, CB)", and a possible return value may be less than zero. +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp:4681:5: assign: Assigning: "OutputArgs" = "this->getNumOutputArgs(IA, CB)". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp:4687:10: assign: Assigning: "i" = "OutputArgs". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp:4688:7: overflow_sink: "i", which might have overflowed, is passed to "CB->getOperand(i)". +# 4686| // that we won't overwrite uninit values before checking them. +# 4687| for (int i = OutputArgs; i < NumOperands; i++) { +# 4688|-> Value *Operand = CB->getOperand(i); +# 4689| instrumentAsmArgument(Operand, CB->getParamElementType(i), I, IRB, DL, +# 4690| /*isOutput*/ false); + +Error: VIRTUAL_DTOR (CWE-772): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:508:8: no_virtual_dtor: Class "::PGOBBInfo" does not have a virtual destructor. +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1037:8: dtor_in_derived: Class "::PGOUseBBInfo" has a compiler-generated destructor. It is non-empty because of its field "InEdges". A pointer to class "::PGOUseBBInfo" is upcast to class "::PGOBBInfo" which doesn't have a virtual destructor. +llvm-project-19.0.0.src/llvm/include/llvm/Transforms/Instrumentation/CFGMST.h:62:7: upcast: Example 1: Casting from a pointer to "::PGOUseBBInfo" to a pointer to "::PGOBBInfo" in "this->findAndCompressGroup(static_cast<::PGOUseBBInfo *>(G->Group))". +/usr/include/c++/14/bits/unique_ptr.h:93:2: delete: Example 1: Deletion of type "::PGOBBInfo". +/usr/include/c++/14/bits/unique_ptr.h:1076:7: alloc: Example 1: Allocated an object of type "::PGOUseBBInfo". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1041:15: non-empty_dtor_field: Field "InEdges" in class "::PGOUseBBInfo". +# 506| +# 507| /// This class stores the auxiliary information for each BB in the MST. +# 508|-> struct PGOBBInfo { +# 509| PGOBBInfo *Group; +# 510| uint32_t Index; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1911:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(CountValue * 1.)". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1911:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1909| CountValue = *Func.getBBInfo(&BBI).Count; +# 1910| BFICountValue = *BFICount; +# 1911|-> SumCount.add(APFloat(CountValue * 1.0), APFloat::rmNearestTiesToEven); +# 1912| SumBFICount.add(APFloat(BFICountValue * 1.0), APFloat::rmNearestTiesToEven); +# 1913| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1912:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(BFICountValue * 1.)". +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1912:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1910| BFICountValue = *BFICount; +# 1911| SumCount.add(APFloat(CountValue * 1.0), APFloat::rmNearestTiesToEven); +# 1912|-> SumBFICount.add(APFloat(BFICountValue * 1.0), APFloat::rmNearestTiesToEven); +# 1913| } +# 1914| if (SumCount.isZero()) + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp:748:5: overrun-local: Overrunning array "this->TsanAtomicRMW" of 17 80-byte elements at element index 31 (byte offset 2559) using index "RMWI->getOperation()" (which evaluates to 31). +# 746| if (Idx < 0) +# 747| return false; +# 748|-> FunctionCallee F = TsanAtomicRMW[RMWI->getOperation()][Idx]; +# 749| if (!F) +# 750| return false; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/DivRemPairs.cpp:145:3: var_decl: Declaring variable "Worklist". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/DivRemPairs.cpp:164:3: uninit_use: Using uninitialized value "Worklist". Field "Worklist.InlineElts" is uninitialized. +# 162| } +# 163| +# 164|-> return Worklist; +# 165| } +# 166| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVN.cpp:328:3: var_decl: Declaring variable "e". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVN.cpp:369:3: uninit_use: Using uninitialized value "e". Field "e.varargs.InlineElts" is uninitialized. +# 367| } +# 368| +# 369|-> return e; +# 370| } +# 371| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVN.cpp:376:3: var_decl: Declaring variable "e". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVN.cpp:388:3: uninit_use: Using uninitialized value "e". Field "e.varargs.InlineElts" is uninitialized. +# 386| e.opcode = (Opcode << 8) | Predicate; +# 387| e.commutative = true; +# 388|-> return e; +# 389| } +# 390| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVN.cpp:394:3: var_decl: Declaring variable "e". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVN.cpp:406:5: uninit_use: Using uninitialized value "e". Field "e.varargs.InlineElts" is uninitialized. +# 404| e.varargs.push_back(lookupOrAdd(WO->getLHS())); +# 405| e.varargs.push_back(lookupOrAdd(WO->getRHS())); +# 406|-> return e; +# 407| } +# 408| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVN.cpp:421:3: var_decl: Declaring variable "E". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVN.cpp:449:3: uninit_use: Using uninitialized value "E". Field "E.varargs.InlineElts" is uninitialized. +# 447| E.varargs.push_back(lookupOrAdd(Op)); +# 448| } +# 449|-> return E; +# 450| } +# 451| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVNSink.cpp:245:5: var_decl: Declaring variable "M". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/GVNSink.cpp:247:5: uninit_use: Using uninitialized value "M". Field "M.Values.InlineElts" is uninitialized. +# 245| ModelledPHI M; +# 246| M.Values.push_back(reinterpret_cast(ID)); +# 247|-> return M; +# 248| } +# 249| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1151:5: var_decl: Declaring variable "V". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1153:5: uninit_use: Using uninitialized value "V". Field "V.InlineElts" is uninitialized. +# 1151| SmallVector V; +# 1152| V.push_back(reinterpret_cast(-1)); +# 1153|-> return V; +# 1154| } +# 1155| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1157:5: var_decl: Declaring variable "V". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1159:5: uninit_use: Using uninitialized value "V". Field "V.InlineElts" is uninitialized. +# 1157| SmallVector V; +# 1158| V.push_back(reinterpret_cast(-2)); +# 1159|-> return V; +# 1160| } +# 1161| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp:2472:7: var_decl: Declaring variable "Leaves". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp:2479:7: uninit_use: Using uninitialized value "Leaves". Field "Leaves.InlineElts" is uninitialized. +# 2477| })) +# 2478| Leaves.push_back(Expr); +# 2479|-> return Leaves; +# 2480| } +# 2481| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4012:7: var_decl: Declaring variable "NewOps". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4018:7: uninit_use: Using uninitialized value "NewOps". Field "NewOps.InlineElts" is uninitialized. +# 4016| else +# 4017| NewOps.push_back(Op); +# 4018|-> return NewOps; +# 4019| }; +# 4020| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4102:7: var_decl: Declaring variable "NewOps". +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/SROA.cpp:4108:7: uninit_use: Using uninitialized value "NewOps". Field "NewOps.InlineElts" is uninitialized. +# 4106| else +# 4107| NewOps.push_back(Op); +# 4108|-> return NewOps; +# 4109| }; +# 4110| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp:118:3: var_decl: Declaring variable "SB". +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp:130:3: uninit_use: Using uninitialized value "SB". Field "SB.InlineElts" is uninitialized. +# 128| } +# 129| SB.resize(Layout.FrameSize / Granularity, kAsanStackRightRedzoneMagic); +# 130|-> return SB; +# 131| } +# 132| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/InlineFunction.cpp:1427:3: var_decl: Declaring variable "Valid". +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/InlineFunction.cpp:1436:3: uninit_use: Using uninitialized value "Valid". Field "Valid.Attrs.InlineElts" is uninitialized. +# 1434| if (CB.hasRetAttr(Attribute::NoUndef)) +# 1435| Valid.addAttribute(Attribute::NoUndef); +# 1436|-> return Valid; +# 1437| } +# 1438| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/InlineFunction.cpp:1442:3: var_decl: Declaring variable "Valid". +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/InlineFunction.cpp:1447:3: uninit_use: Using uninitialized value "Valid". Field "Valid.Attrs.InlineElts" is uninitialized. +# 1445| if (CB.hasRetAttr(Attribute::Alignment)) +# 1446| Valid.addAlignmentAttr(CB.getRetAlign()); +# 1447|-> return Valid; +# 1448| } +# 1449| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp:102:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Val)". +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp:102:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 100| Value *createCond(IRBuilder<> &BBBuilder, Value *Arg, CmpInst::Predicate Cmp, +# 101| float Val) { +# 102|-> Constant *V = ConstantFP::get(BBBuilder.getContext(), APFloat(Val)); +# 103| if (!Arg->getType()->isFloatTy()) +# 104| V = ConstantFoldCastInstruction(Instruction::FPExt, V, Arg->getType()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/LoopUtils.cpp:124:3: var_decl: Declaring variable "UsedOutside". +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/LoopUtils.cpp:138:3: uninit_use: Using uninitialized value "UsedOutside". Field "UsedOutside.InlineElts" is uninitialized. +# 136| } +# 137| +# 138|-> return UsedOutside; +# 139| } +# 140| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/SampleProfileInference.cpp:137:5: var_decl: Declaring variable "SrcEdge" without initializer. +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/SampleProfileInference.cpp:151:5: uninit_use_in_call: Using uninitialized value "SrcEdge". Field "SrcEdge.OnShortestPath" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 149| DstEdge.RevEdgeIndex = Edges[Src].size(); +# 150| +# 151|-> Edges[Src].push_back(SrcEdge); +# 152| Edges[Dst].push_back(DstEdge); +# 153| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/SampleProfileInference.cpp:144:5: var_decl: Declaring variable "DstEdge" without initializer. +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/SampleProfileInference.cpp:152:5: uninit_use_in_call: Using uninitialized value "DstEdge". Field "DstEdge.OnShortestPath" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 150| +# 151| Edges[Src].push_back(SrcEdge); +# 152|-> Edges[Dst].push_back(DstEdge); +# 153| } +# 154| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/ValueMapper.cpp:1123:3: var_decl: Declaring variable "WE" without initializer. +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/ValueMapper.cpp:1128:3: uninit_use_in_call: Using uninitialized value "WE". Field "WE.AppendingGVIsOldCtorDtor" is uninitialized when calling "push_back". +# 1126| WE.Data.GVInit.GV = &GV; +# 1127| WE.Data.GVInit.Init = &Init; +# 1128|-> Worklist.push_back(WE); +# 1129| } +# 1130| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/ValueMapper.cpp:1157:3: var_decl: Declaring variable "WE" without initializer. +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/ValueMapper.cpp:1162:3: uninit_use_in_call: Using uninitialized value "WE". Field "WE.AppendingGVIsOldCtorDtor" is uninitialized when calling "push_back". +# 1160| WE.Data.AliasOrIFunc.GV = &GV; +# 1161| WE.Data.AliasOrIFunc.Target = &Target; +# 1162|-> Worklist.push_back(WE); +# 1163| } +# 1164| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/ValueMapper.cpp:1169:3: var_decl: Declaring variable "WE" without initializer. +llvm-project-19.0.0.src/llvm/lib/Transforms/Utils/ValueMapper.cpp:1173:3: uninit_use_in_call: Using uninitialized value "WE". Field "WE.AppendingGVIsOldCtorDtor" is uninitialized when calling "push_back". +# 1171| WE.MCID = MCID; +# 1172| WE.Data.RemapF = &F; +# 1173|-> Worklist.push_back(WE); +# 1174| } +# 1175| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:2671:7: var_decl: Declaring variable "Mask". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:2674:7: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 2672| inversePermutation(ReorderIndices, Mask); +# 2673| ::addMask(Mask, ReuseShuffleIndices); +# 2674|-> return Mask; +# 2675| } +# 2676| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:3766:7: var_decl: Declaring variable "V". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:3768:7: uninit_use: Using uninitialized value "V". Field "V.InlineElts" is uninitialized. +# 3766| OrdersType V; +# 3767| V.push_back(~1U); +# 3768|-> return V; +# 3769| } +# 3770| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:3772:7: var_decl: Declaring variable "V". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:3774:7: uninit_use: Using uninitialized value "V". Field "V.InlineElts" is uninitialized. +# 3772| OrdersType V; +# 3773| V.push_back(~2U); +# 3774|-> return V; +# 3775| } +# 3776| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:5824:3: var_decl: Declaring variable "ExternalReorderIndices". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:5844:3: uninit_use: Using uninitialized value "ExternalReorderIndices". Field "ExternalReorderIndices.InlineElts" is uninitialized. +# 5842| ExternalReorderIndices.push_back(ReorderIndices); +# 5843| } +# 5844|-> return ExternalReorderIndices; +# 5845| } +# 5846| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:9033:3: var_decl: Declaring variable "ArgTys". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:9048:3: uninit_use: Using uninitialized value "ArgTys". Field "ArgTys.InlineElts" is uninitialized. +# 9046| ArgTys.push_back(FixedVectorType::get(Arg->getType(), VF)); +# 9047| } +# 9048|-> return ArgTys; +# 9049| } +# 9050| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15155:5: var_decl: Declaring variable "CallChecker". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15211:5: uninit_use_in_call: Using uninitialized value "CallChecker.callable" when calling "operator ()". +#15209| (void)AttemptCheckBitwidth(Checker, NeedToExit); +#15210| BitWidth = BestBitWidth; +#15211|-> return TryProcessInstruction(BitWidth, Operands, CallChecker); +#15212| } +#15213| +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15211:5: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15832:9: var_decl: Declaring variable "AnyProfitableGraph" without initializer. +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15959:9: uninit_use: Using uninitialized value "AnyProfitableGraph". +#15957| break; +#15958| // Check if tried all attempts or no need for the last attempts at all. +#15959|-> if (Repeat >= MaxAttempts || +#15960| (Repeat > 1 && (RepeatChanged || !AnyProfitableGraph))) +#15961| break; +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15959:9: note: trimmed 5 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp:156:3: var_decl: Declaring variable "Operands". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp:162:3: uninit_use: Using uninitialized value "Operands". Field "Operands.InlineElts" is uninitialized. +# 160| Operands.push_back(U->getOperand(OperandIndex)); +# 161| } +# 162|-> return Operands; +# 163| } +# 164| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp:172:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp:187:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 185| } +# 186| +# 187|-> return Result; +# 188| } +# 189| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp:297:3: var_decl: Declaring variable "FinalOrder". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp:341:3: uninit_use: Using uninitialized value "FinalOrder". Field "FinalOrder.InlineElts" is uninitialized. +# 339| } +# 340| +# 341|-> return FinalOrder; +# 342| } +# 343| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:1235:3: var_decl: Declaring variable "HeaderMasks". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:1250:3: uninit_use: Using uninitialized value "HeaderMasks". Field "HeaderMasks.InlineElts" is uninitialized. +# 1248| } +# 1249| } +# 1250|-> return HeaderMasks; +# 1251| } +# 1252| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VectorCombine.cpp:1702:9: var_decl: Declaring variable "NItem". +llvm-project-19.0.0.src/llvm/lib/Transforms/Vectorize/VectorCombine.cpp:1710:9: uninit_use: Using uninitialized value "NItem". Field "NItem.InlineElts" is uninitialized. +# 1708| cast(V.first)->getOperand(Op), V.second)); +# 1709| } +# 1710|-> return NItem; +# 1711| }; +# 1712| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: alloc_fn: Storage is returned from allocation function "strdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: var_assign: Assigning: "NewDefinedDefaultHref" = storage returned from "strdup(reinterpret_cast(Def->href))". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: overwrite_var: Overwriting "NewDefinedDefaultHref" in "NewDefinedDefaultHref = reinterpret_cast(strdup(reinterpret_cast(Def->href)))" leaks the storage that "NewDefinedDefaultHref" points to. +# 346| if (!Def->prefix) { +# 347| if (namespaceOverrides(Def->href, OriginalNsDef->href)) { +# 348|-> NewDefinedDefaultHref = TO_XML_CHAR(strdup(FROM_XML_CHAR(Def->href))); +# 349| } +# 350| } else if (!xmlStringsEqual(OriginalNsDef->href, Def->href)) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: alloc_fn: Storage is returned from allocation function "strdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: var_assign: Assigning: "NewDefinedDefaultHref" = storage returned from "strdup(reinterpret_cast(Def->href))". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:351:9: leaked_storage: Variable "NewDefinedDefaultHref" going out of scope leaks the storage it points to. +# 349| } +# 350| } else if (!xmlStringsEqual(OriginalNsDef->href, Def->href)) { +# 351|-> return make_error( +# 352| Twine("conflicting namespace definitions for ") + +# 353| FROM_XML_CHAR(Def->prefix)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:337:5: alloc_fn: Storage is returned from allocation function "xmlStrdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:337:5: var_assign: Assigning: "OriginalDefinedDefaultHref" = storage returned from "xmlStrdup(OriginalDefinedDefaultNs->href)". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:351:9: leaked_storage: Variable "OriginalDefinedDefaultHref" going out of scope leaks the storage it points to. +# 349| } +# 350| } else if (!xmlStringsEqual(OriginalNsDef->href, Def->href)) { +# 351|-> return make_error( +# 352| Twine("conflicting namespace definitions for ") + +# 353| FROM_XML_CHAR(Def->prefix)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: alloc_fn: Storage is returned from allocation function "strdup". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:348:11: var_assign: Assigning: "NewDefinedDefaultHref" = storage returned from "strdup(reinterpret_cast(Def->href))". +llvm-project-19.0.0.src/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp:385:11: leaked_storage: Variable "NewDefinedDefaultHref" going out of scope leaks the storage it points to. +# 383| searchOrDefine(OriginalDefinedDefaultHref, DominantNode); +# 384| if (!EC) { +# 385|-> return EC.takeError(); +# 386| } +# 387| xmlNsPtr PrefixDominantDefinedDefault = std::move(EC.get()); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenDAGISel.inc:249212:1: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(N)->getMergedOrdering()" (which evaluates to 15) in call to "isAcquireOrStronger". +#249210| SDNode *N = Node; +#249211| (void)N; +#249212|-> if (isAcquireOrStronger(cast(N)->getMergedOrdering())) return false; +#249213| return true; +#249214| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenDAGISel.inc:249409:1: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(N)->getMergedOrdering()" (which evaluates to 15) in call to "isReleaseOrStronger". +#249407| SDNode *N = Node; +#249408| (void)N; +#249409|-> if (isReleaseOrStronger(cast(N)->getMergedOrdering())) return false; +#249410| return true; +#249411| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenDAGISel.inc:249494:1: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(N)->getMergedOrdering()" (which evaluates to 15) in call to "isReleaseOrStronger". +#249492| SDNode *N = Node; +#249493| (void)N; +#249494|-> if (!isReleaseOrStronger(cast(N)->getMergedOrdering())) return false; +#249495| return true; +#249496| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/ARM/ARMGenDAGISel.inc:90884:3: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/ARM/ARMGenDAGISel.inc:90885:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isAcquireOrStronger". +#90883| +#90884| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#90885|-> return isAcquireOrStronger(Ordering); +#90886| +#90887| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/ARM/ARMGenDAGISel.inc:90895:3: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/ARM/ARMGenDAGISel.inc:90896:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isReleaseOrStronger". +#90894| +#90895| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#90896|-> return isReleaseOrStronger(Ordering); +#90897| +#90898| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48129:3: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48130:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isReleaseOrStronger". +#48128| +#48129| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#48130|-> return !isReleaseOrStronger(Ordering); +#48131| +#48132| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48199:3: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/LoongArch/LoongArchGenDAGISel.inc:48200:3: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isReleaseOrStronger". +#48198| +#48199| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#48200|-> return isReleaseOrStronger(Ordering); +#48201| +#48202| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:579:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(floatSema, value)". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:579:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 577| const llvm::fltSemantics &floatSema = llvm::APFloatBase::EnumToSemantics( +# 578| static_cast(semantics)); +# 579|-> return APValue(llvm::APFloat(floatSema, value)); +# 580| +# 581| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:604:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(sema, imag)". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:604:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 602| const llvm::fltSemantics &sema = llvm::APFloatBase::EnumToSemantics( +# 603| static_cast(semantics)); +# 604|-> return APValue(llvm::APFloat(sema, real), +# 605| llvm::APFloat(sema, imag)); +# 606| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:629:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:633:7: uninit_use_in_call: Using uninitialized value "result.Data" when calling "getArrayInitializedElt". +# 631| result.MakeArray(initLength, totalLength); +# 632| for (unsigned i = 0; i < initLength; ++i) +# 633|-> result.getArrayInitializedElt(i) = elements[i]; +# 634| if (hasFiller) +# 635| result.getArrayFiller() = elements.back(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:646:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:649:7: uninit_use_in_call: Using uninitialized value "result.Data" when calling "getStructBase". +# 647| result.MakeStruct(bases.size(), fields.size()); +# 648| for (unsigned i = 0; i < bases.size(); ++i) +# 649|-> result.getStructBase(i) = bases[i]; +# 650| for (unsigned i = 0; i < fields.size(); ++i) +# 651| result.getStructField(i) = fields[i]; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:678:5: var_decl: Declaring variable "result". +llvm-project-19.0.0.src/llvm/redhat-linux-build/tools/clang/include/clang/AST/AbstractBasicReader.inc:684:5: uninit_use: Using uninitialized value "result". Field "result.Data" is uninitialized. +# 682| for (unsigned i = 0; i < pathSize; ++i) +# 683| pathArray[i] = memberPath[i]->getCanonicalDecl(); +# 684|-> return result; +# 685| +# 686| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp:149:5: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-project-19.0.0.src/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp:152:5: use_after_move: "Err" is used after it has been already moved. +# 150| toString(std::move(Err)), +# 151| Obj.getObjectFilename()); +# 152|-> return errorToErrorCode(std::move(Err)); +# 153| } +# 154| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp:158:5: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-project-19.0.0.src/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp:161:5: use_after_move: "Err" is used after it has been already moved. +# 159| toString(std::move(Err)), +# 160| Obj.getObjectFilename()); +# 161|-> return errorToErrorCode(std::move(Err)); +# 162| } +# 163| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/dsymutil/dsymutil.cpp:294:3: var_decl: Declaring variable "Options". +llvm-project-19.0.0.src/llvm/tools/dsymutil/dsymutil.cpp:402:3: uninit_use_in_call: Using uninitialized value "Options.NumThreads" when calling "Expected". +# 400| if (Error E = verifyOptions(Options)) +# 401| return std::move(E); +# 402|-> return Options; +# 403| } +# 404| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/gold/gold-plugin.cpp:128:34: destructor_uses_global_object: The destructor of global object "ResInfo" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "ResInfo" might be called after "fuzzer::TPC" has already been destroyed. +# 126| static std::list Modules; +# 127| static DenseMap FDToLeaderHandle; +# 128|-> static StringMap ResInfo; +# 129| static std::vector Cleanup; +# 130| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/tools/llvm-c-test/calc.c:128:3: address_of: Taking address with "¶m" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/tools/llvm-c-test/calc.c:128:3: callee_ptr_arith: Passing "¶m" to function "LLVMGetParams" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 126| LLVMPositionBuilderAtEnd(builder, LLVMAppendBasicBlock(F, "entry")); +# 127| +# 128|-> LLVMGetParams(F, ¶m); +# 129| LLVMSetValueName(param, "in"); +# 130| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/tools/llvm-c-test/diagnostic.c:72:3: alloc_arg: "LLVMGetBitcodeModule2" allocates memory that is stored into "M". +llvm-project-19.0.0.src/llvm/tools/llvm-c-test/diagnostic.c:82:3: leaked_storage: Variable "M" going out of scope leaks the storage it points to. +# 80| } +# 81| +# 82|-> return 0; +# 83| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/tools/llvm-c-test/object.c:78:3: alloc_fn: Storage is returned from allocation function "LLVMObjectFileCopySectionIterator". +llvm-project-19.0.0.src/llvm/tools/llvm-c-test/object.c:78:3: var_assign: Assigning: "sect" = storage returned from "LLVMObjectFileCopySectionIterator(O)". +llvm-project-19.0.0.src/llvm/tools/llvm-c-test/object.c:96:3: leaked_storage: Variable "sect" going out of scope leaks the storage it points to. +# 94| LLVMDisposeMemoryBuffer(MB); +# 95| +# 96|-> return 0; +# 97| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:351:5: move: "CoverageInfo" is moved (indicated by "std::move(CoverageInfo)"). +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:351:5: use_after_move: "CoverageInfo" is used after it has been already moved. +# 349| ViewBranches.push_back(*NextBranch++); +# 350| +# 351|-> View.addBranch(CurrentLine, std::move(ViewBranches), +# 352| SourceCoverageView::create(SourceName, File, ViewOpts, +# 353| std::move(CoverageInfo))); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:377:5: move: "CoverageInfo" is moved (indicated by "std::move(CoverageInfo)"). +llvm-project-19.0.0.src/llvm/tools/llvm-cov/CodeCoverage.cpp:377:5: use_after_move: "CoverageInfo" is used after it has been already moved. +# 375| ViewMCDCRecords.push_back(*NextRecord++); +# 376| +# 377|-> View.addMCDCRecord(CurrentLine, std::move(ViewMCDCRecords), +# 378| SourceCoverageView::create(SourceName, File, ViewOpts, +# 379| std::move(CoverageInfo))); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/tools/llvm-cov/llvm-cov.cpp:80:7: extract: Calling "c_str" which extracts wrapped state from local "Invocation". +llvm-project-19.0.0.src/llvm/tools/llvm-cov/llvm-cov.cpp:80:7: escape: The internal representation of local "Invocation" escapes into "argv[1]", but is destroyed when it exits scope. +# 78| if (Func) { +# 79| std::string Invocation = std::string(argv[0]) + " " + argv[1]; +# 80|-> argv[1] = Invocation.c_str(); +# 81| return Func(argc - 1, argv + 1); +# 82| } + +Error: Y2K38_SAFETY (CWE-197): +llvm-project-19.0.0.src/llvm/tools/llvm-cvtres/llvm-cvtres.cpp:93:10: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "Now" is cast to "uint32_t". +# 91| if (Now < 0 || !isUInt<32>(Now)) +# 92| return UINT32_MAX; +# 93|-> return static_cast(Now); +# 94| } +# 95| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-dwp/llvm-dwp.cpp:94:7: move: "DWOName" is moved (indicated by "std::move(DWOName)"). +llvm-project-19.0.0.src/llvm/tools/llvm-dwp/llvm-dwp.cpp:96:7: use_after_move: "DWOName" is used after it has been already moved. +# 94| SmallString<16> DWOPath(std::move(DWOName)); +# 95| sys::fs::make_absolute(DWOCompDir, DWOPath); +# 96|-> if (!sys::fs::exists(DWOPath) && sys::fs::exists(DWOName)) +# 97| DWOPaths.push_back(std::move(DWOName)); +# 98| else + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp:439:5: var_decl: Declaring variable "rlim" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp:442:5: uninit_use_in_call: Using uninitialized value "rlim". Field "rlim.rlim_max" is uninitialized when calling "setrlimit". +# 440| +# 441| rlim.rlim_cur = 0; +# 442|-> setrlimit(RLIMIT_CORE, &rlim); +# 443| } +# 444| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/CodeTemplate.cpp:116:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/CodeTemplate.cpp:120:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 118| if ((Execution & Bit) == Bit) +# 119| Result.push_back(Bit); +# 120|-> return Result; +# 121| } +# 122| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp:51:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp:119:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 117| } +# 118| } +# 119|-> return Result; +# 120| } +# 121| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/SubprocessMemory.cpp:126:3: alloc_fn: Storage is returned from allocation function "mmap". +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/SubprocessMemory.cpp:126:3: var_assign: Assigning: "AuxiliaryMemoryMapping" = storage returned from "mmap(NULL, 4096UL, 3, 1, AuxiliaryMemoryFileDescriptor, 0L)". +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/lib/SubprocessMemory.cpp:138:7: leaked_storage: Variable "AuxiliaryMemoryMapping" going out of scope leaks the storage it points to. +# 136| shm_open(MemoryValueName.c_str(), O_RDWR, S_IRUSR | S_IWUSR); +# 137| if (AuxiliaryMemoryMapping[AuxiliaryMemoryOffset + MemVal.Index] == -1) +# 138|-> return make_error("Mapping shared memory failed"); +# 139| } +# 140| if (munmap(AuxiliaryMemoryMapping, 4096) == -1) + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/llvm-exegesis.cpp:427:13: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-project-19.0.0.src/llvm/tools/llvm-exegesis/llvm-exegesis.cpp:429:11: use_after_move: "Err" is used after it has been already moved. +# 427| ExitOnErr(std::move(Err)); +# 428| +# 429|-> BenchmarkResult.Error = toString(std::move(Err)); +# 430| } +# 431| AllResults.push_back(std::move(BenchmarkResult)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp:75:3: alloc_arg: "getaddrinfo" allocates memory that is stored into "AI". +llvm-project-19.0.0.src/llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp:109:3: leaked_storage: Variable "AI" going out of scope leaks the storage it points to. +# 107| return accept(SockFD, AI->ai_addr, &AddrLen); +# 108| #else +# 109|-> return accept(SockFD, AI->ai_addr, &AI->ai_addrlen); +# 110| #endif +# 111| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-jitlink/llvm-jitlink.cpp:1808:3: var_decl: Declaring variable "PathVec". +llvm-project-19.0.0.src/llvm/tools/llvm-jitlink/llvm-jitlink.cpp:1815:3: uninit_use: Using uninitialized value "PathVec". Field "PathVec.InlineElts" is uninitialized. +# 1813| StringRef(getenv("LD_LIBRARY_PATH")).split(PathVec, ":"); +# 1814| +# 1815|-> return PathVec; +# 1816| } +# 1817| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp:674:3: var_decl: Declaring variable "C". +llvm-project-19.0.0.src/llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp:682:5: uninit_use_in_call: Using uninitialized value "C". Field "C.ArchCPUType" is uninitialized when calling "Expected". +# 680| "-static option: must be specified"); +# 681| } +# 682|-> return C; +# 683| } +# 684| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp:674:3: var_decl: Declaring variable "C". +llvm-project-19.0.0.src/llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp:725:3: uninit_use_in_call: Using uninitialized value "C". Field "C.ArchCPUType" is uninitialized when calling "Expected". +# 723| InputFiles, OutputFile); +# 724| +# 725|-> return C; +# 726| } +# 727| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-lipo/llvm-lipo.cpp:317:3: var_decl: Declaring variable "InputBinaries". +llvm-project-19.0.0.src/llvm/tools/llvm-lipo/llvm-lipo.cpp:346:3: uninit_use: Using uninitialized value "InputBinaries". Field "InputBinaries.InlineElts" is uninitialized. +# 344| InputBinaries.push_back(std::move(*BinaryOrErr)); +# 345| } +# 346|-> return InputBinaries; +# 347| } +# 348| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-lipo/llvm-lipo.cpp:556:3: var_decl: Declaring variable "Slices". +llvm-project-19.0.0.src/llvm/tools/llvm-lipo/llvm-lipo.cpp:598:3: uninit_use: Using uninitialized value "Slices". Field "Slices.InlineElts" is uninitialized. +# 596| } +# 597| updateAlignments(Slices, Alignments); +# 598|-> return Slices; +# 599| } +# 600| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-mca/CodeRegion.cpp:164:3: var_decl: Declaring variable "AI". +llvm-project-19.0.0.src/llvm/tools/llvm-mca/CodeRegion.cpp:171:3: uninit_use: Using uninitialized value "AI". Field "AI.InlineElts" is uninitialized. +# 169| } +# 170| } +# 171|-> return AI; +# 172| } +# 173| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-nm/llvm-nm.cpp:665:3: var_decl: Declaring variable "Line" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-nm/llvm-nm.cpp:724:3: uninit_use_in_call: Using uninitialized value "Line" when calling "operator <<". +# 722| } +# 723| } +# 724|-> outs() << '\t' << FileName << ':' << Line; +# 725| } +# 726| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp:283:37: destructor_uses_global_object: The destructor of global object "TargetMap" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "TargetMap" might be called after "fuzzer::TPC" has already been destroyed. +# 281| +# 282| // FIXME: consolidate with the bfd parsing used by lld. +# 283|-> static const StringMap TargetMap{ +# 284| // Name, {EMachine, 64bit, LittleEndian} +# 285| // x86 + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/COFFDump.cpp:862:7: alloc_fn: Storage is returned from allocation function "microsoftDemangle". +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/COFFDump.cpp:862:7: var_assign: Assigning: "DemangledSymbol" = storage returned from "llvm::microsoftDemangle(Name.operator std::string_view(), NULL, &Status, MSDF_None)". +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/COFFDump.cpp:870:5: leaked_storage: Variable "DemangledSymbol" going out of scope leaks the storage it points to. +# 868| outs() << " (invalid mangled name)"; +# 869| } +# 870|-> } +# 871| outs() << "\n"; +# 872| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:1202:3: var_decl: Declaring variable "Ret". +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:1212:3: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 1210| } +# 1211| } +# 1212|-> return Ret; +# 1213| } +# 1214| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:2844:5: var_decl: Declaring variable "r_value" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:2886:7: uninit_use_in_call: Using uninitialized value "r_value" when calling "GuessSymbolName". +# 2884| if (reloc_found && (r_type == MachO::GENERIC_RELOC_SECTDIFF || +# 2885| r_type == MachO::GENERIC_RELOC_LOCAL_SECTDIFF)) { +# 2886|-> const char *add = GuessSymbolName(r_value, info->AddrMap); +# 2887| const char *sub = GuessSymbolName(pair_r_value, info->AddrMap); +# 2888| uint32_t offset = value - (r_value - pair_r_value); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:2844:5: var_decl: Declaring variable "pair_r_value" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:2887:7: uninit_use_in_call: Using uninitialized value "pair_r_value" when calling "GuessSymbolName". +# 2885| r_type == MachO::GENERIC_RELOC_LOCAL_SECTDIFF)) { +# 2886| const char *add = GuessSymbolName(r_value, info->AddrMap); +# 2887|-> const char *sub = GuessSymbolName(pair_r_value, info->AddrMap); +# 2888| uint32_t offset = value - (r_value - pair_r_value); +# 2889| op_info->AddSymbol.Present = 1; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:6600:3: var_decl: Declaring variable "objc_class" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:6704:7: uninit_use: Using uninitialized value "objc_class.info". +# 6702| } +# 6703| +# 6704|-> if (CLS_GETINFO(&objc_class, CLS_CLASS)) { +# 6705| outs() << "\tMeta Class"; +# 6706| r = get_pointer_32(objc_class.isa, xoffset, left, xS, &info, true); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:6600:3: var_decl: Declaring variable "objc_class" without initializer. +llvm-project-19.0.0.src/llvm/tools/llvm-objdump/MachODump.cpp:6706:9: uninit_use_in_call: Using uninitialized value "objc_class.isa" when calling "get_pointer_32". +# 6704| if (CLS_GETINFO(&objc_class, CLS_CLASS)) { +# 6705| outs() << "\tMeta Class"; +# 6706|-> r = get_pointer_32(objc_class.isa, xoffset, left, xS, &info, true); +# 6707| if (r != nullptr) { +# 6708| if (left > sizeof(struct objc_class_t)) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp:65:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp:76:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 74| Result.push_back(*ESS); +# 75| } +# 76|-> return Result; +# 77| } +# 78| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp:1496:13: move: "EC" is moved (indicated by "std::move(EC)"). +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp:1498:13: use_after_move: "EC" is used after it has been already moved. +# 1496| P.formatLine("Error while processing symbol records. {0}", +# 1497| toString(std::move(EC))); +# 1498|-> return EC; +# 1499| } +# 1500| } else if (auto EC = Visitor.visitSymbolStream(ModS.getSymbolArray(), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp:1502:11: move: "EC" is moved (indicated by "std::move(EC)"). +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp:1504:11: use_after_move: "EC" is used after it has been already moved. +# 1502| P.formatLine("Error while processing symbol records. {0}", +# 1503| toString(std::move(EC))); +# 1504|-> return EC; +# 1505| } +# 1506| return Error::success(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp:98:5: var_decl: Declaring variable "Pct". +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp:101:5: uninit_use_in_call: Using uninitialized value "Pct.U" when calling "toString". +# 99| (double)Layout.getSize()); +# 100| SmallString<8> PctStr; +# 101|-> Pct.toString(PctStr, 4); +# 102| WithColor(Printer, PDB_ColorItem::Padding).get() +# 103| << "Total padding " << Layout.deepPaddingSize() << " bytes (" << PctStr + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp:106:5: var_decl: Declaring variable "Pct2". +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp:109:5: uninit_use_in_call: Using uninitialized value "Pct2.U" when calling "toString". +# 107| (double)Layout.getSize()); +# 108| PctStr.clear(); +# 109|-> Pct2.toString(PctStr, 4); +# 110| WithColor(Printer, PDB_ColorItem::Padding).get() +# 111| << "Immediate padding " << Layout.immediatePadding() << " bytes (" + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp:811:3: var_decl: Declaring variable "DefaultInfoStream". +llvm-project-19.0.0.src/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp:816:3: uninit_use_in_call: Using uninitialized value "DefaultInfoStream.Guid" when calling "value_or". +# 814| pdb::yaml::PdbTpiStream DefaultIpiStream; +# 815| +# 816|-> const auto &Info = YamlObj.PdbStream.value_or(DefaultInfoStream); +# 817| +# 818| auto &InfoBuilder = Builder.getInfoBuilder(); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-profgen/PerfReader.cpp:1227:52: destructor_uses_global_object: The destructor of global object "llvm::sampleprof::PerfScriptReader::TempFileCleanups" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::sampleprof::PerfScriptReader::TempFileCleanups" might be called after "fuzzer::TPC" has already been destroyed. +# 1225| } +# 1226| +# 1227|-> SmallVector PerfScriptReader::TempFileCleanups; +# 1228| +# 1229| } // end namespace sampleprof + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-profgen/ProfiledBinary.cpp:915:3: var_decl: Declaring variable "CallStack". +llvm-project-19.0.0.src/llvm/tools/llvm-profgen/ProfiledBinary.cpp:939:3: uninit_use: Using uninitialized value "CallStack". Field "CallStack.InlineElts" is uninitialized. +# 937| } +# 938| +# 939|-> return CallStack; +# 940| } +# 941| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/ResourceScriptStmt.cpp:149:44: destructor_uses_global_object: The destructor of global object "llvm::rc::Control::SupportedCtls" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::rc::Control::SupportedCtls" might be called after "fuzzer::TPC" has already been destroyed. +# 147| } +# 148| +# 149|-> const StringMap Control::SupportedCtls = { +# 150| {"LTEXT", CtlInfo{0x50020000, ClsStatic, true}}, +# 151| {"CTEXT", CtlInfo{0x50020001, ClsStatic, true}}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/ResourceScriptStmt.cpp:220:57: destructor_uses_global_object: The destructor of global object "llvm::rc::VersionInfoResource::VersionInfoFixed::FixedFieldsInfoMap" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::rc::VersionInfoResource::VersionInfoFixed::FixedFieldsInfoMap" might be called after "fuzzer::TPC" has already been destroyed. +# 218| "FILEFLAGS", "FILEOS", "FILETYPE", "FILESUBTYPE"}; +# 219| +# 220|-> const StringMap VersionInfoFixed::FixedFieldsInfoMap = { +# 221| {FixedFieldsNames[FtFileVersion], FtFileVersion}, +# 222| {FixedFieldsNames[FtProductVersion], FtProductVersion}, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/llvm-rc.cpp:109:20: destructor_uses_global_object: The destructor of global object "::TempPreprocFile" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::TempPreprocFile" might be called after "fuzzer::TPC" has already been destroyed. +# 107| +# 108| static ExitOnError ExitOnErr; +# 109|-> static FileRemover TempPreprocFile; +# 110| static FileRemover TempResFile; +# 111| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/llvm-rc.cpp:110:20: destructor_uses_global_object: The destructor of global object "::TempResFile" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::TempResFile" might be called after "fuzzer::TPC" has already been destroyed. +# 108| static ExitOnError ExitOnErr; +# 109| static FileRemover TempPreprocFile; +# 110|-> static FileRemover TempResFile; +# 111| +# 112| [[noreturn]] static void fatalError(const Twine &Message) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-rc/llvm-rc.cpp:347:3: var_decl: Declaring variable "Opts". +llvm-project-19.0.0.src/llvm/tools/llvm-rc/llvm-rc.cpp:497:3: uninit_use: Using uninitialized value "Opts". Field "Opts.Params.NoInclude" is uninitialized. +# 495| Opts.BeVerbose = InputArgs.hasArg(WINDRES_verbose); +# 496| +# 497|-> return Opts; +# 498| } +# 499| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:5353:3: var_decl: Declaring variable "Properties". +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:5376:3: uninit_use: Using uninitialized value "Properties". Field "Properties.InlineElts" is uninitialized. +# 5374| Properties.push_back(""); +# 5375| +# 5376|-> return Properties; +# 5377| } +# 5378| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6475:3: var_decl: Declaring variable "SymbolIndexes". +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6496:13: uninit_use: Using uninitialized value "SymbolIndexes". Field "SymbolIndexes.InlineElts" is uninitialized. +# 6494| reportUniqueWarning("unable to get address of symbol '" + Name + +# 6495| "': " + toString(SymAddrOrErr.takeError())); +# 6496|-> return SymbolIndexes; +# 6497| } +# 6498| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6475:3: var_decl: Declaring variable "SymbolIndexes". +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6510:5: uninit_use: Using uninitialized value "SymbolIndexes". Field "SymbolIndexes.InlineElts" is uninitialized. +# 6508| auto Symbols = this->AddressToIndexMap->find(SymValue); +# 6509| if (Symbols == this->AddressToIndexMap->end()) +# 6510|-> return SymbolIndexes; +# 6511| +# 6512| for (uint32_t Index : Symbols->second) { +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6510:5: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6475:3: var_decl: Declaring variable "SymbolIndexes". +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6528:9: uninit_use: Using uninitialized value "SymbolIndexes". Field "SymbolIndexes.InlineElts" is uninitialized. +# 6526| reportUniqueWarning("unable to get section of symbol '" + Name + +# 6527| "': " + toString(SecOrErr.takeError())); +# 6528|-> return SymbolIndexes; +# 6529| } +# 6530| } +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6528:9: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6475:3: var_decl: Declaring variable "SymbolIndexes". +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6535:3: uninit_use: Using uninitialized value "SymbolIndexes". Field "SymbolIndexes.InlineElts" is uninitialized. +# 6533| } +# 6534| +# 6535|-> return SymbolIndexes; +# 6536| } +# 6537| +llvm-project-19.0.0.src/llvm/tools/llvm-readobj/ELFDumper.cpp:6535:3: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-readtapi/DiffEngine.cpp:287:3: var_decl: Declaring variable "Diff". +llvm-project-19.0.0.src/llvm/tools/llvm-readtapi/DiffEngine.cpp:293:3: uninit_use: Using uninitialized value "Diff". Field "Diff.Kind" is uninitialized. +# 291| Diff.Values.push_back(std::make_unique(RHS)); +# 292| } +# 293|-> return Diff; +# 294| } +# 295| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-stress/llvm-stress.cpp:438:7: var_decl: Declaring variable "RandomFloat". +llvm-project-19.0.0.src/llvm/tools/llvm-stress/llvm-stress.cpp:441:9: uninit_use_in_call: Using uninitialized value "RandomFloat.U" when calling "~APFloat". +# 439| +# 440| if (getRandom() & 1) +# 441|-> return PT->push_back(ConstantFP::getZero(Ty)); +# 442| return PT->push_back(ConstantFP::get(Ty->getContext(), RandomFloat)); +# 443| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-stress/llvm-stress.cpp:438:7: var_decl: Declaring variable "RandomFloat". +llvm-project-19.0.0.src/llvm/tools/llvm-stress/llvm-stress.cpp:442:7: uninit_use_in_call: Using uninitialized value "RandomFloat.U" when calling "get". +# 440| if (getRandom() & 1) +# 441| return PT->push_back(ConstantFP::getZero(Ty)); +# 442|-> return PT->push_back(ConstantFP::get(Ty->getContext(), RandomFloat)); +# 443| } +# 444| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-xray/xray-converter.cpp:190:3: var_decl: Declaring variable "Siblings". +llvm-project-19.0.0.src/llvm/tools/llvm-xray/xray-converter.cpp:201:5: uninit_use: Using uninitialized value "Siblings". Field "Siblings.InlineElts" is uninitialized. +# 199| } +# 200| } +# 201|-> return Siblings; +# 202| } +# 203| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-xray/xray-converter.cpp:190:3: var_decl: Declaring variable "Siblings". +llvm-project-19.0.0.src/llvm/tools/llvm-xray/xray-converter.cpp:209:3: uninit_use: Using uninitialized value "Siblings". Field "Siblings.InlineElts" is uninitialized. +# 207| Siblings.push_back(node_iter); +# 208| +# 209|-> return Siblings; +# 210| } +# 211| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/llvm-xray/xray-stacks.cpp:519:5: var_decl: Declaring variable "MergedByThreadRoots". +llvm-project-19.0.0.src/llvm/tools/llvm-xray/xray-stacks.cpp:536:5: uninit_use: Using uninitialized value "MergedByThreadRoots". Field "MergedByThreadRoots.InlineElts" is uninitialized. +# 534| } +# 535| } +# 536|-> return MergedByThreadRoots; +# 537| } +# 538| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:225:3: var_decl: Declaring variable "YAMLFD" without initializer. +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:231:3: uninit_use_in_call: Using uninitialized value "YAMLFD". Field "YAMLFD.unused" is uninitialized when calling "operator =". +# 229| YAMLFD.PointerToNextFunction = ObjFD->PointerToNextFunction; +# 230| +# 231|-> Sym->FunctionDefinition = YAMLFD; +# 232| } +# 233| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:237:3: var_decl: Declaring variable "YAMLAAS" without initializer. +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:241:3: uninit_use_in_call: Using uninitialized value "YAMLAAS". Field "YAMLAAS.unused1" is uninitialized when calling "operator =". +# 239| YAMLAAS.PointerToNextFunction = ObjBES->PointerToNextFunction; +# 240| +# 241|-> Sym->bfAndefSymbol = YAMLAAS; +# 242| } +# 243| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:246:3: var_decl: Declaring variable "YAMLWE" without initializer. +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:250:3: uninit_use_in_call: Using uninitialized value "YAMLWE". Field "YAMLWE.unused" is uninitialized when calling "operator =". +# 248| YAMLWE.Characteristics = ObjWE->Characteristics; +# 249| +# 250|-> Sym->WeakExternal = YAMLWE; +# 251| } +# 252| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:257:3: var_decl: Declaring variable "YAMLASD" without initializer. +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:266:3: uninit_use_in_call: Using uninitialized value "YAMLASD". Field "YAMLASD.unused" is uninitialized when calling "operator =". +# 264| YAMLASD.Selection = ObjSD->Selection; +# 265| +# 266|-> Sym->SectionDefinition = YAMLASD; +# 267| } +# 268| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:272:3: var_decl: Declaring variable "YAMLCLRToken" without initializer. +llvm-project-19.0.0.src/llvm/tools/obj2yaml/coff2yaml.cpp:276:3: uninit_use_in_call: Using uninitialized value "YAMLCLRToken". Field "YAMLCLRToken.unused1" is uninitialized when calling "operator =". +# 274| YAMLCLRToken.SymbolTableIndex = ObjCLRToken->SymbolTableIndex; +# 275| +# 276|-> Sym->CLRToken = YAMLCLRToken; +# 277| } +# 278| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/dwarf2yaml.cpp:42:11: var_decl: Declaring variable "AttAbrv" without initializer. +llvm-project-19.0.0.src/llvm/tools/obj2yaml/dwarf2yaml.cpp:47:11: uninit_use_in_call: Using uninitialized value "AttAbrv". Field "AttAbrv.Value" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 45| if (AttAbrv.Form == dwarf::DW_FORM_implicit_const) +# 46| AttAbrv.Value = Attribute.getImplicitConstValue(); +# 47|-> Abbrv.Attributes.push_back(AttAbrv); +# 48| } +# 49| Y.DebugAbbrev.back().Table.push_back(Abbrv); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/dxcontainer2yaml.cpp:20:3: var_decl: Declaring variable "YAML". +llvm-project-19.0.0.src/llvm/tools/obj2yaml/dxcontainer2yaml.cpp:26:3: uninit_use: Using uninitialized value "YAML". Field "YAML.Parameters.InlineElts" is uninitialized. +# 24| Param.SystemValue, Param.CompType, Param.Register, Param.Mask, +# 25| Param.ExclusiveMask, Param.MinPrecision}); +# 26|-> return YAML; +# 27| } +# 28| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/wasm2yaml.cpp:129:7: var_decl: Declaring variable "Info". +llvm-project-19.0.0.src/llvm/tools/obj2yaml/wasm2yaml.cpp:148:7: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 146| break; +# 147| } +# 148|-> LinkingSec->SymbolTable.emplace_back(Info); +# 149| } +# 150| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/obj2yaml/wasm2yaml.cpp:235:9: var_decl: Declaring variable "Im". +llvm-project-19.0.0.src/llvm/tools/obj2yaml/wasm2yaml.cpp:259:9: uninit_use_in_call: Using uninitialized value "Im". Field "Im" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 257| break; +# 258| } +# 259|-> ImportSec->Imports.push_back(Im); +# 260| } +# 261| S = std::move(ImportSec); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/tools/sancov/sancov.cpp:565:5: var_decl: Declaring variable "Point". +llvm-project-19.0.0.src/llvm/tools/sancov/sancov.cpp:586:5: uninit_use_in_call: Using uninitialized value "Point". Field "Point.Locs.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 584| } +# 585| +# 586|-> Result.push_back(Point); +# 587| } +# 588| +llvm-project-19.0.0.src/llvm/tools/sancov/sancov.cpp:586:5: note: trimmed 3 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:779:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.75f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:779:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 777| +# 778| // Simple exact fraction +# 779|-> Val = APFloat(0.75f); +# 780| CheckFloatToFixedConversion(Val, getSAccumSema(), 3ULL << 5); +# 781| CheckFloatToFixedConversion(Val, getAccumSema(), 3ULL << 13); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:802:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.75f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:802:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 800| +# 801| // Simple negative exact fraction +# 802|-> Val = APFloat(-0.75f); +# 803| CheckFloatToFixedConversion(Val, getSAccumSema(), -3ULL << 5); +# 804| CheckFloatToFixedConversion(Val, getAccumSema(), -3ULL << 13); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:825:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:825:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 823| +# 824| // Highly precise fraction +# 825|-> Val = APFloat(0.999999940395355224609375f); +# 826| CheckFloatToFixedConversion(Val, getSAccumSema(), 0x7FULL); +# 827| CheckFloatToFixedConversion(Val, getAccumSema(), 0x7FFFULL); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:848:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(17.9961f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:848:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 846| +# 847| // Integral and fraction +# 848|-> Val = APFloat(17.99609375f); +# 849| CheckFloatToFixedConversion(Val, getSAccumSema(), 0x11FFULL >> 1); +# 850| CheckFloatToFixedConversion(Val, getAccumSema(), 0x11FFULL << 7); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:871:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-17.9961f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:871:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 869| +# 870| // Negative integral and fraction +# 871|-> Val = APFloat(-17.99609375f); +# 872| CheckFloatToFixedConversion(Val, getSAccumSema(), -0x11FELL >> 1); +# 873| CheckFloatToFixedConversion(Val, getAccumSema(), -0x11FFULL << 7); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:894:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1e+38f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:894:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 892| +# 893| // Very large value +# 894|-> Val = APFloat(1.0e38f); +# 895| CheckFloatToFixedConversion(Val, getSAccumSema(), MaxSat); +# 896| CheckFloatToFixedConversion(Val, getAccumSema(), MaxSat); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:917:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1e-38f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:917:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 915| +# 916| // Very small value +# 917|-> Val = APFloat(1.0e-38f); +# 918| CheckFloatToFixedConversion(Val, getSAccumSema(), 0); +# 919| CheckFloatToFixedConversion(Val, getAccumSema(), 0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:940:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.999512f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:940:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 938| +# 939| // Half conversion +# 940|-> Val = APFloat(0.99951171875f); +# 941| bool Ignored; +# 942| Val.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &Ignored); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:965:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.124996)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:965:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 963| CheckFloatToFixedConversion(Val, getS32Pos2(), 0); +# 964| +# 965|-> Val = APFloat(0.124996185302734375); +# 966| CheckFloatToFixedConversion(Val, getU8Neg10(), 0x7f); +# 967| CheckFloatToFixedConversion(Val, getU8Pos4(), 0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:971:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.124996)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFixedPointTest.cpp:971:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 969| CheckFloatToFixedConversion(Val, getS32Pos2(), 0); +# 970| +# 971|-> Val = APFloat(-0.124996185302734375); +# 972| CheckFloatToFixedConversion(Val, getU8Neg10(), MinSat); +# 973| CheckFloatToFixedConversion(Val, getU8Pos4(), 0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:26:3: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:27:3: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromString". +# 25| static std::string convertToErrorFromString(StringRef Str) { +# 26| llvm::APFloat F(0.0); +# 27|-> auto StatusOrErr = +# 28| F.convertFromString(Str, llvm::APFloat::rmNearestTiesToEven); +# 29| EXPECT_TRUE(!StatusOrErr); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:34:3: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:35:3: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromString". +# 33| static double convertToDoubleFromString(StringRef Str) { +# 34| llvm::APFloat F(0.0); +# 35|-> auto StatusOrErr = +# 36| F.convertFromString(Str, llvm::APFloat::rmNearestTiesToEven); +# 37| EXPECT_FALSE(!StatusOrErr); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:45:3: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:46:3: uninit_use_in_call: Using uninitialized value "F.U" when calling "toString". +# 44| llvm::SmallVector Buffer; +# 45| llvm::APFloat F(d); +# 46|-> F.toString(Buffer, Prec, Pad, Tr); +# 47| return std::string(Buffer.data(), Buffer.size()); +# 48| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:483:5: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:486:5: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 484| APFloat f2(-14.5f); +# 485| APFloat f3(225.0f); +# 486|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); +# 487| EXPECT_EQ(14.75f, f1.convertToFloat()); +# 488| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:492:5: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:494:5: uninit_use_in_call: Using uninitialized value "f1.U" when calling "divide". +# 492| APFloat f1((float)1.17549435e-38F); +# 493| APFloat f2((float)1.17549435e-38F); +# 494|-> f1.divide(Val2, rdmd); +# 495| f2.divide(Val2, rdmd); +# 496| APFloat f3(12.0f); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:493:5: var_decl: Declaring variable "f2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:495:5: uninit_use_in_call: Using uninitialized value "f2.U" when calling "divide". +# 493| APFloat f2((float)1.17549435e-38F); +# 494| f1.divide(Val2, rdmd); +# 495|-> f2.divide(Val2, rdmd); +# 496| APFloat f3(12.0f); +# 497| f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:504:5: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:507:5: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 505| APFloat f2(-1.0); +# 506| APFloat f3(1.0); +# 507|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); +# 508| EXPECT_TRUE(!f1.isNegative() && f1.isZero()); +# 509| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:515:5: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:518:5: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 516| APFloat f2(-1.0); +# 517| APFloat f3(1.0); +# 518|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmTowardNegative); +# 519| EXPECT_TRUE(f1.isNegative() && f1.isZero()); +# 520| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:525:5: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:528:5: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 526| APFloat f2(-0.0); +# 527| APFloat f3(-0.0); +# 528|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); +# 529| EXPECT_TRUE(f1.isNegative() && f1.isZero()); +# 530| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:544:5: var_decl: Declaring variable "M2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:552:3: uninit_use_in_call: Using uninitialized value "M2.U" when calling "~APFloat". +# 550| EXPECT_FALSE(losesInfo); +# 551| EXPECT_EQ(4.0f, M1.convertToFloat()); +# 552|-> } +# 553| +# 554| // Regression test that failed an assertion. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:556:5: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:559:5: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 557| APFloat f2(2.0f); +# 558| APFloat f3(8.85242279E-41f); +# 559|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); +# 560| EXPECT_EQ(-8.85242279E-41f, f1.convertToFloat()); +# 561| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:573:3: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:577:3: uninit_use_in_call: Using uninitialized value "f1.U" when calling "minnum". +# 575| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 576| +# 577|-> EXPECT_EQ(1.0, minnum(f1, f2).convertToDouble()); +# 578| EXPECT_EQ(1.0, minnum(f2, f1).convertToDouble()); +# 579| EXPECT_EQ(1.0, minnum(f1, nan).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:574:3: var_decl: Declaring variable "f2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:577:3: uninit_use_in_call: Using uninitialized value "f2.U" when calling "minnum". +# 575| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 576| +# 577|-> EXPECT_EQ(1.0, minnum(f1, f2).convertToDouble()); +# 578| EXPECT_EQ(1.0, minnum(f2, f1).convertToDouble()); +# 579| EXPECT_EQ(1.0, minnum(f1, nan).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:583:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:584:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "minnum". +# 582| APFloat zp(0.0); +# 583| APFloat zn(-0.0); +# 584|-> EXPECT_EQ(-0.0, minnum(zp, zn).convertToDouble()); +# 585| EXPECT_EQ(-0.0, minnum(zn, zp).convertToDouble()); +# 586| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:582:3: var_decl: Declaring variable "zp". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:584:3: uninit_use_in_call: Using uninitialized value "zp.U" when calling "minnum". +# 582| APFloat zp(0.0); +# 583| APFloat zn(-0.0); +# 584|-> EXPECT_EQ(-0.0, minnum(zp, zn).convertToDouble()); +# 585| EXPECT_EQ(-0.0, minnum(zn, zp).convertToDouble()); +# 586| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:589:3: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:593:3: uninit_use_in_call: Using uninitialized value "f1.U" when calling "maxnum". +# 591| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 592| +# 593|-> EXPECT_EQ(2.0, maxnum(f1, f2).convertToDouble()); +# 594| EXPECT_EQ(2.0, maxnum(f2, f1).convertToDouble()); +# 595| EXPECT_EQ(1.0, maxnum(f1, nan).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:590:3: var_decl: Declaring variable "f2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:593:3: uninit_use_in_call: Using uninitialized value "f2.U" when calling "maxnum". +# 591| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 592| +# 593|-> EXPECT_EQ(2.0, maxnum(f1, f2).convertToDouble()); +# 594| EXPECT_EQ(2.0, maxnum(f2, f1).convertToDouble()); +# 595| EXPECT_EQ(1.0, maxnum(f1, nan).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:599:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:600:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "maxnum". +# 598| APFloat zp(0.0); +# 599| APFloat zn(-0.0); +# 600|-> EXPECT_EQ(0.0, maxnum(zp, zn).convertToDouble()); +# 601| EXPECT_EQ(0.0, maxnum(zn, zp).convertToDouble()); +# 602| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:598:3: var_decl: Declaring variable "zp". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:600:3: uninit_use_in_call: Using uninitialized value "zp.U" when calling "maxnum". +# 598| APFloat zp(0.0); +# 599| APFloat zn(-0.0); +# 600|-> EXPECT_EQ(0.0, maxnum(zp, zn).convertToDouble()); +# 601| EXPECT_EQ(0.0, maxnum(zn, zp).convertToDouble()); +# 602| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:605:3: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:611:3: uninit_use_in_call: Using uninitialized value "f1.U" when calling "minimum". +# 609| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 610| +# 611|-> EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 612| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 613| EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:606:3: var_decl: Declaring variable "f2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:611:3: uninit_use_in_call: Using uninitialized value "f2.U" when calling "minimum". +# 609| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 610| +# 611|-> EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 612| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 613| EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:606:3: var_decl: Declaring variable "f2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:612:3: uninit_use_in_call: Using uninitialized value "f2.U" when calling "minimum". +# 610| +# 611| EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 612|-> EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 613| EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); +# 614| EXPECT_EQ(-0.0, minimum(zn, zp).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:608:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:613:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "minimum". +# 611| EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 612| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 613|-> EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); +# 614| EXPECT_EQ(-0.0, minimum(zn, zp).convertToDouble()); +# 615| EXPECT_TRUE(std::isnan(minimum(f1, nan).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:607:3: var_decl: Declaring variable "zp". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:613:3: uninit_use_in_call: Using uninitialized value "zp.U" when calling "minimum". +# 611| EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 612| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 613|-> EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); +# 614| EXPECT_EQ(-0.0, minimum(zn, zp).convertToDouble()); +# 615| EXPECT_TRUE(std::isnan(minimum(f1, nan).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:608:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:614:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "minimum". +# 612| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 613| EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); +# 614|-> EXPECT_EQ(-0.0, minimum(zn, zp).convertToDouble()); +# 615| EXPECT_TRUE(std::isnan(minimum(f1, nan).convertToDouble())); +# 616| EXPECT_TRUE(std::isnan(minimum(nan, f1).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:620:3: var_decl: Declaring variable "f1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:626:3: uninit_use_in_call: Using uninitialized value "f1.U" when calling "maximum". +# 624| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 625| +# 626|-> EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 627| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 628| EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:621:3: var_decl: Declaring variable "f2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:626:3: uninit_use_in_call: Using uninitialized value "f2.U" when calling "maximum". +# 624| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 625| +# 626|-> EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 627| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 628| EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:621:3: var_decl: Declaring variable "f2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:627:3: uninit_use_in_call: Using uninitialized value "f2.U" when calling "maximum". +# 625| +# 626| EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 627|-> EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 628| EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); +# 629| EXPECT_EQ(0.0, maximum(zn, zp).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:623:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:628:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "maximum". +# 626| EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 627| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 628|-> EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); +# 629| EXPECT_EQ(0.0, maximum(zn, zp).convertToDouble()); +# 630| EXPECT_TRUE(std::isnan(maximum(f1, nan).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:622:3: var_decl: Declaring variable "zp". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:628:3: uninit_use_in_call: Using uninitialized value "zp.U" when calling "maximum". +# 626| EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 627| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 628|-> EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); +# 629| EXPECT_EQ(0.0, maximum(zn, zp).convertToDouble()); +# 630| EXPECT_TRUE(std::isnan(maximum(f1, nan).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:623:3: var_decl: Declaring variable "zn". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:629:3: uninit_use_in_call: Using uninitialized value "zn.U" when calling "maximum". +# 627| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 628| EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); +# 629|-> EXPECT_EQ(0.0, maximum(zn, zp).convertToDouble()); +# 630| EXPECT_TRUE(std::isnan(maximum(f1, nan).convertToDouble())); +# 631| EXPECT_TRUE(std::isnan(maximum(nan, f1).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:641:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), 0UL)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:641:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 639| const char *MinNormalStr = "1.17549435082228750797e-38"; +# 640| EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), MinNormalStr).isDenormal()); +# 641|-> EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), 0).isDenormal()); +# 642| +# 643| APFloat Val2(APFloat::IEEEsingle(), 2); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:662:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), 0UL)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:662:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 660| const char *MinNormalStr = "2.22507385850720138309e-308"; +# 661| EXPECT_FALSE(APFloat(APFloat::IEEEdouble(), MinNormalStr).isDenormal()); +# 662|-> EXPECT_FALSE(APFloat(APFloat::IEEEdouble(), 0).isDenormal()); +# 663| +# 664| APFloat Val2(APFloat::IEEEdouble(), 2); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:675:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), 0UL)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:675:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 673| const char *MinNormalStr = "3.36210314311209350626e-4932"; +# 674| EXPECT_FALSE(APFloat(APFloat::x87DoubleExtended(), MinNormalStr).isDenormal()); +# 675|-> EXPECT_FALSE(APFloat(APFloat::x87DoubleExtended(), 0).isDenormal()); +# 676| +# 677| APFloat Val2(APFloat::x87DoubleExtended(), 2); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:688:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), 0UL)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:688:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 686| const char *MinNormalStr = "3.36210314311209350626267781732175260e-4932"; +# 687| EXPECT_FALSE(APFloat(APFloat::IEEEquad(), MinNormalStr).isDenormal()); +# 688|-> EXPECT_FALSE(APFloat(APFloat::IEEEquad(), 0).isDenormal()); +# 689| +# 690| APFloat Val2(APFloat::IEEEquad(), 2); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:701:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::FloatTF32(), 0UL)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:701:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 699| const char *MinNormalStr = "1.17549435082228750797e-38"; +# 700| EXPECT_FALSE(APFloat(APFloat::FloatTF32(), MinNormalStr).isDenormal()); +# 701|-> EXPECT_FALSE(APFloat(APFloat::FloatTF32(), 0).isDenormal()); +# 702| +# 703| APFloat Val2(APFloat::FloatTF32(), 2); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:772:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:772:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 770| +# 771| TEST(APFloatTest, Zero) { +# 772|-> EXPECT_EQ(0.0f, APFloat(0.0f).convertToFloat()); +# 773| EXPECT_EQ(-0.0f, APFloat(-0.0f).convertToFloat()); +# 774| EXPECT_TRUE(APFloat(-0.0f).isNegative()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:773:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:773:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 771| TEST(APFloatTest, Zero) { +# 772| EXPECT_EQ(0.0f, APFloat(0.0f).convertToFloat()); +# 773|-> EXPECT_EQ(-0.0f, APFloat(-0.0f).convertToFloat()); +# 774| EXPECT_TRUE(APFloat(-0.0f).isNegative()); +# 775| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:774:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:774:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 772| EXPECT_EQ(0.0f, APFloat(0.0f).convertToFloat()); +# 773| EXPECT_EQ(-0.0f, APFloat(-0.0f).convertToFloat()); +# 774|-> EXPECT_TRUE(APFloat(-0.0f).isNegative()); +# 775| +# 776| EXPECT_EQ(0.0, APFloat(0.0).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:776:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:776:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 774| EXPECT_TRUE(APFloat(-0.0f).isNegative()); +# 775| +# 776|-> EXPECT_EQ(0.0, APFloat(0.0).convertToDouble()); +# 777| EXPECT_EQ(-0.0, APFloat(-0.0).convertToDouble()); +# 778| EXPECT_TRUE(APFloat(-0.0).isNegative()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:777:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:777:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 775| +# 776| EXPECT_EQ(0.0, APFloat(0.0).convertToDouble()); +# 777|-> EXPECT_EQ(-0.0, APFloat(-0.0).convertToDouble()); +# 778| EXPECT_TRUE(APFloat(-0.0).isNegative()); +# 779| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:778:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:778:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 776| EXPECT_EQ(0.0, APFloat(0.0).convertToDouble()); +# 777| EXPECT_EQ(-0.0, APFloat(-0.0).convertToDouble()); +# 778|-> EXPECT_TRUE(APFloat(-0.0).isNegative()); +# 779| +# 780| EXPECT_EQ(fcPosZero, APFloat(0.0).classify()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:780:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:780:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 778| EXPECT_TRUE(APFloat(-0.0).isNegative()); +# 779| +# 780|-> EXPECT_EQ(fcPosZero, APFloat(0.0).classify()); +# 781| EXPECT_EQ(fcNegZero, APFloat(-0.0).classify()); +# 782| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:781:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:781:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 779| +# 780| EXPECT_EQ(fcPosZero, APFloat(0.0).classify()); +# 781|-> EXPECT_EQ(fcNegZero, APFloat(-0.0).classify()); +# 782| } +# 783| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1111:13: var_decl: Declaring variable "F". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1112:13: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromString". +# 1110| +# 1111| APFloat F(Sem); +# 1112|-> bool HasError = !F.convertFromString( +# 1113| TestStr, llvm::APFloat::rmNearestTiesToEven); +# 1114| EXPECT_FALSE(HasError); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1279:5: var_decl: Declaring variable "UnnormalZero". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1280:5: uninit_use_in_call: Using uninitialized value "UnnormalZero.U" when calling "toString". +# 1278| SmallString<64> Str; +# 1279| APFloat UnnormalZero(APFloat::x87DoubleExtended(), APInt(80, {0, 1})); +# 1280|-> UnnormalZero.toString(Str); +# 1281| ASSERT_EQ("NaN", Str); +# 1282| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1581:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1581:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1579| +# 1580| // Trivial operation. +# 1581|-> EXPECT_TRUE(APFloat(2.0).getExactInverse(&inv)); +# 1582| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5))); +# 1583| EXPECT_TRUE(APFloat(2.0f).getExactInverse(&inv)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1582:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.5)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1582:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1580| // Trivial operation. +# 1581| EXPECT_TRUE(APFloat(2.0).getExactInverse(&inv)); +# 1582|-> EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5))); +# 1583| EXPECT_TRUE(APFloat(2.0f).getExactInverse(&inv)); +# 1584| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5f))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1583:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1583:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1581| EXPECT_TRUE(APFloat(2.0).getExactInverse(&inv)); +# 1582| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5))); +# 1583|-> EXPECT_TRUE(APFloat(2.0f).getExactInverse(&inv)); +# 1584| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5f))); +# 1585| EXPECT_TRUE(APFloat(APFloat::IEEEquad(), "2.0").getExactInverse(&inv)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1584:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.5f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1584:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1582| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5))); +# 1583| EXPECT_TRUE(APFloat(2.0f).getExactInverse(&inv)); +# 1584|-> EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5f))); +# 1585| EXPECT_TRUE(APFloat(APFloat::IEEEquad(), "2.0").getExactInverse(&inv)); +# 1586| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(APFloat::IEEEquad(), "0.5"))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1593:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.17549e-38f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1593:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1591| +# 1592| // FLT_MIN +# 1593|-> EXPECT_TRUE(APFloat(1.17549435e-38f).getExactInverse(&inv)); +# 1594| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(8.5070592e+37f))); +# 1595| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1594:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(8.50706e+37f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1594:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1592| // FLT_MIN +# 1593| EXPECT_TRUE(APFloat(1.17549435e-38f).getExactInverse(&inv)); +# 1594|-> EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(8.5070592e+37f))); +# 1595| +# 1596| // Large float, inverse is a denormal. + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1597:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.70141e+38f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1597:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1595| +# 1596| // Large float, inverse is a denormal. +# 1597|-> EXPECT_FALSE(APFloat(1.7014118e38f).getExactInverse(nullptr)); +# 1598| // Zero +# 1599| EXPECT_FALSE(APFloat(0.0).getExactInverse(nullptr)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1599:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1599:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1597| EXPECT_FALSE(APFloat(1.7014118e38f).getExactInverse(nullptr)); +# 1598| // Zero +# 1599|-> EXPECT_FALSE(APFloat(0.0).getExactInverse(nullptr)); +# 1600| // Denormalized float +# 1601| EXPECT_FALSE(APFloat(1.40129846e-45f).getExactInverse(nullptr)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1601:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.4013e-45f)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1601:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1599| EXPECT_FALSE(APFloat(0.0).getExactInverse(nullptr)); +# 1600| // Denormalized float +# 1601|-> EXPECT_FALSE(APFloat(1.40129846e-45f).getExactInverse(nullptr)); +# 1602| } +# 1603| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1605:3: var_decl: Declaring variable "T". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1607:3: uninit_use_in_call: Using uninitialized value "T.U" when calling "operator =". +# 1605| APFloat T(-0.5), S(3.14), R(APFloat::getLargest(APFloat::IEEEdouble())), P(0.0); +# 1606| +# 1607|-> P = T; +# 1608| P.roundToIntegral(APFloat::rmTowardZero); +# 1609| EXPECT_EQ(-0.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1605:3: var_decl: Declaring variable "S". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1620:3: uninit_use_in_call: Using uninitialized value "S.U" when calling "operator =". +# 1618| EXPECT_EQ(-0.0, P.convertToDouble()); +# 1619| +# 1620|-> P = S; +# 1621| P.roundToIntegral(APFloat::rmTowardZero); +# 1622| EXPECT_EQ(3.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1726:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1e-100.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1726:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1724| EXPECT_EQ(APFloat::opOK, St); +# 1725| +# 1726|-> P = APFloat(1E-100); +# 1727| St = P.roundToIntegral(APFloat::rmTowardNegative); +# 1728| EXPECT_TRUE(P.isZero()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1732:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1e-100.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1732:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1730| EXPECT_EQ(APFloat::opInexact, St); +# 1731| +# 1732|-> P = APFloat(1E-100); +# 1733| St = P.roundToIntegral(APFloat::rmTowardPositive); +# 1734| EXPECT_EQ(1.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1738:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1e-100.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1738:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1736| EXPECT_EQ(APFloat::opInexact, St); +# 1737| +# 1738|-> P = APFloat(-1E-100); +# 1739| St = P.roundToIntegral(APFloat::rmTowardNegative); +# 1740| EXPECT_TRUE(P.isNegative()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1744:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1e-100.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1744:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1742| EXPECT_EQ(APFloat::opInexact, St); +# 1743| +# 1744|-> P = APFloat(-1E-100); +# 1745| St = P.roundToIntegral(APFloat::rmTowardPositive); +# 1746| EXPECT_TRUE(P.isZero()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1750:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1750:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1748| EXPECT_EQ(APFloat::opInexact, St); +# 1749| +# 1750|-> P = APFloat(10.0); +# 1751| St = P.roundToIntegral(APFloat::rmTowardZero); +# 1752| EXPECT_EQ(10.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1755:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1755:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1753| EXPECT_EQ(APFloat::opOK, St); +# 1754| +# 1755|-> P = APFloat(10.5); +# 1756| St = P.roundToIntegral(APFloat::rmTowardZero); +# 1757| EXPECT_EQ(10.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1760:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1760:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1758| EXPECT_EQ(APFloat::opInexact, St); +# 1759| +# 1760|-> P = APFloat(10.5); +# 1761| St = P.roundToIntegral(APFloat::rmTowardPositive); +# 1762| EXPECT_EQ(11.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1765:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1765:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1763| EXPECT_EQ(APFloat::opInexact, St); +# 1764| +# 1765|-> P = APFloat(10.5); +# 1766| St = P.roundToIntegral(APFloat::rmTowardNegative); +# 1767| EXPECT_EQ(10.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1770:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1770:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1768| EXPECT_EQ(APFloat::opInexact, St); +# 1769| +# 1770|-> P = APFloat(10.5); +# 1771| St = P.roundToIntegral(APFloat::rmNearestTiesToAway); +# 1772| EXPECT_EQ(11.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1775:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1775:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1773| EXPECT_EQ(APFloat::opInexact, St); +# 1774| +# 1775|-> P = APFloat(10.5); +# 1776| St = P.roundToIntegral(APFloat::rmNearestTiesToEven); +# 1777| EXPECT_EQ(10.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1782:3: var_decl: Declaring variable "T". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1783:3: uninit_use_in_call: Using uninitialized value "T.U" when calling "isInteger". +# 1781| TEST(APFloatTest, isInteger) { +# 1782| APFloat T(-0.0); +# 1783|-> EXPECT_TRUE(T.isInteger()); +# 1784| T = APFloat(3.14159); +# 1785| EXPECT_FALSE(T.isInteger()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1784:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(3.14159)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:1784:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1782| APFloat T(-0.0); +# 1783| EXPECT_TRUE(T.isInteger()); +# 1784|-> T = APFloat(3.14159); +# 1785| EXPECT_FALSE(T.isInteger()); +# 1786| T = APFloat::getNaN(APFloat::IEEEdouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2021:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2021:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2019| +# 2020| TEST(APFloatTest, copySign) { +# 2021|-> EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( +# 2022| APFloat::copySign(APFloat(42.0), APFloat(-1.0)))); +# 2023| EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2023:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-42.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2023:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2021| EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( +# 2022| APFloat::copySign(APFloat(42.0), APFloat(-1.0)))); +# 2023|-> EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( +# 2024| APFloat::copySign(APFloat(-42.0), APFloat(1.0)))); +# 2025| EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2025:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2025:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2023| EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( +# 2024| APFloat::copySign(APFloat(-42.0), APFloat(1.0)))); +# 2025|-> EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( +# 2026| APFloat::copySign(APFloat(-42.0), APFloat(-1.0)))); +# 2027| EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2027:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2027:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2025| EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( +# 2026| APFloat::copySign(APFloat(-42.0), APFloat(-1.0)))); +# 2027|-> EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( +# 2028| APFloat::copySign(APFloat(42.0), APFloat(1.0)))); +# 2029| // For floating-point formats with unsigned 0, copySign() to a zero is a noop + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2033:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2033:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2031| {APFloat::S_Float8E4M3FNUZ, APFloat::S_Float8E4M3B11FNUZ}) { +# 2032| const llvm::fltSemantics &Sem = APFloat::EnumToSemantics(S); +# 2033|-> EXPECT_TRUE(APFloat::getZero(Sem).bitwiseIsEqual( +# 2034| APFloat::copySign(APFloat::getZero(Sem), APFloat(-1.0)))); +# 2035| EXPECT_TRUE(APFloat::getNaN(Sem, true).bitwiseIsEqual( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2035:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:2035:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2033| EXPECT_TRUE(APFloat::getZero(Sem).bitwiseIsEqual( +# 2034| APFloat::copySign(APFloat::getZero(Sem), APFloat(-1.0)))); +# 2035|-> EXPECT_TRUE(APFloat::getNaN(Sem, true).bitwiseIsEqual( +# 2036| APFloat::copySign(APFloat::getNaN(Sem, true), APFloat(1.0)))); +# 2037| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:3785:3: var_decl: Declaring variable "One". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:3833:3: uninit_use_in_call: Using uninitialized value "One.U" when calling "frexp". +# 3831| +# 3832| +# 3833|-> Frac = frexp(One, Exp, RM); +# 3834| EXPECT_EQ(1, Exp); +# 3835| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p-1").bitwiseIsEqual(Frac)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:3786:3: var_decl: Declaring variable "MOne". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:3837:3: uninit_use_in_call: Using uninitialized value "MOne.U" when calling "frexp". +# 3835| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p-1").bitwiseIsEqual(Frac)); +# 3836| +# 3837|-> Frac = frexp(MOne, Exp, RM); +# 3838| EXPECT_EQ(1, Exp); +# 3839| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-0x1p-1").bitwiseIsEqual(Frac)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:3788:3: var_decl: Declaring variable "MTwo". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:3904:1: uninit_use_in_call: Using uninitialized value "MTwo.U" when calling "~APFloat". +# 3902| EXPECT_EQ(52, Exp); +# 3903| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp-1").bitwiseIsEqual(Frac)); +# 3904|-> } +# 3905| +# 3906| TEST(APFloatTest, mod) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:3787:3: var_decl: Declaring variable "Two". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:3904:1: uninit_use_in_call: Using uninitialized value "Two.U" when calling "~APFloat". +# 3902| EXPECT_EQ(52, Exp); +# 3903| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp-1").bitwiseIsEqual(Frac)); +# 3904|-> } +# 3905| +# 3906| TEST(APFloatTest, mod) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4466:7: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4468:7: uninit_use_in_call: Using uninitialized value "A1.U" when calling "add". +# 4466| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4467| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4468|-> A1.add(A2, RM); +# 4469| +# 4470| EXPECT_EQ(Expected, A1.getCategory()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4477:7: var_decl: Declaring variable "A2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4478:7: uninit_use_in_call: Using uninitialized value "A2.U" when calling "add". +# 4476| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4477| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4478|-> A2.add(A1, RM); +# 4479| +# 4480| EXPECT_EQ(Expected, A2.getCategory()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4530:7: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4532:7: uninit_use_in_call: Using uninitialized value "A1.U" when calling "add". +# 4530| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4531| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4532|-> A1.add(A2, RM); +# 4533| +# 4534| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4545:7: var_decl: Declaring variable "A2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4546:7: uninit_use_in_call: Using uninitialized value "A2.U" when calling "add". +# 4544| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4545| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4546|-> A2.add(A1, RM); +# 4547| +# 4548| EXPECT_EQ(Expected[0], A2.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4579:5: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4581:5: uninit_use_in_call: Using uninitialized value "A1.U" when calling "subtract". +# 4579| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4580| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4581|-> A1.subtract(A2, RM); +# 4582| +# 4583| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4634:7: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4636:7: uninit_use_in_call: Using uninitialized value "A1.U" when calling "multiply". +# 4634| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4635| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4636|-> A1.multiply(A2, RM); +# 4637| +# 4638| EXPECT_EQ(Expected, A1.getCategory()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4645:7: var_decl: Declaring variable "A2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4646:7: uninit_use_in_call: Using uninitialized value "A2.U" when calling "multiply". +# 4644| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4645| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4646|-> A2.multiply(A1, RM); +# 4647| +# 4648| EXPECT_EQ(Expected, A2.getCategory()) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4707:7: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4709:7: uninit_use_in_call: Using uninitialized value "A1.U" when calling "multiply". +# 4707| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4708| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4709|-> A1.multiply(A2, RM); +# 4710| +# 4711| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4722:7: var_decl: Declaring variable "A2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4723:7: uninit_use_in_call: Using uninitialized value "A2.U" when calling "multiply". +# 4721| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4722| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4723|-> A2.multiply(A1, RM); +# 4724| +# 4725| EXPECT_EQ(Expected[0], A2.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4754:5: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4756:5: uninit_use_in_call: Using uninitialized value "A1.U" when calling "divide". +# 4754| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4755| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4756|-> A1.divide(A2, RM); +# 4757| +# 4758| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4787:5: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4789:5: uninit_use_in_call: Using uninitialized value "A1.U" when calling "remainder". +# 4787| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4788| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4789|-> A1.remainder(A2); +# 4790| +# 4791| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4822:5: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4824:5: uninit_use_in_call: Using uninitialized value "A1.U" when calling "mod". +# 4822| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4823| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4824|-> A1.mod(A2); +# 4825| +# 4826| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4895:5: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4897:5: uninit_use_in_call: Using uninitialized value "A1.U" when calling "compare". +# 4895| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4896| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4897|-> EXPECT_EQ(Expected, A1.compare(A2)) +# 4898| << formatv("compare(({0:x} + {1:x}), ({2:x} + {3:x}))", Op1[0], Op1[1], +# 4899| Op2[0], Op2[1]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4927:5: var_decl: Declaring variable "A1". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4929:5: uninit_use_in_call: Using uninitialized value "A1.U" when calling "bitwiseIsEqual". +# 4927| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4928| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4929|-> EXPECT_EQ(Expected, A1.bitwiseIsEqual(A2)) +# 4930| << formatv("({0:x} + {1:x}) = ({2:x} + {3:x})", Op1[0], Op1[1], Op2[0], +# 4931| Op2[1]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4928:5: var_decl: Declaring variable "A2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4929:5: uninit_use_in_call: Using uninitialized value "A2.U" when calling "bitwiseIsEqual". +# 4927| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4928| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4929|-> EXPECT_EQ(Expected, A1.bitwiseIsEqual(A2)) +# 4930| << formatv("({0:x} + {1:x}) = ({2:x} + {3:x})", Op1[0], Op1[1], Op2[0], +# 4931| Op2[1]) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4940:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, 2U, Data1))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4940:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4938| uint64_t Data2[] = {0x3ff0000000000001ull, 0}; +# 4939| // The hash values are *hopefully* different. +# 4940|-> EXPECT_NE( +# 4941| hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data1))), +# 4942| hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data2)))); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4949:3: var_decl: Declaring variable "Float". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:4951:5: uninit_use_in_call: Using uninitialized value "Float.U" when calling "APFloat". +# 4949| APFloat Float(APFloat::PPCDoubleDouble(), APInt(128, 2, Data)); +# 4950| { +# 4951|-> APFloat Actual = +# 4952| APFloat::copySign(Float, APFloat(APFloat::IEEEdouble(), "1")); +# 4953| EXPECT_EQ(0x400f000000000000ull, Actual.bitcastToAPInt().getRawData()[0]); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5039:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, 2U, Data))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5039:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5037| 0x4010000000000000ull, 0x4008000000000000ull, +# 5038| }; +# 5039|-> EXPECT_TRUE( +# 5040| APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data)).isDenormal()); +# 5041| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5049:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, 2U, Input))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5049:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5047| 0x4008000000000000ull, 0x3cb8000000000000ull, +# 5048| }; +# 5049|-> APFloat Result = +# 5050| scalbn(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Input)), 1, +# 5051| APFloat::rmNearestTiesToEven); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5064:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, 2U, Input))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5064:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5062| int Exp; +# 5063| // 0.75 + 0.75 << 53 +# 5064|-> APFloat Result = +# 5065| frexp(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Input)), Exp, +# 5066| APFloat::rmNearestTiesToEven); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5093:9: var_decl: Declaring variable "x". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5097:9: uninit_use_in_call: Using uninitialized value "x.U" when calling "APFloat". +# 5095| +# 5096| bool losesInfo; +# 5097|-> APFloat x16 = x; +# 5098| x16.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, +# 5099| &losesInfo); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5094:9: var_decl: Declaring variable "y". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5101:9: uninit_use_in_call: Using uninitialized value "y.U" when calling "APFloat". +# 5099| &losesInfo); +# 5100| EXPECT_FALSE(losesInfo); +# 5101|-> APFloat y16 = y; +# 5102| y16.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, +# 5103| &losesInfo); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5378:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i, false))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5378:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5376| // nextUp on positive numbers +# 5377| for (int i = 0; i < 127; i++) { +# 5378|-> test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5379| expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i + 1)); +# 5380| EXPECT_EQ(test.next(false), APFloat::opOK); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5379:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i + 1, false))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5379:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5377| for (int i = 0; i < 127; i++) { +# 5378| test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5379|-> expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i + 1)); +# 5380| EXPECT_EQ(test.next(false), APFloat::opOK); +# 5381| EXPECT_TRUE(test.bitwiseIsEqual(expected)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5392:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i, false))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5392:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5390| // nextUp on negative nonzero numbers +# 5391| for (int i = 129; i < 255; i++) { +# 5392|-> test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5393| expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i - 1)); +# 5394| EXPECT_EQ(test.next(false), APFloat::opOK); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5393:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i - 1, false))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5393:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5391| for (int i = 129; i < 255; i++) { +# 5392| test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5393|-> expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i - 1)); +# 5394| EXPECT_EQ(test.next(false), APFloat::opOK); +# 5395| EXPECT_TRUE(test.bitwiseIsEqual(expected)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5406:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i, false))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5406:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5404| // nextDown on positive nonzero finite numbers +# 5405| for (int i = 1; i < 127; i++) { +# 5406|-> test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5407| expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i - 1)); +# 5408| EXPECT_EQ(test.next(true), APFloat::opOK); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5407:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i - 1, false))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5407:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5405| for (int i = 1; i < 127; i++) { +# 5406| test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5407|-> expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i - 1)); +# 5408| EXPECT_EQ(test.next(true), APFloat::opOK); +# 5409| EXPECT_TRUE(test.bitwiseIsEqual(expected)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5420:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i, false))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5420:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5418| // nextDown on negative finite numbers +# 5419| for (int i = 128; i < 255; i++) { +# 5420|-> test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5421| expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i + 1)); +# 5422| EXPECT_EQ(test.next(true), APFloat::opOK); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5421:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i + 1, false))". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5421:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5419| for (int i = 128; i < 255; i++) { +# 5420| test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5421|-> expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i + 1)); +# 5422| EXPECT_EQ(test.next(true), APFloat::opOK); +# 5423| EXPECT_TRUE(test.bitwiseIsEqual(expected)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5436:5: var_decl: Declaring variable "test". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5441:7: uninit_use_in_call: Using uninitialized value "test.U" when calling "isLargest". +# 5439| // isLargest +# 5440| if (i == 126 || i == 254) { +# 5441|-> EXPECT_TRUE(test.isLargest()); +# 5442| EXPECT_EQ(abs(test).convertToDouble(), 448.); +# 5443| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5436:5: var_decl: Declaring variable "test". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5444:7: uninit_use_in_call: Using uninitialized value "test.U" when calling "isLargest". +# 5442| EXPECT_EQ(abs(test).convertToDouble(), 448.); +# 5443| } else { +# 5444|-> EXPECT_FALSE(test.isLargest()); +# 5445| } +# 5446| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5686:7: var_decl: Declaring variable "test". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5690:9: uninit_use_in_call: Using uninitialized value "test.U" when calling "isLargest". +# 5688| // isLargest +# 5689| if (i == 127 || i == 255) { +# 5690|-> EXPECT_TRUE(test.isLargest()); +# 5691| EXPECT_EQ(abs(test).convertToDouble(), testInfo.largest); +# 5692| } else { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5686:7: var_decl: Declaring variable "test". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5693:9: uninit_use_in_call: Using uninitialized value "test.U" when calling "isLargest". +# 5691| EXPECT_EQ(abs(test).convertToDouble(), testInfo.largest); +# 5692| } else { +# 5693|-> EXPECT_FALSE(test.isLargest()); +# 5694| } +# 5695| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5983:7: var_decl: Declaring variable "test". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:5985:7: uninit_use_in_call: Using uninitialized value "test.U" when calling "toString". +# 5983| APFloat test(APFloat::EnumToSemantics(S), APInt(8, i)); +# 5984| llvm::SmallString<128> str; +# 5985|-> test.toString(str); +# 5986| +# 5987| if (test.isNaN()) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6006:7: var_decl: Declaring variable "test". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6007:7: uninit_use_in_call: Using uninitialized value "test.U" when calling "bitcastToAPInt". +# 6005| APInt bits_in = APInt(8, i); +# 6006| APFloat test(APFloat::EnumToSemantics(S), bits_in); +# 6007|-> APInt bits_out = test.bitcastToAPInt(); +# 6008| EXPECT_EQ(bits_in, bits_out); +# 6009| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6026:9: var_decl: Declaring variable "test2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6028:11: uninit_use_in_call: Using uninitialized value "test2.U" when calling "isNaN". +# 6026| APFloat test2 = APFloat(Sem, bits); +# 6027| if (test.isNaN()) { +# 6028|-> EXPECT_TRUE(test2.isNaN()); +# 6029| } else { +# 6030| EXPECT_TRUE(test.bitwiseIsEqual(test2)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6026:9: var_decl: Declaring variable "test2". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6030:11: uninit_use_in_call: Using uninitialized value "test2.U" when calling "bitwiseIsEqual". +# 6028| EXPECT_TRUE(test2.isNaN()); +# 6029| } else { +# 6030|-> EXPECT_TRUE(test.bitwiseIsEqual(test2)); +# 6031| } +# 6032| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6038:3: var_decl: Declaring variable "DPosZero". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6039:3: uninit_use_in_call: Using uninitialized value "DPosZero.U" when calling "convertToDouble". +# 6037| TEST(APFloatTest, IEEEdoubleToDouble) { +# 6038| APFloat DPosZero(0.0); +# 6039|-> APFloat DPosZeroToDouble(DPosZero.convertToDouble()); +# 6040| EXPECT_TRUE(DPosZeroToDouble.isPosZero()); +# 6041| APFloat DNegZero(-0.0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6039:3: var_decl: Declaring variable "DPosZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6040:3: uninit_use_in_call: Using uninitialized value "DPosZeroToDouble.U" when calling "isPosZero". +# 6038| APFloat DPosZero(0.0); +# 6039| APFloat DPosZeroToDouble(DPosZero.convertToDouble()); +# 6040|-> EXPECT_TRUE(DPosZeroToDouble.isPosZero()); +# 6041| APFloat DNegZero(-0.0); +# 6042| APFloat DNegZeroToDouble(DNegZero.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6041:3: var_decl: Declaring variable "DNegZero". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6042:3: uninit_use_in_call: Using uninitialized value "DNegZero.U" when calling "convertToDouble". +# 6040| EXPECT_TRUE(DPosZeroToDouble.isPosZero()); +# 6041| APFloat DNegZero(-0.0); +# 6042|-> APFloat DNegZeroToDouble(DNegZero.convertToDouble()); +# 6043| EXPECT_TRUE(DNegZeroToDouble.isNegZero()); +# 6044| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6042:3: var_decl: Declaring variable "DNegZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6043:3: uninit_use_in_call: Using uninitialized value "DNegZeroToDouble.U" when calling "isNegZero". +# 6041| APFloat DNegZero(-0.0); +# 6042| APFloat DNegZeroToDouble(DNegZero.convertToDouble()); +# 6043|-> EXPECT_TRUE(DNegZeroToDouble.isNegZero()); +# 6044| +# 6045| APFloat DOne(1.0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6045:3: var_decl: Declaring variable "DOne". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6046:3: uninit_use_in_call: Using uninitialized value "DOne.U" when calling "convertToDouble". +# 6044| +# 6045| APFloat DOne(1.0); +# 6046|-> EXPECT_EQ(1.0, DOne.convertToDouble()); +# 6047| APFloat DPosLargest = APFloat::getLargest(APFloat::IEEEdouble(), false); +# 6048| EXPECT_EQ(std::numeric_limits::max(), DPosLargest.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6076:3: var_decl: Declaring variable "FPosZero". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6077:3: uninit_use_in_call: Using uninitialized value "FPosZero.U" when calling "convertToDouble". +# 6075| TEST(APFloatTest, IEEEsingleToDouble) { +# 6076| APFloat FPosZero(0.0F); +# 6077|-> APFloat FPosZeroToDouble(FPosZero.convertToDouble()); +# 6078| EXPECT_TRUE(FPosZeroToDouble.isPosZero()); +# 6079| APFloat FNegZero(-0.0F); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6077:3: var_decl: Declaring variable "FPosZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6078:3: uninit_use_in_call: Using uninitialized value "FPosZeroToDouble.U" when calling "isPosZero". +# 6076| APFloat FPosZero(0.0F); +# 6077| APFloat FPosZeroToDouble(FPosZero.convertToDouble()); +# 6078|-> EXPECT_TRUE(FPosZeroToDouble.isPosZero()); +# 6079| APFloat FNegZero(-0.0F); +# 6080| APFloat FNegZeroToDouble(FNegZero.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6079:3: var_decl: Declaring variable "FNegZero". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6080:3: uninit_use_in_call: Using uninitialized value "FNegZero.U" when calling "convertToDouble". +# 6078| EXPECT_TRUE(FPosZeroToDouble.isPosZero()); +# 6079| APFloat FNegZero(-0.0F); +# 6080|-> APFloat FNegZeroToDouble(FNegZero.convertToDouble()); +# 6081| EXPECT_TRUE(FNegZeroToDouble.isNegZero()); +# 6082| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6080:3: var_decl: Declaring variable "FNegZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6081:3: uninit_use_in_call: Using uninitialized value "FNegZeroToDouble.U" when calling "isNegZero". +# 6079| APFloat FNegZero(-0.0F); +# 6080| APFloat FNegZeroToDouble(FNegZero.convertToDouble()); +# 6081|-> EXPECT_TRUE(FNegZeroToDouble.isNegZero()); +# 6082| +# 6083| APFloat FOne(1.0F); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6083:3: var_decl: Declaring variable "FOne". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6084:3: uninit_use_in_call: Using uninitialized value "FOne.U" when calling "convertToDouble". +# 6082| +# 6083| APFloat FOne(1.0F); +# 6084|-> EXPECT_EQ(1.0, FOne.convertToDouble()); +# 6085| APFloat FPosLargest = APFloat::getLargest(APFloat::IEEEsingle(), false); +# 6086| EXPECT_EQ(std::numeric_limits::max(), FPosLargest.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6114:3: var_decl: Declaring variable "HPosZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6115:3: uninit_use_in_call: Using uninitialized value "HPosZeroToDouble.U" when calling "isPosZero". +# 6113| APFloat HPosZero = APFloat::getZero(APFloat::IEEEhalf()); +# 6114| APFloat HPosZeroToDouble(HPosZero.convertToDouble()); +# 6115|-> EXPECT_TRUE(HPosZeroToDouble.isPosZero()); +# 6116| APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6117| APFloat HNegZeroToDouble(HNegZero.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6117:3: var_decl: Declaring variable "HNegZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6118:3: uninit_use_in_call: Using uninitialized value "HNegZeroToDouble.U" when calling "isNegZero". +# 6116| APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6117| APFloat HNegZeroToDouble(HNegZero.convertToDouble()); +# 6118|-> EXPECT_TRUE(HNegZeroToDouble.isNegZero()); +# 6119| +# 6120| APFloat HOne(APFloat::IEEEhalf(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6149:3: var_decl: Declaring variable "BPosZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6150:3: uninit_use_in_call: Using uninitialized value "BPosZeroToDouble.U" when calling "isPosZero". +# 6148| APFloat BPosZero = APFloat::getZero(APFloat::IEEEhalf()); +# 6149| APFloat BPosZeroToDouble(BPosZero.convertToDouble()); +# 6150|-> EXPECT_TRUE(BPosZeroToDouble.isPosZero()); +# 6151| APFloat BNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6152| APFloat BNegZeroToDouble(BNegZero.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6152:3: var_decl: Declaring variable "BNegZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6153:3: uninit_use_in_call: Using uninitialized value "BNegZeroToDouble.U" when calling "isNegZero". +# 6151| APFloat BNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6152| APFloat BNegZeroToDouble(BNegZero.convertToDouble()); +# 6153|-> EXPECT_TRUE(BNegZeroToDouble.isNegZero()); +# 6154| } +# 6155| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6322:3: var_decl: Declaring variable "PosZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6323:3: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6321| APFloat PosZero = APFloat::getZero(APFloat::Float8E5M2FNUZ()); +# 6322| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6323|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6324| // Negative zero is not supported +# 6325| APFloat NegZero = APFloat::getZero(APFloat::Float8E5M2FNUZ(), true); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6326:3: var_decl: Declaring variable "NegZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6327:3: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isPosZero". +# 6325| APFloat NegZero = APFloat::getZero(APFloat::Float8E5M2FNUZ(), true); +# 6326| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6327|-> EXPECT_TRUE(NegZeroToFloat.isPosZero()); +# 6328| APFloat One(APFloat::Float8E5M2FNUZ(), "1.0"); +# 6329| EXPECT_EQ(1.0F, One.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6354:3: var_decl: Declaring variable "PosZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6355:3: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6353| APFloat PosZero = APFloat::getZero(APFloat::Float8E4M3FNUZ()); +# 6354| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6355|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6356| // Negative zero is not supported +# 6357| APFloat NegZero = APFloat::getZero(APFloat::Float8E4M3FNUZ(), true); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6358:3: var_decl: Declaring variable "NegZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6359:3: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isPosZero". +# 6357| APFloat NegZero = APFloat::getZero(APFloat::Float8E4M3FNUZ(), true); +# 6358| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6359|-> EXPECT_TRUE(NegZeroToFloat.isPosZero()); +# 6360| APFloat One(APFloat::Float8E4M3FNUZ(), "1.0"); +# 6361| EXPECT_EQ(1.0F, One.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6385:3: var_decl: Declaring variable "FPosZero". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6386:3: uninit_use_in_call: Using uninitialized value "FPosZero.U" when calling "convertToFloat". +# 6384| TEST(APFloatTest, IEEEsingleToFloat) { +# 6385| APFloat FPosZero(0.0F); +# 6386|-> APFloat FPosZeroToFloat(FPosZero.convertToFloat()); +# 6387| EXPECT_TRUE(FPosZeroToFloat.isPosZero()); +# 6388| APFloat FNegZero(-0.0F); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6386:3: var_decl: Declaring variable "FPosZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6387:3: uninit_use_in_call: Using uninitialized value "FPosZeroToFloat.U" when calling "isPosZero". +# 6385| APFloat FPosZero(0.0F); +# 6386| APFloat FPosZeroToFloat(FPosZero.convertToFloat()); +# 6387|-> EXPECT_TRUE(FPosZeroToFloat.isPosZero()); +# 6388| APFloat FNegZero(-0.0F); +# 6389| APFloat FNegZeroToFloat(FNegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6388:3: var_decl: Declaring variable "FNegZero". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6389:3: uninit_use_in_call: Using uninitialized value "FNegZero.U" when calling "convertToFloat". +# 6387| EXPECT_TRUE(FPosZeroToFloat.isPosZero()); +# 6388| APFloat FNegZero(-0.0F); +# 6389|-> APFloat FNegZeroToFloat(FNegZero.convertToFloat()); +# 6390| EXPECT_TRUE(FNegZeroToFloat.isNegZero()); +# 6391| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6389:3: var_decl: Declaring variable "FNegZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6390:3: uninit_use_in_call: Using uninitialized value "FNegZeroToFloat.U" when calling "isNegZero". +# 6388| APFloat FNegZero(-0.0F); +# 6389| APFloat FNegZeroToFloat(FNegZero.convertToFloat()); +# 6390|-> EXPECT_TRUE(FNegZeroToFloat.isNegZero()); +# 6391| +# 6392| APFloat FOne(1.0F); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6392:3: var_decl: Declaring variable "FOne". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6393:3: uninit_use_in_call: Using uninitialized value "FOne.U" when calling "convertToFloat". +# 6391| +# 6392| APFloat FOne(1.0F); +# 6393|-> EXPECT_EQ(1.0F, FOne.convertToFloat()); +# 6394| APFloat FPosLargest = APFloat::getLargest(APFloat::IEEEsingle(), false); +# 6395| EXPECT_EQ(std::numeric_limits::max(), FPosLargest.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6422:3: var_decl: Declaring variable "HPosZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6423:3: uninit_use_in_call: Using uninitialized value "HPosZeroToFloat.U" when calling "isPosZero". +# 6421| APFloat HPosZero = APFloat::getZero(APFloat::IEEEhalf()); +# 6422| APFloat HPosZeroToFloat(HPosZero.convertToFloat()); +# 6423|-> EXPECT_TRUE(HPosZeroToFloat.isPosZero()); +# 6424| APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6425| APFloat HNegZeroToFloat(HNegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6425:3: var_decl: Declaring variable "HNegZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6426:3: uninit_use_in_call: Using uninitialized value "HNegZeroToFloat.U" when calling "isNegZero". +# 6424| APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6425| APFloat HNegZeroToFloat(HNegZero.convertToFloat()); +# 6426|-> EXPECT_TRUE(HNegZeroToFloat.isNegZero()); +# 6427| +# 6428| APFloat HOne(APFloat::IEEEhalf(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6458:3: var_decl: Declaring variable "BPosZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6459:3: uninit_use_in_call: Using uninitialized value "BPosZeroToDouble.U" when calling "isPosZero". +# 6457| APFloat BPosZero = APFloat::getZero(APFloat::BFloat()); +# 6458| APFloat BPosZeroToDouble(BPosZero.convertToFloat()); +# 6459|-> EXPECT_TRUE(BPosZeroToDouble.isPosZero()); +# 6460| APFloat BNegZero = APFloat::getZero(APFloat::BFloat(), true); +# 6461| APFloat BNegZeroToDouble(BNegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6461:3: var_decl: Declaring variable "BNegZeroToDouble". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6462:3: uninit_use_in_call: Using uninitialized value "BNegZeroToDouble.U" when calling "isNegZero". +# 6460| APFloat BNegZero = APFloat::getZero(APFloat::BFloat(), true); +# 6461| APFloat BNegZeroToDouble(BNegZero.convertToFloat()); +# 6462|-> EXPECT_TRUE(BNegZeroToDouble.isNegZero()); +# 6463| +# 6464| APFloat BOne(APFloat::BFloat(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6498:3: var_decl: Declaring variable "PosZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6499:3: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6497| APFloat PosZero = APFloat::getZero(APFloat::Float8E5M2()); +# 6498| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6499|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6500| APFloat NegZero = APFloat::getZero(APFloat::Float8E5M2(), true); +# 6501| APFloat NegZeroToFloat(NegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6501:3: var_decl: Declaring variable "NegZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6502:3: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isNegZero". +# 6500| APFloat NegZero = APFloat::getZero(APFloat::Float8E5M2(), true); +# 6501| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6502|-> EXPECT_TRUE(NegZeroToFloat.isNegZero()); +# 6503| +# 6504| APFloat One(APFloat::Float8E5M2(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6534:3: var_decl: Declaring variable "PosZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6535:3: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6533| APFloat PosZero = APFloat::getZero(APFloat::Float8E4M3FN()); +# 6534| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6535|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6536| APFloat NegZero = APFloat::getZero(APFloat::Float8E4M3FN(), true); +# 6537| APFloat NegZeroToFloat(NegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6537:3: var_decl: Declaring variable "NegZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6538:3: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isNegZero". +# 6536| APFloat NegZero = APFloat::getZero(APFloat::Float8E4M3FN(), true); +# 6537| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6538|-> EXPECT_TRUE(NegZeroToFloat.isNegZero()); +# 6539| +# 6540| APFloat One(APFloat::Float8E4M3FN(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6566:3: var_decl: Declaring variable "PosZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6567:3: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6565| APFloat PosZero = APFloat::getZero(APFloat::FloatTF32()); +# 6566| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6567|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6568| APFloat NegZero = APFloat::getZero(APFloat::FloatTF32(), true); +# 6569| APFloat NegZeroToFloat(NegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6569:3: var_decl: Declaring variable "NegZeroToFloat". +llvm-project-19.0.0.src/llvm/unittests/ADT/APFloatTest.cpp:6570:3: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isNegZero". +# 6568| APFloat NegZero = APFloat::getZero(APFloat::FloatTF32(), true); +# 6569| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6570|-> EXPECT_TRUE(NegZeroToFloat.isNegZero()); +# 6571| +# 6572| APFloat One(APFloat::FloatTF32(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/APIntTest.cpp:1032:3: var_decl: Declaring variable "sr" without initializer. +llvm-project-19.0.0.src/llvm/unittests/ADT/APIntTest.cpp:1033:3: uninit_use_in_call: Using uninitialized value "sr" when calling "sdivrem". +# 1031| EXPECT_EQ(c, r); +# 1032| int64_t sr; +# 1033|-> APInt::sdivrem(p, b, q, sr); +# 1034| EXPECT_EQ(a, q); +# 1035| if (c.isNegative()) + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/AnyTest.cpp:57:3: move: "C" is moved (indicated by "std::move(C)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/AnyTest.cpp:58:3: use_after_move: "C" is used after it has been already moved. +# 56| // isn't. +# 57| llvm::Any G(std::move(C)); +# 58|-> EXPECT_FALSE(C.has_value()); +# 59| EXPECT_TRUE(G.has_value()); +# 60| EXPECT_TRUE(llvm::any_cast(&G)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/AnyTest.cpp:71:3: move: "G" is moved (indicated by "std::move(G)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/AnyTest.cpp:73:3: use_after_move: "G" is used after it has been already moved. +# 71| B = std::move(G); +# 72| EXPECT_TRUE(B.has_value()); +# 73|-> EXPECT_FALSE(G.has_value()); +# 74| EXPECT_TRUE(llvm::any_cast(&B)); +# 75| EXPECT_FALSE(llvm::any_cast(&G)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/AnyTest.cpp:113:3: move: "E" is moved (indicated by "std::move(E)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/AnyTest.cpp:114:3: use_after_move: "E" is used after it has been already moved. +# 112| // in the process. +# 113| EXPECT_EQ(8, llvm::any_cast(std::move(E))); +# 114|-> EXPECT_TRUE(E.has_value()); +# 115| +# 116| // Make sure moving from pointers gives back pointers, and that we can modify + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/ArrayRefTest.cpp:74:3: identity_transfer: Passing "9223372036854775807UL" as argument 2 to constructor for class "ArrayRef", which sets "AR.Length" to that argument. +llvm-project-19.0.0.src/llvm/unittests/ADT/ArrayRefTest.cpp:80:3: identity_transfer: Member function call "AR.size()" returns field "Length". +llvm-project-19.0.0.src/llvm/unittests/ADT/ArrayRefTest.cpp:80:3: overrun-buffer-arg: Calling "drop_front" with "AR.Data" and "AR.size() - 1UL" is suspicious because of the very large index, 9223372036854775806. The index may be due to a negative parameter being interpreted as unsigned. +# 78| +# 79| // Check that drop_front accepts size_t-sized numbers. +# 80|-> EXPECT_EQ(1U, AR.drop_front(AR.size() - 1).size()); +# 81| +# 82| // Check that slice accepts size_t-sized numbers. + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/ArrayRefTest.cpp:74:3: identity_transfer: Passing "9223372036854775807UL" as argument 2 to constructor for class "ArrayRef", which sets "AR.Length" to that argument. +llvm-project-19.0.0.src/llvm/unittests/ADT/ArrayRefTest.cpp:83:3: identity_transfer: Member function call "AR.size()" returns field "Length". +llvm-project-19.0.0.src/llvm/unittests/ADT/ArrayRefTest.cpp:83:3: overrun-buffer-arg: Calling "slice" with "AR.Data" and "AR.size() - 1UL" is suspicious because of the very large index, 9223372036854775806. The index may be due to a negative parameter being interpreted as unsigned. +# 81| +# 82| // Check that slice accepts size_t-sized numbers. +# 83|-> EXPECT_EQ(1U, AR.slice(AR.size() - 1).size()); +# 84| EXPECT_EQ(AR.size() - 1, AR.slice(1, AR.size() - 1).size()); +# 85| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/ArrayRefTest.cpp:244:3: move: "A" is moved (indicated by "std::move(A)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/ArrayRefTest.cpp:245:3: use_after_move: "A" is used after it has been already moved. +# 243| OwningArrayRef A{ArrayRef(A1)}; +# 244| OwningArrayRef B(std::move(A)); +# 245|-> EXPECT_EQ(A.data(), nullptr); +# 246| } +# 247| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/DenseMapTest.cpp:281:3: var_decl: Declaring variable "otherMap". +llvm-project-19.0.0.src/llvm/unittests/ADT/DenseMapTest.cpp:283:3: uninit_use_in_call: Using uninitialized value "otherMap.NumEntries" when calling "swap". +llvm-project-19.0.0.src/llvm/unittests/ADT/DenseMapTest.cpp:283:3: uninit_use_in_call: Using uninitialized value "otherMap.NumTombstones" when calling "swap". +# 281| TypeParam otherMap; +# 282| +# 283|-> this->Map.swap(otherMap); +# 284| EXPECT_EQ(0u, this->Map.size()); +# 285| EXPECT_TRUE(this->Map.empty()); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/DenseSetTest.cpp:57:5: var_decl: Declaring variable "Set". +llvm-project-19.0.0.src/llvm/unittests/ADT/DenseSetTest.cpp:61:5: uninit_use: Using uninitialized value "Set". Field "Set.TheMap.NumEntries" is uninitialized. +# 59| Set.insert(1); +# 60| Set.insert(2); +# 61|-> return Set; +# 62| } +# 63| }; + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/FallibleIteratorTest.cpp:211:5: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/FallibleIteratorTest.cpp:213:5: use_after_move: "Err" is used after it has been already moved. +# 211| EXPECT_THAT_ERROR(std::move(Err), Succeeded()); +# 212| ++I; +# 213|-> EXPECT_THAT_ERROR(std::move(Err), Failed()) << "Expected failure value"; +# 214| } +# 215| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/FallibleIteratorTest.cpp:229:5: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/FallibleIteratorTest.cpp:231:5: use_after_move: "Err" is used after it has been already moved. +# 229| EXPECT_THAT_ERROR(std::move(Err), Succeeded()); +# 230| --I; +# 231|-> EXPECT_THAT_ERROR(std::move(Err), Failed()); +# 232| } +# 233| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/HashingTest.cpp:162:3: overrun-buffer-val: Overrunning buffer pointed to by "&dummy" of 4 bytes by passing it to a function which accesses it at byte offset 63. +# 160| // Leave this uninitialized in the hope that valgrind will catch bad reads. +# 161| int dummy; +# 162|-> hash_code dummy_hash = hash_combine_range(&dummy, &dummy); +# 163| EXPECT_NE(hash_code(0), dummy_hash); +# 164| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/HashingTest.cpp:314:3: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 312| const int i1 = 42, i2 = 43, i3 = 123, i4 = 999, i5 = 0, i6 = 79; +# 313| const int arr1[] = { i1, i2, i3, i4, i5, i6 }; +# 314|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 1), hash_combine(i1)); +# 315| EXPECT_EQ(hash_combine_range(arr1, arr1 + 2), hash_combine(i1, i2)); +# 316| EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/HashingTest.cpp:315:3: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 313| const int arr1[] = { i1, i2, i3, i4, i5, i6 }; +# 314| EXPECT_EQ(hash_combine_range(arr1, arr1 + 1), hash_combine(i1)); +# 315|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 2), hash_combine(i1, i2)); +# 316| EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); +# 317| EXPECT_EQ(hash_combine_range(arr1, arr1 + 4), hash_combine(i1, i2, i3, i4)); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/HashingTest.cpp:316:3: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 314| EXPECT_EQ(hash_combine_range(arr1, arr1 + 1), hash_combine(i1)); +# 315| EXPECT_EQ(hash_combine_range(arr1, arr1 + 2), hash_combine(i1, i2)); +# 316|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); +# 317| EXPECT_EQ(hash_combine_range(arr1, arr1 + 4), hash_combine(i1, i2, i3, i4)); +# 318| EXPECT_EQ(hash_combine_range(arr1, arr1 + 5), + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/HashingTest.cpp:317:3: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 315| EXPECT_EQ(hash_combine_range(arr1, arr1 + 2), hash_combine(i1, i2)); +# 316| EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); +# 317|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 4), hash_combine(i1, i2, i3, i4)); +# 318| EXPECT_EQ(hash_combine_range(arr1, arr1 + 5), +# 319| hash_combine(i1, i2, i3, i4, i5)); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/HashingTest.cpp:318:3: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 316| EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); +# 317| EXPECT_EQ(hash_combine_range(arr1, arr1 + 4), hash_combine(i1, i2, i3, i4)); +# 318|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 5), +# 319| hash_combine(i1, i2, i3, i4, i5)); +# 320| EXPECT_EQ(hash_combine_range(arr1, arr1 + 6), + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/HashingTest.cpp:320:3: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 318| EXPECT_EQ(hash_combine_range(arr1, arr1 + 5), +# 319| hash_combine(i1, i2, i3, i4, i5)); +# 320|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 6), +# 321| hash_combine(i1, i2, i3, i4, i5, i6)); +# 322| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:136:3: move: "two" is moved (indicated by "std::move(two)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:142:3: use_after_move: "two" is used after it has been already moved. +# 140| +# 141| std::unique_ptr p(new int(3)); +# 142|-> auto try3 = mv.try_emplace(std::move(two), 3, std::move(p)); +# 143| EXPECT_FALSE(try3.second); +# 144| EXPECT_EQ(2, try3.first->second.a.v); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:175:3: move: "two" is moved (indicated by "std::move(two)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/MapVectorTest.cpp:180:3: use_after_move: "two" is used after it has been already moved. +# 178| EXPECT_EQ(1, try2.first->second.move); +# 179| +# 180|-> auto try3 = mv.insert_or_assign(std::move(two), 3); +# 181| EXPECT_FALSE(try3.second); +# 182| EXPECT_EQ(3, try3.first->second.v); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/ADT/PointerIntPairTest.cpp:116:3: address_of: Taking address with "&IntPtr" yields a singleton pointer. +llvm-project-19.0.0.src/llvm/unittests/ADT/PointerIntPairTest.cpp:116:3: assign: Assigning: "IntPtrBegin" = "&IntPtr". +llvm-project-19.0.0.src/llvm/unittests/ADT/PointerIntPairTest.cpp:117:3: ptr_arith: Using "IntPtrBegin" as an array. This might corrupt or misinterpret adjacent memory locations. +# 115| +# 116| int **IntPtrBegin = &IntPtr; +# 117|-> int **IntPtrEnd = IntPtrBegin + 1; +# 118| +# 119| PointerIntPair Pair; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ADT/STLExtrasTest.cpp:852:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/unittests/ADT/STLExtrasTest.cpp:852:3: leaked_storage: Ignoring storage allocated by "V2.release()" leaks it. +# 850| V2.reset(V1); +# 851| EXPECT_EQ(V1, llvm::to_address(V2)); +# 852|-> V2.release(); +# 853| +# 854| // Check fancy pointer overload for shared_ptr + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/STLExtrasTest.cpp:975:5: var_decl: Declaring variable "Foos". +llvm-project-19.0.0.src/llvm/unittests/ADT/STLExtrasTest.cpp:977:5: uninit_use: Using uninitialized value "Foos". Field "Foos.InlineElts" is uninitialized. +# 975| SmallVector Foos; +# 976| Foos.resize(4U); +# 977|-> return Foos; +# 978| }; +# 979| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/ScopeExitTest.cpp:36:5: move: "G" is moved (indicated by "std::move(G)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/ScopeExitTest.cpp:37:5: use_after_move: "G" is used after it has been already moved. +# 35| auto G = make_scope_exit(Increment); +# 36| auto H = std::move(G); +# 37|-> auto I = std::move(G); +# 38| EXPECT_EQ(0, Count); +# 39| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/SmallPtrSetTest.cpp:139:3: move: "s1" is moved (indicated by "std::move(s1)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/SmallPtrSetTest.cpp:141:3: use_after_move: "s1" is used after it has been already moved. +# 139| SmallPtrSet s3(std::move(s1)); +# 140| EXPECT_EQ(4U, s3.size()); +# 141|-> EXPECT_TRUE(s1.empty()); +# 142| for (int i = 0; i < 8; ++i) +# 143| if (i < 4) + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/SmallPtrSetTest.cpp:154:3: move: "s3" is moved (indicated by "std::move(s3)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/SmallPtrSetTest.cpp:156:3: use_after_move: "s3" is used after it has been already moved. +# 154| s1 = std::move(s3); +# 155| EXPECT_EQ(8U, s1.size()); +# 156|-> EXPECT_TRUE(s3.empty()); +# 157| for (int i = 0; i < 8; ++i) +# 158| EXPECT_TRUE(s1.count(&buf[i])); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/SmallVectorTest.cpp:1086:5: move: "A0" is moved (indicated by "std::move(A0)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/SmallVectorTest.cpp:1097:5: use_after_move: "A0" is used after it has been already moved. +# 1095| { +# 1096| SmallVector V; +# 1097|-> Emplaceable &back = V.emplace_back(std::move(A0), A1, std::move(A2), A3); +# 1098| EXPECT_TRUE(&back == &V.back()); +# 1099| EXPECT_TRUE(V.size() == 1); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/SparseBitVectorTest.cpp:46:3: move: "Vec" is moved (indicated by "std::move(Vec)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/SparseBitVectorTest.cpp:47:3: use_after_move: "Vec" is used after it has been already moved. +# 45| EXPECT_FALSE(Vec.empty()); +# 46| SparseBitVector<> MovedVec(std::move(Vec)); +# 47|-> EXPECT_TRUE(Vec.empty()); +# 48| EXPECT_TRUE(MovedVec.test(5)); +# 49| EXPECT_TRUE(MovedVec.test(1337)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/SparseBitVectorTest.cpp:51:3: move: "MovedVec" is moved (indicated by "std::move(MovedVec)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/SparseBitVectorTest.cpp:52:3: use_after_move: "MovedVec" is used after it has been already moved. +# 50| +# 51| Vec = std::move(MovedVec); +# 52|-> EXPECT_TRUE(MovedVec.empty()); +# 53| EXPECT_FALSE(Vec.empty()); +# 54| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/StringMapTest.cpp:407:3: move: "A" is moved (indicated by "std::move(A)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/StringMapTest.cpp:408:3: use_after_move: "A" is used after it has been already moved. +# 406| A["x"] = 42; +# 407| StringMap B = std::move(A); +# 408|-> ASSERT_EQ(A.size(), 0u); +# 409| ASSERT_EQ(B.size(), 1u); +# 410| ASSERT_EQ(B["x"], 42); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/StringMapTest.cpp:419:3: move: "B" is moved (indicated by "std::move(B)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/StringMapTest.cpp:421:3: use_after_move: "B" is used after it has been already moved. +# 419| A = std::move(B); +# 420| ASSERT_EQ(A.size(), 1u); +# 421|-> ASSERT_EQ(B.size(), 0u); +# 422| ASSERT_EQ(A["y"], 117); +# 423| ASSERT_EQ(B.count("x"), 0u); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/StringMapTest.cpp:533:3: move: "A" is moved (indicated by "std::move(A)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/StringMapTest.cpp:535:3: use_after_move: "A" is used after it has been already moved. +# 533| B = std::move(A); +# 534| ASSERT_EQ(InstanceCount, 1); +# 535|-> ASSERT_TRUE(A.empty()); +# 536| I = B.find("x"); +# 537| ASSERT_NE(I, B.end()); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/TinyPtrVectorTest.cpp:160:3: move: "Copy2" is moved (indicated by "std::move(Copy2)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/TinyPtrVectorTest.cpp:162:3: use_after_move: "Copy2" is used after it has been already moved. +# 160| TypeParam Move(std::move(Copy2)); +# 161| this->expectValues(Move, this->testArray(42)); +# 162|-> this->expectValues(Copy2, this->testArray(0)); +# 163| +# 164| TypeParam MultipleElements(this->testArray(2)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ADT/TinyPtrVectorTest.cpp:166:3: move: "SingleElement" is moved (indicated by "std::move(SingleElement)"). +llvm-project-19.0.0.src/llvm/unittests/ADT/TinyPtrVectorTest.cpp:168:3: use_after_move: "SingleElement" is used after it has been already moved. +# 166| MultipleElements = std::move(SingleElement); +# 167| this->expectValues(MultipleElements, this->testArray(1)); +# 168|-> this->expectValues(SingleElement, this->testArray(0)); +# 169| } +# 170| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:1434:3: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:1435:3: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 1433| +# 1434| LegalizerInfo LI; +# 1435|-> LI.getActionDefinitionsBuilder(TargetOpcode::G_AND) +# 1436| .legalFor({v6s32}) +# 1437| .clampMinNumElements(0, s32, 6); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:1486:3: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:1487:3: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 1485| +# 1486| LegalizerInfo LI; +# 1487|-> LI.getActionDefinitionsBuilder(TargetOpcode::G_PHI) +# 1488| .legalFor({v2s32}) +# 1489| .clampMinNumElements(0, s32, 2); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:52:3: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:67:5: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 65| for (unsigned opcode : {G_ADD, G_SUB}) { +# 66| // Check we infer the correct types and actually do what we're told. +# 67|-> EXPECT_EQ(L.getAction({opcode, {LLT::scalar(8)}}), +# 68| LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); +# 69| EXPECT_EQ(L.getAction({opcode, {LLT::scalar(16)}}), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:95:3: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:121:3: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 119| // Check we infer the correct types and actually do what we're told for some +# 120| // simple cases. +# 121|-> EXPECT_EQ(L.getAction({G_ADD, {LLT::fixed_vector(8, 8)}}), +# 122| LegalizeActionStep(Legal, 0, LLT{})); +# 123| EXPECT_EQ(L.getAction({G_ADD, {LLT::fixed_vector(8, 7)}}), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:138:3: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:153:3: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 151| +# 152| // Check we infer the correct types and actually do what we're told. +# 153|-> EXPECT_EQ(L.getAction({G_PTRTOINT, {s64, p0}}), +# 154| LegalizeActionStep(Legal, 0, LLT{})); +# 155| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:167:3: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:179:3: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 177| LegacyInfo.computeTables(); +# 178| +# 179|-> EXPECT_EQ(L.getAction({G_UREM, {LLT::scalar(16)}}), +# 180| LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); +# 181| EXPECT_EQ(L.getAction({G_UREM, {LLT::scalar(32)}}), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:187:3: var_decl: Declaring variable "L". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:199:5: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 197| // Check we infer the correct types and actually do what we're told. +# 198| for (unsigned Size : {1, 8, 16, 32}) { +# 199|-> EXPECT_EQ(L.getAction({G_UREM, {LLT::scalar(Size)}}), +# 200| LegalizeActionStep(Legal, 0, LLT{})); +# 201| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:253:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:256:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 254| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 255| +# 256|-> LI.getActionDefinitionsBuilder(G_IMPLICIT_DEF) +# 257| .legalFor({v4s32, v4p0}) +# 258| .moreElementsToNextPow2(0); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:269:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:271:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 269| LegalizerInfo LI; +# 270| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 271|-> LI.getActionDefinitionsBuilder(G_OR) +# 272| .legalFor({s32}) +# 273| .minScalarOrElt(0, s32); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:282:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:284:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 282| LegalizerInfo LI; +# 283| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 284|-> LI.getActionDefinitionsBuilder(G_AND) +# 285| .legalFor({s16}) +# 286| .maxScalarOrElt(0, s16); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:295:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:297:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 295| LegalizerInfo LI; +# 296| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 297|-> LI.getActionDefinitionsBuilder(G_XOR) +# 298| .legalFor({s16}) +# 299| .clampScalarOrElt(0, s16, s32); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:312:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:314:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 312| LegalizerInfo LI; +# 313| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 314|-> LI.getActionDefinitionsBuilder(G_OR) +# 315| .legalFor({s32}) +# 316| .minScalar(0, s32); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:327:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:329:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 327| LegalizerInfo LI; +# 328| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 329|-> LI.getActionDefinitionsBuilder(G_OR) +# 330| .legalFor({s32}) +# 331| .minScalarIf([&](const LegalityQuery &Query) { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:347:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:349:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 347| LegalizerInfo LI; +# 348| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 349|-> LI.getActionDefinitionsBuilder(G_AND) +# 350| .legalFor({s16}) +# 351| .maxScalar(0, s16); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:361:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:364:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 362| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 363| +# 364|-> LI.getActionDefinitionsBuilder(G_XOR) +# 365| .legalFor({s16}) +# 366| .clampScalar(0, s16, s32); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:379:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:382:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 380| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 381| +# 382|-> LI.getActionDefinitionsBuilder(G_AND) +# 383| .legalFor({s32}) +# 384| .widenScalarOrEltToNextPow2(0, 32); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:396:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:399:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 397| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 398| +# 399|-> LI.getActionDefinitionsBuilder(G_AND) +# 400| .legalFor({s32}) +# 401| .widenScalarToNextPow2(0, 32); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:414:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:418:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 416| +# 417| // Type index form +# 418|-> LI.getActionDefinitionsBuilder(G_SELECT) +# 419| .moreElementsIf(isScalar(1), changeElementCountTo(1, 0)); +# 420| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:455:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:458:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 456| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 457| +# 458|-> LI.getActionDefinitionsBuilder(G_SELECT).minScalarEltSameAsIf( +# 459| all(isVector(0), isVector(1)), 1, 0); +# 460| LegacyInfo.computeTables(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:476:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:478:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 476| LegalizerInfo LI; +# 477| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 478|-> LI.getActionDefinitionsBuilder(G_LOAD) +# 479| .legalForTypesWithMemDesc({{s32, p0, s32, 32}}); +# 480| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:502:5: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:504:5: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 502| LegalizerInfo LI; +# 503| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 504|-> LI.getActionDefinitionsBuilder(G_LOAD) +# 505| .legalForTypesWithMemDesc({{s32, p0, s32, MaxAlignInBits}}); +# 506| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:525:3: var_decl: Declaring variable "LI". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:526:3: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 524| const LLT P0 = LLT::pointer(0, 32); +# 525| LegalizerInfo LI; +# 526|-> auto Builder = LI.getActionDefinitionsBuilder(TargetOpcode::G_PTRTOINT); +# 527| (void)Builder.legalForCartesianProduct({S1}, {P0}); +# 528| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp:421:3: var_decl: Declaring variable "APF". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp:422:3: uninit_use_in_call: Using uninitialized value "APF.U" when calling "get". +# 420| EXPECT_TRUE(TmpFP); +# 421| APFloat APF((float).5); +# 422|-> auto *CFP = ConstantFP::get(Context, APF); +# 423| EXPECT_EQ(CFP, TmpFP); +# 424| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp:432:3: var_decl: Declaring variable "APF64". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp:433:3: uninit_use_in_call: Using uninitialized value "APF64.U" when calling "get". +# 431| EXPECT_TRUE(TmpFP64); +# 432| APFloat APF64(.5); +# 433|-> auto CFP64 = ConstantFP::get(Context, APF64); +# 434| EXPECT_EQ(CFP64, TmpFP64); +# 435| EXPECT_NE(TmpFP64, TmpFP); + +Error: RETURN_LOCAL (CWE-562): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/MFCommon.inc:108:9: escape_local_addr: Returning, through "this->TheTarget", the address of stack variable "". +# 106| public: +# 107| BogusTargetMachine() +# 108|-> : LLVMTargetMachine(Target(), "", Triple(""), "", "", +# 109| getTargetOptionsForBogusMachine(), Reloc::Static, +# 110| CodeModel::Small, CodeGenOptLevel::Default), + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/CodeGen/MLRegAllocDevelopmentFeatures.cpp:50:5: var_decl: Declaring variable "PositionsToReturn". +llvm-project-19.0.0.src/llvm/unittests/CodeGen/MLRegAllocDevelopmentFeatures.cpp:80:5: uninit_use: Using uninitialized value "PositionsToReturn". Field "PositionsToReturn.InlineElts" is uninitialized. +# 78| CurrentIndex += SlotIndex::InstrDist; +# 79| } +# 80|-> return PositionsToReturn; +# 81| } +# 82| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp:482:3: var_decl: Declaring variable "Empty". +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp:491:3: uninit_use_in_call: Using uninitialized value "Empty". Field "Empty.Ranges.Ranges.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 489| InlineInfo ContainsEmpty; +# 490| ContainsEmpty.Ranges.insert({0x100, 0x200}); +# 491|-> ContainsEmpty.Children.push_back(Empty); +# 492| TestInlineInfoEncodeError(llvm::endianness::little, ContainsEmpty, EmptyErr); +# 493| TestInlineInfoEncodeError(llvm::endianness::big, ContainsEmpty, EmptyErr); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/LogicalView/CodeViewReaderTest.cpp:464:3: extract: Calling "get" which extracts wrapped state from local "Reference". +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/LogicalView/CodeViewReaderTest.cpp:464:3: escape: The internal representation of local "Reference" escapes, but is destroyed when it exits scope. +# 462| std::unique_ptr Target = +# 463| createReader(ReaderHandler, InputsDir, CodeViewMsvc); +# 464|-> checkElementComparison(Reference.get(), Target.get()); +# 465| } +# 466| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/LogicalView/DWARFReaderTest.cpp:323:3: extract: Calling "get" which extracts wrapped state from local "Reference". +llvm-project-19.0.0.src/llvm/unittests/DebugInfo/LogicalView/DWARFReaderTest.cpp:323:3: escape: The internal representation of local "Reference" escapes, but is destroyed when it exits scope. +# 321| std::unique_ptr Target = +# 322| createReader(ReaderHandler, InputsDir, DwarfGcc); +# 323|-> checkElementComparison(Reference.get(), Target.get()); +# 324| } +# 325| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp:37:5: move: "MB" is moved (indicated by "std::move(MB)"). +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp:38:5: use_after_move: "MB" is used after it has been already moved. +# 36| return errorCodeToError(EC); +# 37| Blocks[MB.base()] = sys::OwningMemoryBlock(std::move(MB)); +# 38|-> return ExecutorAddr::fromPtr(MB.base()); +# 39| } +# 40| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:91:7: var_decl: Declaring variable "Seg1". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:98:7: uninit_use_in_call: Using uninitialized value "Seg1". Field "Seg1.WorkingMem" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 96| +# 97| Alloc1.MappingBase = Mem1->Start; +# 98|-> Alloc1.Segments.push_back(Seg1); +# 99| Alloc1.Actions.push_back( +# 100| {cantFail(WrapperFunctionCall::Create>( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:115:7: var_decl: Declaring variable "Seg2". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:122:7: uninit_use_in_call: Using uninitialized value "Seg2". Field "Seg2.WorkingMem" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 120| +# 121| Alloc2.MappingBase = Mem1->Start; +# 122|-> Alloc2.Segments.push_back(Seg2); +# 123| Alloc2.Actions.push_back( +# 124| {cantFail(WrapperFunctionCall::Create>( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:167:9: var_decl: Declaring variable "Seg3". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:174:9: uninit_use_in_call: Using uninitialized value "Seg3". Field "Seg3.WorkingMem" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 172| +# 173| Alloc3.MappingBase = Mem2->Start; +# 174|-> Alloc3.Segments.push_back(Seg3); +# 175| Alloc3.Actions.push_back( +# 176| {cantFail(WrapperFunctionCall::Create>( + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:100:5: alloc_fn: Storage is returned from allocation function "LLVMOrcJITTargetMachineBuilderDetectHost". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:100:5: var_assign: Assigning: "E1" = storage returned from "LLVMOrcJITTargetMachineBuilderDetectHost(&JTMB)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:112:3: leaked_storage: Variable "E1" going out of scope leaks the storage it points to. +# 110| ExecutionSession = LLVMOrcLLJITGetExecutionSession(Jit); +# 111| MainDylib = LLVMOrcLLJITGetMainJITDylib(Jit); +# 112|-> } +# 113| void TearDown() override { +# 114| // Check whether Jit has already been torn down -- we allow clients to do + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:462:3: alloc_fn: Storage is returned from allocation function "LLVMOrcResourceTrackerRemove". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:462:3: leaked_storage: Ignoring storage allocated by "LLVMOrcResourceTrackerRemove(RT)" leaks it. +# 460| << "): " << toString(E); +# 461| ASSERT_TRUE(!!TestFnAddr); +# 462|-> LLVMOrcResourceTrackerRemove(RT); +# 463| LLVMOrcJITTargetAddress OutAddr; +# 464| LLVMErrorRef Err = LLVMOrcLLJITLookup(Jit, &OutAddr, "sum"); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:540:3: alloc_fn: Storage is returned from allocation function "LLVMOrcLLJITEnableDebugSupport". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:540:3: var_assign: Assigning: "E" = storage returned from "LLVMOrcLLJITEnableDebugSupport(this->Jit)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:544:5: leaked_storage: Variable "E" going out of scope leaks the storage it points to. +# 542| << "Error testing LLJIT debug support " +# 543| << "(triple = " << TargetTriple << "): " << toString(E); +# 544|-> GTEST_SKIP() << "LLJIT C bindings provide debug support only for JITLink"; +# 545| } +# 546| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537:3: alloc_fn: Storage is returned from allocation function "createTestObject". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537:3: var_assign: Assigning: "ObjBuffer" = storage returned from "OrcCAPITestBase::createTestObject(::SumDebugExample, llvm::StringRef("sum.ll"))". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:544:5: leaked_storage: Variable "ObjBuffer" going out of scope leaks the storage it points to. +# 542| << "Error testing LLJIT debug support " +# 543| << "(triple = " << TargetTriple << "): " << toString(E); +# 544|-> GTEST_SKIP() << "LLJIT C bindings provide debug support only for JITLink"; +# 545| } +# 546| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:601:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetSymbols". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:601:3: var_assign: Assigning: "Symbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetSymbols(MR, &NumSymbols)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:604:3: leaked_storage: Variable "Symbols" going out of scope leaks the storage it points to. +# 602| LLVMOrcMaterializationResponsibilityGetSymbols(MR, &NumSymbols); +# 603| +# 604|-> ASSERT_TRUE(!!Symbols); +# 605| ASSERT_EQ(NumSymbols, (size_t)1); +# 606| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:601:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetSymbols". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:601:3: var_assign: Assigning: "Symbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetSymbols(MR, &NumSymbols)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:605:3: leaked_storage: Variable "Symbols" going out of scope leaks the storage it points to. +# 603| +# 604| ASSERT_TRUE(!!Symbols); +# 605|-> ASSERT_EQ(NumSymbols, (size_t)1); +# 606| +# 607| LLVMOrcSymbolStringPoolEntryRef *RequestedSymbols = + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:607:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetRequestedSymbols". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:607:3: var_assign: Assigning: "RequestedSymbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetRequestedSymbols(MR, &NumSymbols)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:610:3: leaked_storage: Variable "RequestedSymbols" going out of scope leaks the storage it points to. +# 608| LLVMOrcMaterializationResponsibilityGetRequestedSymbols(MR, &NumSymbols); +# 609| +# 610|-> ASSERT_TRUE(!!RequestedSymbols); +# 611| ASSERT_EQ(NumSymbols, (size_t)1); +# 612| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:607:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetRequestedSymbols". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:607:3: var_assign: Assigning: "RequestedSymbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetRequestedSymbols(MR, &NumSymbols)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:611:3: leaked_storage: Variable "RequestedSymbols" going out of scope leaks the storage it points to. +# 609| +# 610| ASSERT_TRUE(!!RequestedSymbols); +# 611|-> ASSERT_EQ(NumSymbols, (size_t)1); +# 612| +# 613| LLVMOrcCSymbolFlagsMapPair TargetSym = Symbols[0]; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:607:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetRequestedSymbols". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:607:3: var_assign: Assigning: "RequestedSymbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetRequestedSymbols(MR, &NumSymbols)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:615:3: noescape: Resource "RequestedSymbols[0]" is not freed or pointed-to in "Compare". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:615:3: leaked_storage: Variable "RequestedSymbols" going out of scope leaks the storage it points to. +# 613| LLVMOrcCSymbolFlagsMapPair TargetSym = Symbols[0]; +# 614| +# 615|-> ASSERT_EQ(RequestedSymbols[0], TargetSym.Name); +# 616| LLVMOrcRetainSymbolStringPoolEntry(TargetSym.Name); +# 617| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:601:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetSymbols". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:601:3: var_assign: Assigning: "Symbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetSymbols(MR, &NumSymbols)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:615:3: leaked_storage: Variable "Symbols" going out of scope leaks the storage it points to. +# 613| LLVMOrcCSymbolFlagsMapPair TargetSym = Symbols[0]; +# 614| +# 615|-> ASSERT_EQ(RequestedSymbols[0], TargetSym.Name); +# 616| LLVMOrcRetainSymbolStringPoolEntry(TargetSym.Name); +# 617| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:643:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityDefineMaterializing". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:643:3: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityDefineMaterializing(MR, NewSymbols, 2UL)" leaks it. +# 641| {DependencySymbol, Flags}, +# 642| }; +# 643|-> LLVMOrcMaterializationResponsibilityDefineMaterializing(MR, NewSymbols, 2); +# 644| +# 645| LLVMOrcRetainSymbolStringPoolEntry(OtherSymbol); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:662:3: assign: Assigning: "OtherMU" = "LLVMOrcAbsoluteSymbols(&OtherPair, 1UL)". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:665:5: set_unmanaged_raw_ptr: Function "LLVMOrcMaterializationResponsibilityReplace" sets a smart pointer with "OtherMU". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:677:7: multiple_init_smart_ptr: Function "LLVMOrcDisposeMaterializationUnit" sets a smart pointer with "OtherMU", but it is already managed by another smart pointer. +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:677:7: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 675| LLVMOrcDisposeMaterializationResponsibility(OtherMR); +# 676| LLVMOrcDisposeMaterializationResponsibility(MR); +# 677|-> LLVMOrcDisposeMaterializationUnit(OtherMU); +# 678| return; +# 679| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:686:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyResolved". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:686:3: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1UL)" leaks it. +# 684| LLVMOrcRetainSymbolStringPoolEntry(DependencySymbol); +# 685| LLVMOrcCSymbolMapPair Pair = {DependencySymbol, Sym}; +# 686|-> LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1); +# 687| // DependencySymbol no longer owned by us +# 688| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:690:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyResolved". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:690:3: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1UL)" leaks it. +# 688| +# 689| Pair = {TargetSym.Name, Sym}; +# 690|-> LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1); +# 691| +# 692| LLVMOrcRetainSymbolStringPoolEntry(TargetSym.Name); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:699:3: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyEmitted". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:699:3: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyEmitted(MR, &DependenceSet, 1UL)" leaks it. +# 697| /* .NumDependencies = */ 1}; +# 698| +# 699|-> LLVMOrcMaterializationResponsibilityNotifyEmitted(MR, &DependenceSet, 1); +# 700| LLVMOrcDisposeMaterializationResponsibility(MR); +# 701| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:712:3: alloc_fn: Storage is returned from allocation function "LLVMOrcJITDylibDefine". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:712:3: leaked_storage: Ignoring storage allocated by "LLVMOrcJITDylibDefine(JD, MU)" leaks it. +# 710| "MU", (void *)Jit, &Sym, 1, NULL, &Materialize, NULL, &Destroy); +# 711| LLVMOrcJITDylibRef JD = LLVMOrcLLJITGetMainJITDylib(Jit); +# 712|-> LLVMOrcJITDylibDefine(JD, MU); +# 713| +# 714| LLVMOrcJITTargetAddress Addr; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/ResourceTrackerTest.cpp:81:5: var_decl: Declaring variable "DstResources" without initializer. +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/ResourceTrackerTest.cpp:82:5: uninit_use_in_call: Using uninitialized value "DstResources" when calling "swap". +# 80| auto &DstResourceRef = Resources[DstKey]; +# 81| ResourceT DstResources; +# 82|-> std::swap(DstResourceRef, DstResources); +# 83| +# 84| auto SI = Resources.find(SrcKey); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/SharedMemoryMapperTest.cpp:80:9: var_decl: Declaring variable "SI". +llvm-project-19.0.0.src/llvm/unittests/ExecutionEngine/Orc/SharedMemoryMapperTest.cpp:87:9: uninit_use_in_call: Using uninitialized value "SI". Field "SI.WorkingMem" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 85| +# 86| AI.MappingBase = Reservation.Start; +# 87|-> AI.Segments.push_back(SI); +# 88| AI.Actions.push_back( +# 89| {cantFail(WrapperFunctionCall::Create>( + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/IR/IRBuilderTest.cpp:1075:5: var_decl: Declaring variable "Names". +llvm-project-19.0.0.src/llvm/unittests/IR/IRBuilderTest.cpp:1087:5: uninit_use: Using uninitialized value "Names". Field "Names.InlineElts" is uninitialized. +# 1085| if (auto *MN = dyn_cast_or_null(Node)) +# 1086| Names.push_back(MN->getName()); +# 1087|-> return Names; +# 1088| }; +# 1089| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:573:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:573:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 571| +# 572| TEST_F(PatternMatchTest, BitCast) { +# 573|-> Value *OneDouble = ConstantFP::get(IRB.getDoubleTy(), APFloat(1.0)); +# 574| Value *ScalableDouble = ConstantFP::get( +# 575| VectorType::get(IRB.getDoubleTy(), 2, /*Scalable=*/true), APFloat(1.0)); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:574:3: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:574:3: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 572| TEST_F(PatternMatchTest, BitCast) { +# 573| Value *OneDouble = ConstantFP::get(IRB.getDoubleTy(), APFloat(1.0)); +# 574|-> Value *ScalableDouble = ConstantFP::get( +# 575| VectorType::get(IRB.getDoubleTy(), 2, /*Scalable=*/true), APFloat(1.0)); +# 576| // scalar -> scalar + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:1895:3: var_decl: Declaring variable "F32Pi". +llvm-project-19.0.0.src/llvm/unittests/IR/PatternMatch.cpp:1901:3: uninit_use_in_call: Using uninitialized value "F32Pi.U" when calling "get". +# 1899| Constant *CF32NaN = ConstantFP::get(F32Ty, F32NaN); +# 1900| Constant *CF32Zero = ConstantFP::get(F32Ty, F32Zero); +# 1901|-> Constant *CF32Pi = ConstantFP::get(F32Ty, F32Pi); +# 1902| +# 1903| EXPECT_TRUE(match(CF32NaN, cstfp_pred_ty())); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/unittests/IR/VFABIDemanglerTest.cpp:24:20: destructor_uses_global_object: The destructor of global object "::Ctx" itself makes use of global object "UseConstantFPForFixedLengthSplat" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::Ctx" might be called after "UseConstantFPForFixedLengthSplat" has already been destroyed. +# 22| namespace { +# 23| +# 24|-> static LLVMContext Ctx; +# 25| +# 26| /// Perform tests against VFABI Rules. `invokeParser` creates a VFInfo object + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/unittests/IR/VFABIDemanglerTest.cpp:24:20: destructor_uses_global_object: The destructor of global object "::Ctx" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "::Ctx" might be called after "fuzzer::TPC" has already been destroyed. +# 22| namespace { +# 23| +# 24|-> static LLVMContext Ctx; +# 25| +# 26| /// Perform tests against VFABI Rules. `invokeParser` creates a VFInfo object + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/MI/LiveIntervalTest.cpp:71:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/unittests/MI/LiveIntervalTest.cpp:71:3: var_assign: Assigning: "MMIWP" = storage returned from "new llvm::MachineModuleInfoWrapperPass(TM)". +llvm-project-19.0.0.src/llvm/unittests/MI/LiveIntervalTest.cpp:72:3: noescape: Resource "MMIWP" is not freed or pointed-to in "getMMI". +llvm-project-19.0.0.src/llvm/unittests/MI/LiveIntervalTest.cpp:73:5: leaked_storage: Variable "MMIWP" going out of scope leaks the storage it points to. +# 71| MachineModuleInfoWrapperPass *MMIWP = new MachineModuleInfoWrapperPass(&TM); +# 72| if (MIR->parseMachineFunctions(*M, MMIWP->getMMI())) +# 73|-> return nullptr; +# 74| PM.add(MMIWP); +# 75| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Object/ELFObjectFileTest.cpp:1370:5: var_decl: Declaring variable "FoundRela" without initializer. +llvm-project-19.0.0.src/llvm/unittests/Object/ELFObjectFileTest.cpp:1388:5: uninit_use_in_call: Using uninitialized value "FoundRela" when calling "AssertionResult". +# 1386| EXPECT_EQ(TextSecName, ".text"); +# 1387| } +# 1388|-> ASSERT_TRUE(FoundRela); +# 1389| }; +# 1390| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ObjectYAML/DWARFYAMLTest.cpp:51:3: var_decl: Declaring variable "AddrTableEntry". +llvm-project-19.0.0.src/llvm/unittests/ObjectYAML/DWARFYAMLTest.cpp:52:3: uninit_use_in_call: Using uninitialized value "AddrTableEntry.Format" when calling "parseDWARFYAML". +llvm-project-19.0.0.src/llvm/unittests/ObjectYAML/DWARFYAMLTest.cpp:52:3: uninit_use_in_call: Using uninitialized value "AddrTableEntry.SegSelectorSize.value" when calling "parseDWARFYAML". +# 50| )"; +# 51| DWARFYAML::AddrTableEntry AddrTableEntry; +# 52|-> EXPECT_THAT_ERROR(parseDWARFYAML(Yaml, AddrTableEntry), +# 53| FailedWithMessage("missing required key 'Version'")); +# 54| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ObjectYAML/DWARFYAMLTest.cpp:63:3: var_decl: Declaring variable "AddrTableEntry". +llvm-project-19.0.0.src/llvm/unittests/ObjectYAML/DWARFYAMLTest.cpp:64:3: uninit_use_in_call: Using uninitialized value "AddrTableEntry.Format" when calling "parseDWARFYAML". +llvm-project-19.0.0.src/llvm/unittests/ObjectYAML/DWARFYAMLTest.cpp:64:3: uninit_use_in_call: Using uninitialized value "AddrTableEntry.SegSelectorSize.value" when calling "parseDWARFYAML". +# 62| )"; +# 63| DWARFYAML::AddrTableEntry AddrTableEntry; +# 64|-> EXPECT_THAT_ERROR(parseDWARFYAML(Yaml, AddrTableEntry), +# 65| FailedWithMessage("unknown key 'Blah'")); +# 66| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:19:5: alloc_fn: Storage is returned from allocation function "LLVMGetDefaultTargetTriple". +llvm-project-19.0.0.src/llvm/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:19:5: var_assign: Assigning: "Triple" = storage returned from "LLVMGetDefaultTargetTriple()". +llvm-project-19.0.0.src/llvm/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:20:5: noescape: Resource "Triple" is not freed or pointed-to in "strlen". +llvm-project-19.0.0.src/llvm/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:21:7: leaked_storage: Variable "Triple" going out of scope leaks the storage it points to. +# 19| char *Triple = LLVMGetDefaultTargetTriple(); +# 20| if (strlen(Triple) == 0) { +# 21|-> GTEST_SKIP(); +# 22| LLVMDisposeMessage(Triple); +# 23| return; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ProfileData/CoverageMappingTest.cpp:29:3: var_decl: Declaring variable "Found" without initializer. +llvm-project-19.0.0.src/llvm/unittests/ProfileData/CoverageMappingTest.cpp:37:3: uninit_use: Using uninitialized value "Found". +# 35| FoundMsg = CME.message(); +# 36| }); +# 37|-> if (Expected_Err == Found && Msg == Expected_Msg) +# 38| return ::testing::AssertionSuccess(); +# 39| return ::testing::AssertionFailure() << "error: " << FoundMsg << "\n"; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:32:3: var_decl: Declaring variable "Found" without initializer. +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:38:3: uninit_use: Using uninitialized value "Found". +# 36| FoundMsg = IPE.message(); +# 37| }); +# 38|-> if (Expected == Found) +# 39| return ::testing::AssertionSuccess(); +# 40| return ::testing::AssertionFailure() << "error: " << FoundMsg << "\n"; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:398:3: var_decl: Declaring variable "MR". +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:404:3: uninit_use: Using uninitialized value "MR". Field "MR.AllocSites.InlineElts" is uninitialized. +# 402| for (const auto &Frames : CallSiteFrames) +# 403| MR.CallSites.push_back(Frames); +# 404|-> return MR; +# 405| } +# 406| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:411:3: var_decl: Declaring variable "MR". +llvm-project-19.0.0.src/llvm/unittests/ProfileData/InstrProfTest.cpp:419:3: uninit_use: Using uninitialized value "MR". Field "MR.AllocSites.InlineElts" is uninitialized. +# 417| for (const auto &CSId : CallSiteFrames) +# 418| MR.CallSiteIds.push_back(CSId); +# 419|-> return MR; +# 420| } +# 421| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/ProfileData/MemProfTest.cpp:93:3: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/unittests/ProfileData/MemProfTest.cpp:96:3: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 94| // Mimic an entry for a non position independent executable. +# 95| Result.emplace_back(0x0, 0x40000, 0x0); +# 96|-> return Result; +# 97| } +# 98| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Support/AllocatorTest.cpp:32:3: move: "Alloc" is moved (indicated by "std::move(Alloc)"). +llvm-project-19.0.0.src/llvm/unittests/Support/AllocatorTest.cpp:33:3: use_after_move: "Alloc" is used after it has been already moved. +# 31| +# 32| BumpPtrAllocator Alloc2 = std::move(Alloc); +# 33|-> EXPECT_EQ(0U, Alloc.GetNumSlabs()); +# 34| EXPECT_EQ(1U, Alloc2.GetNumSlabs()); +# 35| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Support/AllocatorTest.cpp:43:3: move: "Alloc2" is moved (indicated by "std::move(Alloc2)"). +llvm-project-19.0.0.src/llvm/unittests/Support/AllocatorTest.cpp:44:3: use_after_move: "Alloc2" is used after it has been already moved. +# 42| +# 43| Alloc = std::move(Alloc2); +# 44|-> EXPECT_EQ(0U, Alloc2.GetNumSlabs()); +# 45| EXPECT_EQ(1U, Alloc.GetNumSlabs()); +# 46| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Casting.cpp:187:3: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/llvm/unittests/Support/Casting.cpp:187:3: leaked_storage: Ignoring storage allocated by "FP.release()" leaks it. +# 185| "Incorrect deduced return type!"); +# 186| EXPECT_NE(FP.get(), null_foo); +# 187|-> FP.release(); +# 188| } +# 189| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-project-19.0.0.src/llvm/unittests/Support/Casting.cpp:306:3: extract: Calling "get" which extracts wrapped state from local "D". +llvm-project-19.0.0.src/llvm/unittests/Support/Casting.cpp:306:3: assign: Assigning: "OrigD" = "D.get()". +llvm-project-19.0.0.src/llvm/unittests/Support/Casting.cpp:328:3: invalidate: Calling "operator =" invalidates the internal representation of local "D". +llvm-project-19.0.0.src/llvm/unittests/Support/Casting.cpp:329:3: use_after_free: Using invalidated internal representation of local "D". +# 327| // nullptr; +# 328| D = unique_dyn_cast(NewB); +# 329|-> ASSERT_EQ(OrigD, D.get()); +# 330| ASSERT_EQ(nullptr, NewB); +# 331| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Support/DivisionByConstantTest.cpp:76:7: var_decl: Declaring variable "Magics". +llvm-project-19.0.0.src/llvm/unittests/Support/DivisionByConstantTest.cpp:79:7: uninit_use_in_call: Using uninitialized value "Magics.ShiftAmount" when calling "SignedDivisionByConstantInfo". +# 77| if (!(Divisor.isOne() || Divisor.isAllOnes())) +# 78| Magics = SignedDivisionByConstantInfo::get(Divisor); +# 79|-> EnumerateAPInts(Bits, [Divisor, Magics, Bits](const APInt &Numerator) { +# 80| if (Numerator.isMinSignedValue() && Divisor.isAllOnes()) +# 81| return; // Overflow is undefined behavior. + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Support/FormatVariadicTest.cpp:678:3: move: "R" is moved (indicated by "std::move(R)"). +llvm-project-19.0.0.src/llvm/unittests/Support/FormatVariadicTest.cpp:680:3: use_after_move: "R" is used after it has been already moved. +# 678| EXPECT_EQ("0C 3M", formatv("{0}", std::move(R)).str()); +# 679| EXPECT_EQ("0C 3M", formatv("{0}", Recorder()).str()); +# 680|-> EXPECT_EQ(0, R.Copied); +# 681| EXPECT_EQ(0, R.Moved); +# 682| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Support/FormatVariadicTest.cpp:697:3: move: "E1" is moved (indicated by "std::move(E1)"). +llvm-project-19.0.0.src/llvm/unittests/Support/FormatVariadicTest.cpp:698:3: use_after_move: "E1" is used after it has been already moved. +# 696| EXPECT_TRUE(E1.isA()); // not consumed +# 697| EXPECT_EQ("X", formatv("{0}", fmt_consume(std::move(E1))).str()); +# 698|-> EXPECT_FALSE(E1.isA()); // consumed +# 699| } +# 700| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1438:5: move: "mfr" is moved (indicated by "std::move(mfr)"). +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1439:5: use_after_move: "mfr" is used after it has been already moved. +# 1437| // Move it out of the scope and confirm mfr is reset. +# 1438| MaybeMFR = std::move(mfr); +# 1439|-> EXPECT_FALSE(mfr); +# 1440| #if !defined(NDEBUG) && GTEST_HAS_DEATH_TEST +# 1441| EXPECT_DEATH(mfr.data(), "Mapping failed but used anyway!"); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1458:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1459:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1457| int FD; +# 1458| EC = fs::openFileForRead(Twine(TempPath), FD); +# 1459|-> ASSERT_NO_ERROR(EC); +# 1460| fs::mapped_file_region mfr(fs::convertFDToNativeFile(FD), +# 1461| fs::mapped_file_region::readonly, Size, 0, EC); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1458:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: identity_transfer: Passing "FD" as argument 1 to function "convertFDToNativeFile", which returns that argument. +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "FD" is not freed or pointed-to in "convertFDToNativeFile". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "llvm::sys::fs::convertFDToNativeFile(FD)" is not freed or pointed-to in "mapped_file_region". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1462:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1460| fs::mapped_file_region mfr(fs::convertFDToNativeFile(FD), +# 1461| fs::mapped_file_region::readonly, Size, 0, EC); +# 1462|-> ASSERT_NO_ERROR(EC); +# 1463| +# 1464| // Verify content + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1458:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: identity_transfer: Passing "FD" as argument 1 to function "convertFDToNativeFile", which returns that argument. +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "FD" is not freed or pointed-to in "convertFDToNativeFile". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1460:5: noescape: Resource "llvm::sys::fs::convertFDToNativeFile(FD)" is not freed or pointed-to in "mapped_file_region". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1468:5: identity_transfer: Passing "FD" as argument 1 to function "convertFDToNativeFile", which returns that argument. +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1468:5: noescape: Resource "FD" is not freed or pointed-to in "convertFDToNativeFile". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1468:5: noescape: Resource "llvm::sys::fs::convertFDToNativeFile(FD)" is not freed or pointed-to in "mapped_file_region". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1470:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1468| fs::mapped_file_region m(fs::convertFDToNativeFile(FD), +# 1469| fs::mapped_file_region::readonly, Size, 0, EC); +# 1470|-> ASSERT_NO_ERROR(EC); +# 1471| ASSERT_EQ(close(FD), 0); +# 1472| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1714:3: open_arg: "openFileForRead" opens handle stored into "FileDescriptor2". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1714:3: leaked_handle: Handle variable "FileDescriptor2" going out of scope leaks the handle. +# 1712| int FileDescriptor2; +# 1713| SmallString<64> ResultPath; +# 1714|-> ASSERT_NO_ERROR(fs::openFileForRead(Twine(TempPath), FileDescriptor2, +# 1715| fs::OF_None, &ResultPath)) +# 1716| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1954:3: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1954:3: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1952| +# 1953| int FD; +# 1954|-> ASSERT_NO_ERROR(fs::openFileForRead(NonExistantFile, FD)); +# 1955| FileDescriptorCloser Closer(FD); +# 1956| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1978:3: open_arg: "openFileForReadWrite" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/Path.cpp:1978:3: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1976| +# 1977| int FD; +# 1978|-> ASSERT_NO_ERROR(fs::openFileForReadWrite(NonExistantFile, FD, +# 1979| fs::CD_OpenExisting, fs::OF_None)); +# 1980| FileDescriptorCloser Closer(FD); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:463:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:463:3: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 461| sys::WEM_UTF16)); +# 462| int fd = 0; +# 463|-> ASSERT_NO_ERROR(fs::openFileForRead(file_pathname.c_str(), fd)); +# 464| #if defined(_WIN32) +# 465| char buf[18]; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:463:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:478:3: noescape: Resource "fd" is not freed or pointed-to in "read". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:478:3: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 476| #else +# 477| char buf[10]; +# 478|-> ASSERT_EQ(::read(fd, buf, 10), 10); +# 479| ASSERT_EQ(strncmp(buf, utf8_text, 10), 0); +# 480| #endif + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:463:3: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:478:3: noescape: Resource "fd" is not freed or pointed-to in "read". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:479:3: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 477| char buf[10]; +# 478| ASSERT_EQ(::read(fd, buf, 10), 10); +# 479|-> ASSERT_EQ(strncmp(buf, utf8_text, 10), 0); +# 480| #endif +# 481| ::close(fd); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:517:5: open_arg: "openFileForReadWrite" opens handle stored into "FD2". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:517:5: leaked_handle: Handle variable "FD2" going out of scope leaks the handle. +# 515| // Child process. +# 516| int FD2; +# 517|-> ASSERT_NO_ERROR(fs::openFileForReadWrite(LockedFile, FD2, +# 518| fs::CD_OpenExisting, fs::OF_None)); +# 519| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:517:5: open_arg: "openFileForReadWrite" opens handle stored into "FD2". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:520:5: noescape: Resource "FD2" is not freed or pointed-to in "tryLockFile". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:521:5: leaked_handle: Handle variable "FD2" going out of scope leaks the handle. +# 519| +# 520| std::error_code ErrC = fs::tryLockFile(FD2, std::chrono::seconds(5)); +# 521|-> ASSERT_NO_ERROR(ErrC); +# 522| ASSERT_NO_ERROR(fs::unlockFile(FD2)); +# 523| close(FD2); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:517:5: open_arg: "openFileForReadWrite" opens handle stored into "FD2". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:520:5: noescape: Resource "FD2" is not freed or pointed-to in "tryLockFile". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:522:5: noescape: Resource "FD2" is not freed or pointed-to in "unlockFile". +llvm-project-19.0.0.src/llvm/unittests/Support/ProgramTest.cpp:522:5: leaked_handle: Handle variable "FD2" going out of scope leaks the handle. +# 520| std::error_code ErrC = fs::tryLockFile(FD2, std::chrono::seconds(5)); +# 521| ASSERT_NO_ERROR(ErrC); +# 522|-> ASSERT_NO_ERROR(fs::unlockFile(FD2)); +# 523| close(FD2); +# 524| exit(0); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Support/RegexTest.cpp:205:3: move: "r1" is moved (indicated by "std::move(r1)"). +llvm-project-19.0.0.src/llvm/unittests/Support/RegexTest.cpp:208:3: use_after_move: "r1" is used after it has been already moved. +# 206| EXPECT_TRUE(r2.match("916")); +# 207| std::string Error; +# 208|-> EXPECT_FALSE(r1.isValid(Error)); +# 209| } +# 210| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/Support/TrailingObjectsTest.cpp:77:5: new_object: Calling single-object form of 'new': "new (Mem) ::Class2(HasShort, HasDouble)". +llvm-project-19.0.0.src/llvm/unittests/Support/TrailingObjectsTest.cpp:77:5: assign: Assigning: "C" = "new (Mem) ::Class2(HasShort, HasDouble)". +llvm-project-19.0.0.src/llvm/unittests/Support/TrailingObjectsTest.cpp:79:7: callee_ptr_arith: Passing "C" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 77| Class2 *C = new (Mem) Class2(HasShort, HasDouble); +# 78| if (HasShort) +# 79|-> *C->getTrailingObjects() = S; +# 80| if (HasDouble) +# 81| *C->getTrailingObjects() = D; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/llvm/unittests/Support/TrailingObjectsTest.cpp:77:5: new_object: Calling single-object form of 'new': "new (Mem) ::Class2(HasShort, HasDouble)". +llvm-project-19.0.0.src/llvm/unittests/Support/TrailingObjectsTest.cpp:77:5: assign: Assigning: "C" = "new (Mem) ::Class2(HasShort, HasDouble)". +llvm-project-19.0.0.src/llvm/unittests/Support/TrailingObjectsTest.cpp:81:7: callee_ptr_arith: Passing "C" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 79| *C->getTrailingObjects() = S; +# 80| if (HasDouble) +# 81|-> *C->getTrailingObjects() = D; +# 82| return C; +# 83| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Support/YAMLIOTest.cpp:1781:9: var_decl: Declaring variable "num" without initializer. +llvm-project-19.0.0.src/llvm/unittests/Support/YAMLIOTest.cpp:1782:9: uninit_use_in_call: Using uninitialized value "num" when calling "mapRequired". +# 1780| static void mappingFraction(IO &io, MyDouble &d) { +# 1781| double num, denom; +# 1782|-> io.mapRequired("numerator", num); +# 1783| io.mapRequired("denominator", denom); +# 1784| // convert fraction to double + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Support/YAMLIOTest.cpp:1781:9: var_decl: Declaring variable "denom" without initializer. +llvm-project-19.0.0.src/llvm/unittests/Support/YAMLIOTest.cpp:1783:9: uninit_use_in_call: Using uninitialized value "denom" when calling "mapRequired". +# 1781| double num, denom; +# 1782| io.mapRequired("numerator", num); +# 1783|-> io.mapRequired("denominator", denom); +# 1784| // convert fraction to double +# 1785| d.value = num/denom; + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/Support/raw_pwrite_stream_test.cpp:62:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/Support/raw_pwrite_stream_test.cpp:62:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 60| if (ParentPath) { +# 61| Path = ParentPath; +# 62|-> ASSERT_NO_ERROR(sys::fs::openFileForRead(Path, FD)); +# 63| } else { +# 64| ASSERT_NO_ERROR(sys::fs::createTemporaryFile("foo", "bar", FD, Path)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:405:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:405:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 403| +# 404| int FD = 0; +# 405|-> ASSERT_NO_ERROR(fs::openFileForRead(OutputPath, FD)); +# 406| Size = ::lseek(FD, 0, SEEK_END); +# 407| ASSERT_NE(-1, Size); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:405:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:406:5: noescape: Resource "FD" is not freed or pointed-to in "lseek". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:407:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 405| ASSERT_NO_ERROR(fs::openFileForRead(OutputPath, FD)); +# 406| Size = ::lseek(FD, 0, SEEK_END); +# 407|-> ASSERT_NE(-1, Size); +# 408| ::lseek(FD, 0, SEEK_SET); +# 409| Buffer = std::make_unique(Size); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:405:5: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:406:5: noescape: Resource "FD" is not freed or pointed-to in "lseek". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:408:5: noescape: Resource "FD" is not freed or pointed-to in "lseek". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:410:5: noescape: Resource "FD" is not freed or pointed-to in "read". +llvm-project-19.0.0.src/llvm/unittests/TargetParser/Host.cpp:410:5: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 408| ::lseek(FD, 0, SEEK_SET); +# 409| Buffer = std::make_unique(Size); +# 410|-> ASSERT_EQ(::read(FD, Buffer.get(), Size), Size); +# 411| ::close(FD); +# 412| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Transforms/IPO/AttributorTest.cpp:60:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/unittests/Transforms/IPO/AttributorTest.cpp:61:3: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 59| InformationCache InfoCache(M, AG, Allocator, nullptr); +# 60| AttributorConfig AC(CGUpdater); +# 61|-> Attributor A(Functions, InfoCache, AC); +# 62| +# 63| Function *F = M.getFunction("foo"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Transforms/IPO/AttributorTest.cpp:60:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/unittests/Transforms/IPO/AttributorTest.cpp:61:3: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 59| InformationCache InfoCache(M, AG, Allocator, nullptr); +# 60| AttributorConfig AC(CGUpdater); +# 61|-> Attributor A(Functions, InfoCache, AC); +# 62| +# 63| Function *F = M.getFunction("foo"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Transforms/IPO/AttributorTest.cpp:155:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/unittests/Transforms/IPO/AttributorTest.cpp:157:3: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 155| AttributorConfig AC(CGUpdater); +# 156| AC.DeleteFns = false; +# 157|-> Attributor A(Functions, InfoCache, AC); +# 158| +# 159| Function &F1 = *M.getFunction("func1"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Transforms/IPO/AttributorTest.cpp:155:3: var_decl: Declaring variable "AC". +llvm-project-19.0.0.src/llvm/unittests/Transforms/IPO/AttributorTest.cpp:157:3: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 155| AttributorConfig AC(CGUpdater); +# 156| AC.DeleteFns = false; +# 157|-> Attributor A(Functions, InfoCache, AC); +# 158| +# 159| Function &F1 = *M.getFunction("func1"); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/Transforms/Utils/FunctionComparatorTest.cpp:99:5: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2.)". +llvm-project-19.0.0.src/llvm/unittests/Transforms/Utils/FunctionComparatorTest.cpp:99:5: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 97| int testCmpPrimitives() { +# 98| beginCompare(); +# 99|-> return +# 100| cmpNumbers(2, 3) + +# 101| cmpAPInts(APInt(32, 2), APInt(32, 3)) + + +Error: USE_AFTER_MOVE (CWE-457): +llvm-project-19.0.0.src/llvm/unittests/XRay/ProfileTest.cpp:95:3: move: "P0" is moved (indicated by "std::move(P0)"). +llvm-project-19.0.0.src/llvm/unittests/XRay/ProfileTest.cpp:109:3: use_after_move: "P0" is used after it has been already moved. +# 107| Field(&Profile::Data::CumulativeLocalTime, +# 108| Eq(100u))))))))); +# 109|-> EXPECT_THAT(P0, UnorderedElementsAre()); +# 110| } +# 111| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-project-19.0.0.src/llvm/utils/TableGen/CodeGenMapTable.cpp:545:11: underflow: The decrement operator on the unsigned variable "j" might result in an underflow. +llvm-project-19.0.0.src/llvm/utils/TableGen/CodeGenMapTable.cpp:543:9: overflow_sink: "j", which might have underflowed, is passed to "FieldValues[j]". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 541| Init *CurVal = FieldValues[i]; +# 542| for (unsigned j = i + 1; j < FieldValues.size(); j++) { +# 543|-> if (CurVal == FieldValues[j]) { +# 544| FieldValues.erase(FieldValues.begin() + j); +# 545| --j; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/CodeGenRegisters.cpp:502:7: var_decl: Declaring variable "Parts". +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/CodeGenRegisters.cpp:526:7: uninit_use_in_call: Using uninitialized value "Parts". Field "Parts.InlineElts" is uninitialized when calling "getConcatSubRegIndex". +# 524| // Each part of Cand is a sub-register of this. Make the full Cand also +# 525| // a sub-register with a concatenated sub-register index. +# 526|-> CodeGenSubRegIndex *Concat = +# 527| RegBank.getConcatSubRegIndex(Parts, RegBank.getHwModes()); +# 528| std::pair NewSubReg = + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/DAGISelMatcher.cpp:44:3: alloc_fn: Storage is returned from allocation function "takeNext". +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/DAGISelMatcher.cpp:44:3: leaked_storage: Ignoring storage allocated by "Cur->takeNext()" leaks it. +# 42| if (!Cur) +# 43| return nullptr; +# 44|-> Cur->takeNext(); +# 45| Cur->setNext(Other->takeNext()); +# 46| return this; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-project-19.0.0.src/llvm/utils/TableGen/Common/GlobalISel/MatchDataInfo.cpp:19:37: destructor_uses_global_object: The destructor of global object "llvm::gi::AllMatchDataVars[abi:cxx11]" itself makes use of global object "fuzzer::TPC" defined in another compilation unit. The order of destruction is unspecified, so the destructor of "llvm::gi::AllMatchDataVars[abi:cxx11]" might be called after "fuzzer::TPC" has already been destroyed. +# 17| namespace gi { +# 18| +# 19|-> StringMap> AllMatchDataVars; +# 20| +# 21| StringRef MatchDataInfo::getVariableName() const { + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/utils/TableGen/DFAEmitter.cpp:61:5: var_decl: Declaring variable "NewStates". +llvm-project-19.0.0.src/llvm/utils/TableGen/DFAEmitter.cpp:83:5: uninit_use_in_call: Using uninitialized value "NewStates". Field "NewStates.InlineElts" is uninitialized when calling "insert". +# 81| sort(TI); +# 82| TI.erase(std::unique(TI.begin(), TI.end()), TI.end()); +# 83|-> unsigned ToId = DfaStates.insert(NewStates); +# 84| DfaTransitions.emplace(std::pair(FromId, A), std::pair(ToId, TI)); +# 85| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/utils/TableGen/DFAPacketizerEmitter.cpp:178:3: var_decl: Declaring variable "Resources". +llvm-project-19.0.0.src/llvm/utils/TableGen/DFAPacketizerEmitter.cpp:188:3: uninit_use: Using uninitialized value "Resources". Field "Resources.InlineElts" is uninitialized. +# 186| Resources.push_back(StageResources); +# 187| } +# 188|-> return Resources; +# 189| } +# 190| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/utils/TableGen/FastISelEmitter.cpp:163:5: var_decl: Declaring variable "Result". +llvm-project-19.0.0.src/llvm/utils/TableGen/FastISelEmitter.cpp:169:5: uninit_use: Using uninitialized value "Result". Field "Result.Operands.InlineElts" is uninitialized. +# 167| else +# 168| Result.Operands.push_back(OpKind::getImm(0)); +# 169|-> return Result; +# 170| } +# 171| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/utils/TableGen/X86DisassemblerTables.cpp:845:5: var_decl: Declaring variable "OperandList". +llvm-project-19.0.0.src/llvm/utils/TableGen/X86DisassemblerTables.cpp:852:5: uninit_use_in_call: Using uninitialized value "OperandList". Field "OperandList.InlineElts" is uninitialized when calling "operator []". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 850| OperandList.push_back(std::pair(Encoding, Type)); +# 851| } +# 852|-> unsigned &N = OperandSets[OperandList]; +# 853| if (N != 0) +# 854| continue; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/llvm/utils/TableGen/X86DisassemblerTables.cpp:878:5: var_decl: Declaring variable "OperandList". +llvm-project-19.0.0.src/llvm/utils/TableGen/X86DisassemblerTables.cpp:884:5: uninit_use_in_call: Using uninitialized value "OperandList". Field "OperandList.InlineElts" is uninitialized when calling "operator []". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 882| OperandList.push_back(std::pair(Encoding, Type)); +# 883| } +# 884|-> o.indent(i * 2) << (OperandSets[OperandList] - 1) << ",\n"; +# 885| +# 886| o.indent(i * 2) << "/* " << InstructionSpecifiers[index].name << " */\n"; + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:512:5: var_decl: Declaring variable "SymbolType" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:532:5: uninit_use: Using uninitialized value "SymbolType". +# 530| +# 531| // Make sure it is a kernel symbol. +# 532|-> if (SymbolType != HSA_SYMBOL_KIND_KERNEL) +# 533| return Plugin::error("Symbol %s is not a kernel function"); +# 534| + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:2792:5: var_decl: Declaring variable "AMDGPUKernel". +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:2799:5: uninit_use_in_call: Using uninitialized value "AMDGPUKernel.ArgsSize" when calling "launchImpl". +# 2797| +# 2798| KernelArgsTy KernelArgs = {}; +# 2799|-> if (auto Err = AMDGPUKernel.launchImpl(*this, /*NumThread=*/1u, +# 2800| /*NumBlocks=*/1ul, KernelArgs, +# 2801| /*Args=*/nullptr, AsyncInfoWrapper)) + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3014:5: var_decl: Declaring variable "SymbolSize" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3030:5: uninit_use: Using uninitialized value "SymbolSize". +# 3028| +# 3029| // Check the size of the symbol. +# 3030|-> if (SymbolSize != DeviceGlobal.getSize()) +# 3031| return Plugin::error( +# 3032| "Failed to load global '%s' due to size mismatch (%zu != %zu)", + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3013:5: var_decl: Declaring variable "SymbolAddr" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/src/rtl.cpp:3037:5: uninit_use_in_call: Using uninitialized value "reinterpret_cast(SymbolAddr)" when calling "setPtr". +# 3035| +# 3036| // Store the symbol address on the device global metadata. +# 3037|-> DeviceGlobal.setPtr(reinterpret_cast(SymbolAddr)); +# 3038| +# 3039| return Plugin::success(); + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h:241:5: var_decl: Declaring variable "KernelData" without initializer. +llvm-project-19.0.0.src/offload/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h:248:5: uninit_use_in_call: Using uninitialized value "KernelData". Field "KernelData.KernelObject" is uninitialized when calling "pair". +# 246| return Err; +# 247| +# 248|-> KernelInfoMap.insert({KernelName, KernelData}); +# 249| return Error::success(); +# 250| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:139:3: identity_transfer: Passing "4294967295U" as argument 2 to constructor for class "GlobalTy", which sets "ImageGlobal.Size" to that argument. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: identity_transfer: Member function call "ImageGlobal.getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: cond_const: Checking "ImageGlobal.getSize() != HostGlobal->getSize()" implies that "HostGlobal->getSize()" and "HostGlobal.Size" are 4294967295 on the false branch. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: identity_transfer: Member function call "HostGlobal->getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: overrun-buffer-arg: Calling "memcpy" with "HostGlobal->getPtr()" and "HostGlobal->getSize()" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 158| +# 159| // Perform the copy from the image to the host memory. +# 160|-> std::memcpy(HostGlobal.getPtr(), ImageGlobal.getPtr(), HostGlobal.getSize()); +# 161| +# 162| return Plugin::success(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:139:3: identity_transfer: Passing "4294967295U" as argument 2 to constructor for class "GlobalTy", which sets "ImageGlobal.Size" to that argument. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: identity_transfer: Member function call "ImageGlobal.getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:143:3: cond_const: Checking "ImageGlobal.getSize() != HostGlobal->getSize()" implies that "HostGlobal->getSize()" and "HostGlobal.Size" are 4294967295 on the false branch. +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: identity_transfer: Member function call "HostGlobal->getSize()" returns field "Size". +llvm-project-19.0.0.src/offload/plugins-nextgen/common/src/GlobalHandler.cpp:160:3: overrun-buffer-arg: Calling "memcpy" with "ImageGlobal.getPtr()" and "HostGlobal->getSize()" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 158| +# 159| // Perform the copy from the image to the host memory. +# 160|-> std::memcpy(HostGlobal.getPtr(), ImageGlobal.getPtr(), HostGlobal.getSize()); +# 161| +# 162| return Plugin::success(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:185:5: alloc_fn: Storage is returned from allocation function "fdopen". +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:185:5: var_assign: Assigning: "TmpFile" = storage returned from "fdopen(TmpFileFd, "wb")". +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:191:5: noescape: Resource "TmpFile" is not freed or pointed-to in "fwrite". +llvm-project-19.0.0.src/offload/plugins-nextgen/host/src/rtl.cpp:193:7: leaked_storage: Variable "TmpFile" going out of scope leaks the storage it points to. +# 191| size_t Written = fwrite(Image->getStart(), Image->getSize(), 1, TmpFile); +# 192| if (Written != 1) +# 193|-> return Plugin::error("Failed to write target image to tmpfile %s", +# 194| TmpFileName); +# 195| + +Error: BAD_FREE (CWE-763): +llvm-project-19.0.0.src/offload/src/OpenMP/Mapping.cpp:104:3: address: Taking address of "*It->HDTT". +llvm-project-19.0.0.src/offload/src/OpenMP/Mapping.cpp:104:3: assign: Assigning: "HDTT" = "*It->HDTT". +llvm-project-19.0.0.src/offload/src/OpenMP/Mapping.cpp:119:5: incorrect_free: "operator delete" frees incorrect pointer "HDTT". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 117| DP("Association found, removing it\n"); +# 118| void *Event = HDTT.getEvent(); +# 119|-> delete &HDTT; +# 120| if (Event) +# 121| Device.destroyEvent(Event); + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: var_assign: Assigning: "PostProcessingPtrs" = storage returned from "new llvm::SmallVector<::PostProcessingInfo, 1u>". +llvm-project-19.0.0.src/offload/src/omptarget.cpp:867:9: leaked_storage: Variable "PostProcessingPtrs" going out of scope leaks the storage it points to. +# 865| REPORT("Call to targetDataEnd via targetDataMapper for custom mapper" +# 866| " failed.\n"); +# 867|-> return OFFLOAD_FAIL; +# 868| } +# 869| + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: alloc_fn: Storage is returned from allocation function "operator new". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-project-19.0.0.src/offload/src/omptarget.cpp:844:3: var_assign: Assigning: "PostProcessingPtrs" = storage returned from "new llvm::SmallVector<::PostProcessingInfo, 1u>". +llvm-project-19.0.0.src/offload/src/omptarget.cpp:912:9: leaked_storage: Variable "PostProcessingPtrs" going out of scope leaks the storage it points to. +# 910| "not exist for host address " DPxMOD " (%" PRId64 " bytes)", +# 911| DPxPTR(HstPtrBegin), DataSize); +# 912|-> return OFFLOAD_FAIL; +# 913| } +# 914| } else { + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:112:3: address_of: Taking address with "&KernelEntry" yields a singleton pointer. +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:112:3: ptr_arith: Using "&KernelEntry" as an array. This might corrupt or misinterpret adjacent memory locations. +# 110| DeviceImage.ImageEnd = const_cast(ImageMB.get()->getBufferEnd()); +# 111| DeviceImage.EntriesBegin = &KernelEntry; +# 112|-> DeviceImage.EntriesEnd = &KernelEntry + 1; +# 113| +# 114| __tgt_bin_desc Desc; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:117:3: address_of: Taking address with "&KernelEntry" yields a singleton pointer. +llvm-project-19.0.0.src/offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp:117:3: ptr_arith: Using "&KernelEntry" as an array. This might corrupt or misinterpret adjacent memory locations. +# 115| Desc.NumDeviceImages = 1; +# 116| Desc.HostEntriesBegin = &KernelEntry; +# 117|-> Desc.HostEntriesEnd = &KernelEntry + 1; +# 118| Desc.DeviceImages = &DeviceImage; +# 119| + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: equal: The address of "*((int8_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: overlapping_assignment: Assigning "*((int8_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: target_type: "buf" has type "int". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:238:7: source_type: "*((int8_t *)buf)" has type "signed char". +# 236| switch (baseTypeSize) { +# 237| case 1: +# 238|-> buf = (T) * ((int8_t *)&buf); +# 239| break; +# 240| case 2: + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: equal: The address of "*((int16_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: overlapping_assignment: Assigning "*((int16_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: target_type: "buf" has type "signed char". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:241:7: source_type: "*((int16_t *)buf)" has type "short". +# 239| break; +# 240| case 2: +# 241|-> buf = (T) * ((int16_t *)&buf); +# 242| break; +# 243| case 4: + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: equal: The address of "*((int32_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: overlapping_assignment: Assigning "*((int32_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: target_type: "buf" has type "signed char". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:244:7: source_type: "*((int32_t *)buf)" has type "int". +# 242| break; +# 243| case 4: +# 244|-> buf = (T) * ((int32_t *)&buf); +# 245| break; +# 246| case 8: + +Error: OVERLAPPING_COPY: +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: equal: The address of "buf" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: equal: The address of "*((int64_t *)buf)" is equal to "buf". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: overlapping_assignment: Assigning "*((int64_t *)buf)" to "buf", which have overlapping memory locations and different types. +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: target_type: "buf" has type "signed char". +llvm-project-19.0.0.src/openmp/libompd/src/TargetValue.h:247:7: source_type: "*((int64_t *)buf)" has type "long". +# 245| break; +# 246| case 8: +# 247|-> buf = (T) * ((int64_t *)&buf); +# 248| break; +# 249| } + +Error: UNINIT (CWE-457): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_affinity.cpp:4718:3: var_decl: Declaring variable "numUnique" without initializer. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_affinity.cpp:4750:5: uninit_use: Using uninitialized value "numUnique". +# 4748| } +# 4749| if (affinity.gran_levels == 0) { +# 4750|-> KMP_DEBUG_ASSERT((int)numUnique == __kmp_avail_proc); +# 4751| } +# 4752| + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:442:5: assignment: Assigning: "size" = "16L". +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:445:3: assignment: Assigning: "size" = "size + 7L & 0xfffffffffffffff8L". The value of "size" is now 16. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:448:3: assignment: Assigning: "size" += "32UL". The value of "size" is now 48. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:461:5: cond_at_most: Checking "bin < 20" implies that "bin" may be up to 19 on the true branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:467:9: alias: Assigning: "best" = "&thr->freelist[bin]". "best" may now point to as high as element 19 of "thr->freelist" (which consists of 20 48-byte elements). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:482:9: alias: Assigning: "b" = "best". "b" may now point to as high as element 19 of "thr->freelist" (which consists of 20 48-byte elements). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:495:11: cond_between: Checking "b->bh.bb.bsize - (bufsize)size > 48L" implies that "b->bh.bb.bsize" is between 48 and 96 (inclusive) on the false branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:532:13: alias: Assigning: "ba" = "(char *)b + b->bh.bb.bsize". "ba" may now point to as high as byte 1008 of "thr->freelist" (which consists of 960 bytes). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_alloc.cpp:534:13: overrun-local: Overrunning array of 960 bytes at byte offset 1008 by dereferencing pointer "ba". +# 532| ba = BH(((char *)b) + b->bh.bb.bsize); +# 533| +# 534|-> KMP_DEBUG_ASSERT(ba->bb.prevfree == b->bh.bb.bsize); +# 535| +# 536| /* The buffer isn't big enough to split. Give the whole + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_barrier.cpp:1665:11: overrun-buffer-arg: Overrunning struct type kmp_internal_control_t of 56 bytes by passing it to a function which accesses it at byte offset 63 using argument "64UL". +# 1663| // Use ngo store (if available) to both store ICVs and release child +# 1664| // via child's b_go +# 1665|-> ngo_store_go(&child_bar->th_fixed_icvs, &thr_bar->th_fixed_icvs); +# 1666| } +# 1667| ngo_sync(); + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:1545:3: assignment: Assigning: "lockseq" = "__kmp_map_hint_to_lock(hint)". The value of "lockseq" is now between 0 and 14 (inclusive). +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:1547:5: cond_const: Checking "lockseq >= lockseq_tas" implies that "lockseq" is 0 on the false branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:1552:7: overrun-call: Overrunning callee's array of size 10 by passing argument "(kmp_indirect_locktag_t)(lockseq - lockseq_ticket)" (which evaluates to 4294967291) in call to "__kmp_init_indirect_csptr". +# 1550| KMP_GET_D_TAG(lockseq)); +# 1551| } else { +# 1552|-> __kmp_init_indirect_csptr(crit, loc, global_tid, KMP_GET_I_TAG(lockseq)); +# 1553| } +# 1554| } + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:3444:5: cond_const: Checking "__kmp_user_lock_seq >= lockseq_tas" implies that "__kmp_user_lock_seq" is 0 on the false branch. +llvm-project-19.0.0.src/openmp/runtime/src/kmp_csupport.cpp:3448:7: overrun-call: Overrunning callee's array of size 10 by passing argument "(kmp_indirect_locktag_t)(__kmp_user_lock_seq - lockseq_ticket)" (which evaluates to 4294967291) in call to "__kmp_init_indirect_csptr". +# 3446| KMP_GET_D_TAG(__kmp_user_lock_seq)); +# 3447| } else { +# 3448|-> __kmp_init_indirect_csptr(crit, loc, global_tid, +# 3449| KMP_GET_I_TAG(__kmp_user_lock_seq)); +# 3450| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: alloc_fn: Storage is returned from allocation function "dlopen". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: var_assign: Assigning: "h" = storage returned from "dlopen(fname, 1)". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:368:7: noescape: Resource "h" is not freed or pointed-to in "dlsym". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:377:11: leaked_storage: Variable "h" going out of scope leaks the storage it points to. +# 375| OMPT_VERBOSE_INIT_PRINT( +# 376| "----- END LOGGING OF TOOL REGISTRATION -----\n"); +# 377|-> return ret; +# 378| } +# 379| OMPT_VERBOSE_INIT_CONTINUED_PRINT( + +Error: RESOURCE_LEAK (CWE-772): +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: alloc_fn: Storage is returned from allocation function "dlopen". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:364:5: var_assign: Assigning: "h" = storage returned from "dlopen(fname, 1)". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:368:7: noescape: Resource "h" is not freed or pointed-to in "dlsym". +llvm-project-19.0.0.src/openmp/runtime/src/ompt-general.cpp:385:3: leaked_storage: Variable "h" going out of scope leaks the storage it points to. +# 383| } +# 384| } +# 385|-> } +# 386| #endif +# 387| OMPT_VERBOSE_INIT_PRINT("No OMP tool loaded.\n"); + +Error: LOCK_EVASION (CWE-543): +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: thread1_checks_field: Thread1 uses the value read from field "api_initialized" in the condition "__kmp_itt__ittapi_global.api_initialized". It sees that the condition is true. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1283:5: thread1_acquires_lock: Thread1 acquires lock "___itt_global.mutex". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1284:9: thread1_double_checks_field: Thread1 double checks the field "api_initialized" in the condition "__kmp_itt__ittapi_global.api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1303:9: thread1_modifies_field: Thread1 modifies the field "api_initialized". "api_initialized" is of type "long", a scalar type whose values cannot be accessed atomically. This modification will be split into multiple writes which can complete at different times and can be re-ordered independently. Also, these modifications can be re-ordered with other correlated field assignments within this critical section at runtime. Thus, checking the value of "api_initialized" is not an adequate test that the critical section has completed unless t [...] +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: thread2_checks_field_early: Thread2 checks "api_initialized", reading it after Thread1 assigns to "api_initialized" but before some of the correlated field assignments can occur. It sees the condition "__kmp_itt__ittapi_global.api_initialized" as being false. It continues on before the critical section has completed, and can read data changed by that critical section while it is in an inconsistent state. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: remove_unlocked_check: Remove this outer, unlocked check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1283:5: correlated_field: The modification of "mutex_initialized" can race with the unguarded check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1304:9: code_after_assignment: Any code run after the execution of "__kmp_itt__ittapi_global.api_initialized = 0L;" may not necessarily run when a second thread reaches "if (__kmp_itt__ittapi_global.api_initialized)". +# 1280| static volatile TIDT current_thread = 0; +# 1281| +# 1282|-> if (_N_(_ittapi_global).api_initialized) { +# 1283| ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); +# 1284| if (_N_(_ittapi_global).api_initialized) { +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1282:7: note: trimmed 1 message(s) with length over 512 + +Error: LOCK_EVASION (CWE-543): +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: thread1_checks_field: Thread1 uses the value read from field "api_initialized" in the condition "!__kmp_itt__ittapi_global.api_initialized". It sees that the condition is true. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1376:5: thread1_acquires_lock: Thread1 acquires lock "___itt_global.mutex". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1379:9: thread1_double_checks_field: Thread1 double checks the field "api_initialized" in the condition "!__kmp_itt__ittapi_global.api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1478:9: thread1_modifies_field: Thread1 modifies the field "api_initialized". "api_initialized" is of type "long", a scalar type whose values cannot be accessed atomically. This modification will be split into multiple writes which can complete at different times and can be re-ordered independently. Also, these modifications can be re-ordered with other correlated field assignments within this critical section at runtime. Thus, checking the value of "api_initialized" is not an adequate test that the critical section has completed unless t [...] +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: thread2_checks_field_early: Thread2 checks "api_initialized", reading it after Thread1 assigns to "api_initialized" but before some of the correlated field assignments can occur. It sees the condition "!__kmp_itt__ittapi_global.api_initialized" as being false. It continues on before the critical section has completed, and can read data changed by that critical section while it is in an inconsistent state. +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: remove_unlocked_check: Remove this outer, unlocked check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1376:5: correlated_field: The modification of "mutex_initialized" can race with the unguarded check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1388:11: correlated_field: The modification of "lib" can race with the unguarded check of "api_initialized". +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1431:17: correlated_field: The modification of "__kmp_itt_thread_ignore_ptr__3_0" can race with the unguarded check of "api_initialized". +# 1372| static volatile TIDT current_thread = 0; +# 1373| +# 1374|-> if (!_N_(_ittapi_global).api_initialized) { +# 1375| #ifndef ITT_SIMPLE_INIT +# 1376| ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); +llvm-project-19.0.0.src/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp:1374:7: note: trimmed 1 message(s) with length over 512 + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/third-party/unittest/googlemock/src/gmock.cc:220:3: alias: Assigning: "argv" = "&argv0". "argv" now points to element 0 of "argv0" (which consists of 1 8-byte elements). +llvm-project-19.0.0.src/third-party/unittest/googlemock/src/gmock.cc:222:3: overrun-buffer-val: Overrunning buffer pointed to by "argv" of 1 8-byte elements by passing it to a function which accesses it at element index 2 (byte offset 23). +# 220| char** argv = &argv0; +# 221| +# 222|-> internal::InitGoogleMockImpl(&argc, argv); +# 223| } +# 224| + +Error: CTOR_DTOR_LEAK (CWE-401): +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1035:46: alloc_fn: Calling allocation function "dup". +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1035:46: assign: Assigning: "this->uncaptured_fd_" = "dup(fd)". +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1035:46: ctor_dtor_leak: The constructor allocates field "uncaptured_fd_" of "testing::internal::CapturedStream" but the destructor and whatever functions it calls do not free it. +# 1033| public: +# 1034| // The ctor redirects the stream to a temporary file. +# 1035|-> explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { +# 1036| #ifdef GTEST_OS_WINDOWS +# 1037| char temp_dir_path[MAX_PATH + 1] = {'\0'}; // NOLINT + +Error: OVERRUN (CWE-119): +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1206:3: return_constant: Function call "testing::internal::GetFileSize(file)" may return 18446744073709551615. +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1206:3: assignment: Assigning: "file_size" = "testing::internal::GetFileSize(file)". The value of "file_size" is now 18446744073709551615. +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1220:57: cond_at_least: Checking "bytes_read < file_size" implies that "bytes_read" is at least 18446744073709551615 on the false branch. +llvm-project-19.0.0.src/third-party/unittest/googletest/src/gtest-port.cc:1222:3: overrun-buffer-arg: Calling "basic_string" with "buffer" and "bytes_read" is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned. [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1220| } while (bytes_last_read > 0 && bytes_read < file_size); +# 1221| +# 1222|-> const std::string content(buffer, bytes_read); +# 1223| delete[] buffer; +# 1224| + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/clang/lib/Basic/Targets/ARM.cpp:1191:7: identical_branches: The same code is executed regardless of whether "!this->supportsThumb2()" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 1189| case 'K': +# 1190| if (isThumb()) { +# 1191|-> if (!supportsThumb2()) +# 1192| // FIXME: should check if immediate value can be obtained from shifting +# 1193| // a value between 0 and 255 left by any amount + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/clang/lib/Basic/Targets/ARM.cpp:1218:5: identical_branches: The same code is executed regardless of whether "this->isThumb() && !this->supportsThumb2()" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 1216| return true; +# 1217| case 'M': +# 1218|-> if (isThumb() && !supportsThumb2()) +# 1219| // FIXME: should check if immediate value is a multiple of 4 between 0 and +# 1220| // 1020 + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/CodeGen/ItaniumCXXABI.cpp:4071:18: original: "VMI_NonDiamondRepeat" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/CodeGen/ItaniumCXXABI.cpp:4061:18: copy_paste_error: "VMI_NonDiamondRepeat" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/CodeGen/ItaniumCXXABI.cpp:4061:18: remediation: Should it say "VMI_DiamondShaped" instead? +# 4059| } else { +# 4060| if (Bases.NonVirtualBases.count(BaseDecl)) +# 4061|-> Flags |= ItaniumRTTIBuilder::VMI_NonDiamondRepeat; +# 4062| } +# 4063| } else { + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-project-19.0.0.src/clang/lib/Parse/ParseTentative.cpp:1970:7: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-project-19.0.0.src/clang/lib/Parse/ParseTentative.cpp:1977:12: do_while_false_condition: This loop will never continue since the condition "false" is never true. +# 1968| if (Tok.is(tok::comma)) { +# 1969| ConsumeToken(); +# 1970|-> continue; +# 1971| } +# 1972| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:7144:32: original: "MD->isDeleted()" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:7158:32: copy_paste_error: "isDeleted" in "MD->isDeleted()" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/Sema/SemaDeclCXX.cpp:7158:32: remediation: Should it say "isConsteval" instead? +# 7156| return MD->isConsteval() != V->isConsteval(); +# 7157| })) { +# 7158|-> if (MD->isDefaulted() && MD->isDeleted()) +# 7159| // Explain why this defaulted function was deleted. +# 7160| DiagnoseDeletedDefaultedFunction(MD); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:7704:14: original: "CK_IntegralCast" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:7670:14: copy_paste_error: "CK_IntegralCast" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/Sema/SemaExpr.cpp:7670:14: remediation: Should it say "CK_FloatingCast" instead? +# 7668| diag::err_unimplemented_conversion_with_fixed_point_type) +# 7669| << SrcTy; +# 7670|-> return CK_IntegralCast; +# 7671| } +# 7672| llvm_unreachable("Should have returned before this"); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/lib/Sema/SemaObjCProperty.cpp:674:20: original: "kind_unsafe_unretained" looks like the original copy. +llvm-project-19.0.0.src/clang/lib/Sema/SemaObjCProperty.cpp:687:20: copy_paste_error: "kind_unsafe_unretained" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/lib/Sema/SemaObjCProperty.cpp:687:20: remediation: Should it say "kind_assign" instead? +# 685| +# 686| // 'unsafe_unretained' is alias for 'assign'. +# 687|-> if (Attributes & ObjCPropertyAttribute::kind_unsafe_unretained) +# 688| PDecl->setPropertyAttributes(ObjCPropertyAttribute::kind_assign); +# 689| if (isAssign) + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/tools/libclang/CIndexHigh.cpp:446:51: original: "clang::cxcursor::getCursorTU(cursor)" looks like the original copy. +llvm-project-19.0.0.src/clang/tools/libclang/CIndexHigh.cpp:471:46: copy_paste_error: "cursor" in "clang::cxcursor::getCursorTU(cursor)" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/tools/libclang/CIndexHigh.cpp:471:46: remediation: Should it say "refCursor" instead? +# 469| } +# 470| +# 471|-> if (findIdRefsInFile(cxcursor::getCursorTU(cursor), +# 472| refCursor, +# 473| *cxfile::getFileEntryRef(file), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/clang/tools/scan-build-py/lib/libear/__init__.py:140:17: identical_branches: Ternary expression on condition "release" has identical then and else expressions: "{}". Should one of the expressions be modified, or the entire ternary expression replaced? +# 138| +# 139| def shared_library_ld_flags(self, release, name): +# 140|-> extra = [] if release else [] +# 141| return extra + ["-shared", "-Wl,-soname," + name] +# 142| + +Error: IDENTIFIER_TYPO (CWE-688): +llvm-project-19.0.0.src/clang/utils/ClangDataFormat.py:124:9: identifier_typo: Using "getTypename" appears to be a typo: +* Identifier "getTypename" is only known to be referenced here, or in copies of this code. +* Identifier "getTypeName" is referenced elsewhere at least 17 times. +llvm-project-19.0.0.src/clang/utils/ClangDataFormat.py:124:9: remediation: Should identifier "getTypename" be replaced by "getTypeName"? +llvm-project-19.0.0.src/clang/utils/ABITest/ABITestGen.py:220:20: identifier_use: Example 2: Using identifier "getTypeName". +llvm-project-19.0.0.src/clang/utils/ABITest/TypeGen.py:160:23: identifier_use: Example 3: Using identifier "getTypeName". +llvm-project-19.0.0.src/clang/utils/ABITest/TypeGen.py:53:9: identifier_use: Example 5: Using identifier "getTypeName". +# 122| def getTypename(value): +# 123| # FIXME: lldb should provide something like getBaseType +# 124|-> ty = value.GetType() +# 125| if ty.IsPointerType() or ty.IsReferenceType(): +# 126| return ty.GetPointeeType().GetName() + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/clang/utils/update_options_td_flags.py:35:68: original: "m.end" looks like the original copy. +llvm-project-19.0.0.src/clang/utils/update_options_td_flags.py:41:69: copy_paste_error: "end" in "m.end" looks like a copy-paste error. +llvm-project-19.0.0.src/clang/utils/update_options_td_flags.py:41:69: remediation: Should it say "start" instead? +# 39| m = re.search(r'let Flags = \[([A-Za-z0-9, ]*)\]', line) +# 40| if m: +# 41|-> return process_letflags(m.group(1), line[:m.start(1)], line[m.end():]) +# 42| +# 43| return [line] + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/compiler-rt/lib/builtins/udivmoddi4.c:44:26: original: "d.s.low" looks like the original copy. +llvm-project-19.0.0.src/compiler-rt/lib/builtins/udivmoddi4.c:61:27: copy_paste_error: "low" in "d.s.low" looks like a copy-paste error. +llvm-project-19.0.0.src/compiler-rt/lib/builtins/udivmoddi4.c:61:27: remediation: Should it say "high" instead? +# 59| // 0 0 +# 60| if (rem) +# 61|-> *rem = n.s.high % d.s.low; +# 62| return n.s.high / d.s.low; +# 63| } + +Error: IDENTIFIER_TYPO (CWE-688): +llvm-project-19.0.0.src/cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/control.py:331:22: identifier_typo: Using "WaitforEvent" appears to be a typo: +* Identifier "WaitforEvent" is only known to be referenced here, or in copies of this code. +* Identifier "WaitForEvent" is referenced elsewhere at least 10 times. +llvm-project-19.0.0.src/cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/control.py:331:22: remediation: Should identifier "WaitforEvent" be replaced by "WaitForEvent"? +llvm-project-19.0.0.src/cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/setup.py:93:11: identifier_use: Example 2: Using identifier "WaitForEvent" (2 total uses in this function). +llvm-project-19.0.0.src/lldb/examples/python/performance.py:201:20: identifier_use: Example 3: Using identifier "WaitForEvent". +llvm-project-19.0.0.src/lldb/examples/python/process_events.py:347:24: identifier_use: Example 4: Using identifier "WaitForEvent". +llvm-project-19.0.0.src/lldb/utils/lui/debuggerdriver.py:117:25: identifier_use: Example 5: Using identifier "WaitForEvent". +# 329| # No flags are taken by WaitForEvent, hence 0 +# 330| ret = self.vt.WaitForEvent(self.control, 0, timeout) +# 331|-> aborter(ret, "WaitforEvent", ignore=[S_FALSE]) +# 332| return ret +# 333| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/lld/wasm/Writer.cpp:455:9: original: "memoryPtr > lld::wasm::config->initialMemory" looks like the original copy. +llvm-project-19.0.0.src/lld/wasm/Writer.cpp:480:9: copy_paste_error: "memoryPtr" in "memoryPtr > lld::wasm::config->maxMemory" looks like a copy-paste error. +llvm-project-19.0.0.src/lld/wasm/Writer.cpp:480:9: remediation: Should it say "maxMemory" instead? +# 478| if (config->maxMemory != alignTo(config->maxMemory, WasmPageSize)) +# 479| error("maximum memory must be " + Twine(WasmPageSize) + "-byte aligned"); +# 480|-> if (memoryPtr > config->maxMemory) +# 481| error("maximum memory too small, " + Twine(memoryPtr) + " bytes needed"); +# 482| if (config->maxMemory > maxMemorySetting) + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/lldb/examples/summaries/cocoa/NSIndexSet.py:48:21: original: "lldb.eBasicTypeUnsignedInt" looks like the original copy. +llvm-project-19.0.0.src/lldb/examples/summaries/cocoa/NSIndexSet.py:41:21: copy_paste_error: "eBasicTypeUnsignedInt" in "lldb.eBasicTypeUnsignedInt" looks like a copy-paste error. +llvm-project-19.0.0.src/lldb/examples/summaries/cocoa/NSIndexSet.py:41:21: remediation: Should it say "eBasicTypeUnsignedLong" instead? +# 39| ) +# 40| self.sys_params.types_cache.uint32 = self.valobj.GetType().GetBasicType( +# 41|-> lldb.eBasicTypeUnsignedInt +# 42| ) +# 43| else: + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SmallVector.h:643:7: identical_branches: The same code is executed regardless of whether "false" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 641| this->reserve(N); +# 642| for (auto I = this->end(), E = this->begin() + N; I != E; ++I) +# 643|-> if (ForOverwrite) +# 644| new (&*I) T; +# 645| else + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/include/llvm/ADT/SmallVector.h:643:7: identical_branches: The same code is executed regardless of whether "true" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 641| this->reserve(N); +# 642| for (auto I = this->end(), E = this->begin() + N; I != E; ++I) +# 643|-> if (ForOverwrite) +# 644| new (&*I) T; +# 645| else + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Analysis/ValueTracking.cpp:5324:14: original: "KnownLHS.isKnownNeverLogicalNegZero(F, Op->getType())" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Analysis/ValueTracking.cpp:5334:14: copy_paste_error: "isKnownNeverLogicalNegZero" in "KnownLHS.isKnownNeverLogicalNegZero(F, Op->getType())" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Analysis/ValueTracking.cpp:5334:14: remediation: Should it say "isKnownNeverLogicalPosZero" instead? +# 5332| +# 5333| // Only fsub -0, +0 can return -0 +# 5334|-> if ((KnownLHS.isKnownNeverLogicalNegZero(*F, Op->getType()) || +# 5335| KnownRHS.isKnownNeverLogicalPosZero(*F, Op->getType())) && +# 5336| // Make sure output negative denormal can't flush to -0 + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3845:26: original: "SUB" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3831:26: copy_paste_error: "SUB" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3831:26: remediation: Should it say "ADD" instead? +# 3829| SDValue N11 = N1.getOperand(1); +# 3830| if (SDValue NewC = DAG.FoldConstantArithmetic(ISD::SUB, DL, VT, {N0, N11})) +# 3831|-> return DAG.getNode(ISD::SUB, DL, VT, NewC, N1.getOperand(0)); +# 3832| } +# 3833| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3914:25: original: "ADD" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3920:25: copy_paste_error: "ADD" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3920:25: remediation: Should it say "SUB" instead? +# 3918| } +# 3919| // y - (x + C) -> (y - x) - C +# 3920|-> if (N1.getOpcode() == ISD::ADD && N1.hasOneUse() && +# 3921| isConstantOrConstantVector(N1.getOperand(1), /*NoOpaques=*/true)) { +# 3922| SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, N1.getOperand(0)); + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18800:7: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18814:12: do_while_false_condition: This loop will never continue since the condition "false" is never true. +#18798| do { +#18799| if (!getTruncatedStoreValue(ST, Val)) +#18800|-> continue; +#18801| if (!isTypeLegal(LDMemType)) +#18802| continue; + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18802:7: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18814:12: do_while_false_condition: This loop will never continue since the condition "false" is never true. +#18800| continue; +#18801| if (!isTypeLegal(LDMemType)) +#18802|-> continue; +#18803| if (STMemType != LDMemType) { +#18804| // TODO: Support vectors? This requires extract_subvector/bitcast. + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18809:9: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18814:12: do_while_false_condition: This loop will never continue since the condition "false" is never true. +#18807| Val = DAG.getNode(ISD::TRUNCATE, SDLoc(LD), LDMemType, Val); +#18808| else +#18809|-> continue; +#18810| } +#18811| if (!extendLoadedValueToExtension(LD, Val)) + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18812:7: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-project-19.0.0.src/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18814:12: do_while_false_condition: This loop will never continue since the condition "false" is never true. +#18810| } +#18811| if (!extendLoadedValueToExtension(LD, Val)) +#18812|-> continue; +#18813| return ReplaceLd(LD, Val, Chain); +#18814| } while (false); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:5198:9: original: "this->SelectMultiVectorMove(Node, 4U, ZAD0, MOVA_4ZMXI_H_D)" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:5156:9: copy_paste_error: "SelectMultiVectorMove" in "this->SelectMultiVectorMove(Node, 2U, ZAD0, MOVA_2ZMXI_H_D)" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:5156:9: remediation: Should it say "SelectMultiVectorMove" instead? +# 5154| return; +# 5155| } else if (VT == MVT::nxv2i64 || VT == MVT::nxv2f64) { +# 5156|-> SelectMultiVectorMove<0, 2>(Node, 2, AArch64::ZAD0, +# 5157| AArch64::MOVA_2ZMXI_H_D); +# 5158| return; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:19245:10: original: "CTVal->isOne() || CFVal->isOne()" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:19247:10: copy_paste_error: "isOne" in "CTVal->isOne() || CFVal->isAllOnes()" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:19247:10: remediation: Should it say "isAllOnes" instead? +#19245| (CTVal->isOne() || CFVal->isOne())) && +#19246| !(LHS.getOpcode() == AArch64ISD::CSNEG && +#19247|-> (CTVal->isOne() || CFVal->isAllOnes()))) +#19248| return SDValue(); +#19249| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:24370:9: original: "LHS" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:24377:9: copy_paste_error: "LHS" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:24377:9: remediation: Should it say "RHS" instead? +#24375| LHS.getOpcode() == ISD::TRUNCATE) { +#24376| TruncHigh = LHS; +#24377|-> if (LHS.getOpcode() == ISD::BITCAST) +#24378| ExtractHigh = RHS.getOperand(0); +#24379| else + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:4318:19: original: "ssub" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:4334:19: copy_paste_error: "ssub" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:4334:19: remediation: Should it say "hsub" instead? +# 4332| } else if (EltSize == 32) { +# 4333| Opc = AArch64::INSvi32lane; +# 4334|-> SubregIdx = AArch64::ssub; +# 4335| } else if (EltSize == 64) { +# 4336| Opc = AArch64::INSvi64lane; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:11667:31: original: "LHS.getOperand(1U)" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:11666:31: copy_paste_error: "LHS" in "RHS.getOperand(0U) == LHS.getOperand(0U)" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIISelLowering.cpp:11666:31: remediation: Should it say "RHS" instead? +#11664| const ConstantSDNode *Mask = dyn_cast(RHS.getOperand(1)); +#11665| if ((LCC == ISD::SETO || LCC == ISD::SETUO) && Mask && +#11666|-> (RHS.getOperand(0) == LHS.getOperand(0) && +#11667| LHS.getOperand(0) == LHS.getOperand(1))) { +#11668| const unsigned OrdMask = SIInstrFlags::S_NAN | SIInstrFlags::Q_NAN; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIModeRegister.cpp:73:21: original: "this->Mask & S.Mask" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIModeRegister.cpp:73:52: copy_paste_error: "Mask" in "this->Mode & S.Mask" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/AMDGPU/SIModeRegister.cpp:73:52: remediation: Should it say "Mode" instead? +# 71| +# 72| bool isCompatible(Status &S) { +# 73|-> return ((Mask & S.Mask) == S.Mask) && ((Mode & S.Mask) == S.Mode); +# 74| } +# 75| + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5808:22: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "4". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5806| +# 5807| OutlinerCosts(const ARMSubtarget &target) +# 5808|-> : CallTailCall(target.isThumb() ? 4 : 4), +# 5809| FrameTailCall(target.isThumb() ? 0 : 0), +# 5810| CallThunk(target.isThumb() ? 4 : 4), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5809:23: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "0". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5807| OutlinerCosts(const ARMSubtarget &target) +# 5808| : CallTailCall(target.isThumb() ? 4 : 4), +# 5809|-> FrameTailCall(target.isThumb() ? 0 : 0), +# 5810| CallThunk(target.isThumb() ? 4 : 4), +# 5811| FrameThunk(target.isThumb() ? 0 : 0), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5810:19: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "4". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5808| : CallTailCall(target.isThumb() ? 4 : 4), +# 5809| FrameTailCall(target.isThumb() ? 0 : 0), +# 5810|-> CallThunk(target.isThumb() ? 4 : 4), +# 5811| FrameThunk(target.isThumb() ? 0 : 0), +# 5812| CallNoLRSave(target.isThumb() ? 4 : 4), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5811:20: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "0". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5809| FrameTailCall(target.isThumb() ? 0 : 0), +# 5810| CallThunk(target.isThumb() ? 4 : 4), +# 5811|-> FrameThunk(target.isThumb() ? 0 : 0), +# 5812| CallNoLRSave(target.isThumb() ? 4 : 4), +# 5813| FrameNoLRSave(target.isThumb() ? 2 : 4), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5812:22: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "4". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5810| CallThunk(target.isThumb() ? 4 : 4), +# 5811| FrameThunk(target.isThumb() ? 0 : 0), +# 5812|-> CallNoLRSave(target.isThumb() ? 4 : 4), +# 5813| FrameNoLRSave(target.isThumb() ? 2 : 4), +# 5814| CallRegSave(target.isThumb() ? 8 : 12), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:5818:30: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "8". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5816| CallDefault(target.isThumb() ? 8 : 12), +# 5817| FrameDefault(target.isThumb() ? 2 : 4), +# 5818|-> SaveRestoreLROnStack(target.isThumb() ? 8 : 8) {} +# 5819| }; +# 5820| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6315:7: original: "MI->readsRegister(llvm::Register(LR), TRI)" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6413:7: copy_paste_error: "readsRegister" in "MI->readsRegister(llvm::Register(ITSTATE), TRI)" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp:6413:7: remediation: Should it say "modifiesRegister" instead? +# 6411| +# 6412| // Be conservative with IT blocks. +# 6413|-> if (MI.readsRegister(ARM::ITSTATE, TRI) || +# 6414| MI.modifiesRegister(ARM::ITSTATE, TRI)) +# 6415| return outliner::InstrType::Illegal; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelLowering.cpp:14978:7: original: "llvm::isNullConstant(CSInc.getOperand(1U))" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelLowering.cpp:14983:7: copy_paste_error: "isNullConstant" in "llvm::isNullConstant(CSInc.getOperand(1U))" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/ARM/ARMISelLowering.cpp:14983:7: remediation: Should it say "isOneConstant" instead? +#14981| } +#14982| if (CSInc.getOpcode() == ARMISD::CMOV && isOneConstant(CSInc.getOperand(0)) && +#14983|-> isNullConstant(CSInc.getOperand(1)) && CSInc->hasOneUse()) { +#14984| CC = (ARMCC::CondCodes)CSInc.getConstantOperandVal(2); +#14985| return CSInc.getOperand(4); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:10139:7: original: "VecVT" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:10109:9: copy_paste_error: "VecVT" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:10109:9: remediation: Should it say "ContainerVT" instead? +#10107| if (SubVecVT.isFixedLengthVector() && !VLen) { +#10108| MVT ContainerVT = VecVT; +#10109|-> if (VecVT.isFixedLengthVector()) { +#10110| ContainerVT = getContainerForFixedLengthVector(VecVT); +#10111| Vec = convertToScalableVector(ContainerVT, Vec, DAG, Subtarget); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp:2435:30: original: "this->replaceOperand(II, 0U, X)" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp:2427:30: copy_paste_error: "X" in "this->replaceOperand(II, 0U, X)" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp:2427:30: remediation: Should it say "Y" instead? +# 2425| Value *X, *Y; +# 2426| if (match(Src0, m_FNeg(m_Value(X))) && match(Src1, m_FNeg(m_Value(Y)))) { +# 2427|-> replaceOperand(*II, 0, X); +# 2428| replaceOperand(*II, 1, Y); +# 2429| return II; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp:2391:14: original: "SI->getFalseValue()" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp:2398:14: copy_paste_error: "getFalseValue" in "SI->getFalseValue()" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp:2398:14: remediation: Should it say "getTrueValue" instead? +# 2396| if (auto *X = isExtractFromCmpXchg(SI.getFalseValue(), 0)) +# 2397| if (X == CmpXchg && X->getCompareOperand() == SI.getTrueValue()) +# 2398|-> return SI.getFalseValue(); +# 2399| +# 2400| return nullptr; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/EarlyCSE.cpp:1088:50: original: "masked_store" looks like the original copy. +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/EarlyCSE.cpp:1082:49: copy_paste_error: "masked_store" looks like a copy-paste error. +llvm-project-19.0.0.src/llvm/lib/Transforms/Scalar/EarlyCSE.cpp:1082:49: remediation: Should it say "masked_load" instead? +# 1080| return isa(ThruOp(Later)); +# 1081| } +# 1082|-> if (IDE == Intrinsic::masked_load && IDL == Intrinsic::masked_store) { +# 1083| // Trying to remove a store of the loaded value. +# 1084| // Check that the pointers are the same, and + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41818:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41816:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41814| case 34: // WriteLDIdx_ReadAdrBase +#41815| if (CPUID == 1) { // A64FXModel +#41816|-> if (AArch64_MC::isScaledAddr(*MI)) +#41817| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#41818| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41828:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41826:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41824| } +#41825| if (CPUID == 10) { // ExynosM3Model +#41826|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41827| return 1590; // WriteLDIdx_ReadDefault +#41828| return 1590; // WriteLDIdx_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41952:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41950:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41948| case 43: // WriteSTIdx_ReadST_ReadAdrBase +#41949| if (CPUID == 1) { // A64FXModel +#41950|-> if (AArch64_MC::isScaledAddr(*MI)) +#41951| return 1603; // WriteSTIdx_ReadST_ReadDefault +#41952| return 1603; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41962:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41960:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41958| } +#41959| if (CPUID == 10) { // ExynosM3Model +#41960|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41961| return 1603; // WriteSTIdx_ReadST_ReadDefault +#41962| return 1603; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41999:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41997:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41995| } +#41996| if (CPUID == 19) { // ThunderX2T99Model +#41997|-> if (AArch64_MC::isScaledAddr(*MI)) +#41998| return 1603; // WriteSTIdx_ReadST_ReadDefault +#41999| return 1603; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42004:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42002:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42000| } +#42001| if (CPUID == 20) { // ThunderX3T110Model +#42002|-> if (AArch64_MC::isScaledAddr(*MI)) +#42003| return 1603; // WriteSTIdx_ReadST_ReadDefault +#42004| return 1603; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42479:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42477:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42475| case 664: // LDRBroW +#42476| if (CPUID == 1) { // A64FXModel +#42477|-> if (AArch64_MC::isScaledAddr(*MI)) +#42478| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42479| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42489:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42487:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42485| } +#42486| if (CPUID == 10) { // ExynosM3Model +#42487|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42488| return 1672; // M3WriteLE_ReadDefault +#42489| return 1672; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42497:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42492:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42490| } +#42491| if (CPUID == 11) { // ExynosM4Model +#42492|-> if (( +#42493| AArch64_MC::isScaledAddr(*MI) +#42494| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42505:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42500:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42498| } +#42499| if (CPUID == 12) { // ExynosM5Model +#42500|-> if (( +#42501| AArch64_MC::isScaledAddr(*MI) +#42502| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42524:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42522:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42520| } +#42521| if (CPUID == 19) { // ThunderX2T99Model +#42522|-> if (AArch64_MC::isScaledAddr(*MI)) +#42523| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#42524| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42529:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42527:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42525| } +#42526| if (CPUID == 20) { // ThunderX3T110Model +#42527|-> if (AArch64_MC::isScaledAddr(*MI)) +#42528| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#42529| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42536:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42534:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42532| case 665: // LDRBroX +#42533| if (CPUID == 1) { // A64FXModel +#42534|-> if (AArch64_MC::isScaledAddr(*MI)) +#42535| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42536| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42546:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42544:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42542| } +#42543| if (CPUID == 10) { // ExynosM3Model +#42544|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42545| return 1679; // WriteVLD_ReadDefault +#42546| return 1679; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42554:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42549:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42547| } +#42548| if (CPUID == 11) { // ExynosM4Model +#42549|-> if (( +#42550| AArch64_MC::isScaledAddr(*MI) +#42551| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42562:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42557:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42555| } +#42556| if (CPUID == 12) { // ExynosM5Model +#42557|-> if (( +#42558| AArch64_MC::isScaledAddr(*MI) +#42559| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42581:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42579:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42577| } +#42578| if (CPUID == 19) { // ThunderX2T99Model +#42579|-> if (AArch64_MC::isScaledAddr(*MI)) +#42580| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#42581| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42586:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42584:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42582| } +#42583| if (CPUID == 20) { // ThunderX3T110Model +#42584|-> if (AArch64_MC::isScaledAddr(*MI)) +#42585| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#42586| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42593:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42591:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42589| case 670: // LDRDroW +#42590| if (CPUID == 1) { // A64FXModel +#42591|-> if (AArch64_MC::isScaledAddr(*MI)) +#42592| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42593| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42603:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42601:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42599| } +#42600| if (CPUID == 10) { // ExynosM3Model +#42601|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42602| return 1672; // M3WriteLE_ReadDefault +#42603| return 1672; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42611:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42606:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42604| } +#42605| if (CPUID == 11) { // ExynosM4Model +#42606|-> if (( +#42607| AArch64_MC::isScaledAddr(*MI) +#42608| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42619:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42614:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42612| } +#42613| if (CPUID == 12) { // ExynosM5Model +#42614|-> if (( +#42615| AArch64_MC::isScaledAddr(*MI) +#42616| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42638:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42636:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42634| } +#42635| if (CPUID == 19) { // ThunderX2T99Model +#42636|-> if (AArch64_MC::isScaledAddr(*MI)) +#42637| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#42638| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42643:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42641:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42639| } +#42640| if (CPUID == 20) { // ThunderX3T110Model +#42641|-> if (AArch64_MC::isScaledAddr(*MI)) +#42642| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#42643| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42650:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42648:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42646| case 671: // LDRDroX +#42647| if (CPUID == 1) { // A64FXModel +#42648|-> if (AArch64_MC::isScaledAddr(*MI)) +#42649| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42650| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42660:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42658:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42656| } +#42657| if (CPUID == 10) { // ExynosM3Model +#42658|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42659| return 1679; // WriteVLD_ReadDefault +#42660| return 1679; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42668:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42663:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42661| } +#42662| if (CPUID == 11) { // ExynosM4Model +#42663|-> if (( +#42664| AArch64_MC::isScaledAddr(*MI) +#42665| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42676:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42671:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42669| } +#42670| if (CPUID == 12) { // ExynosM5Model +#42671|-> if (( +#42672| AArch64_MC::isScaledAddr(*MI) +#42673| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42695:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42693:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42691| } +#42692| if (CPUID == 19) { // ThunderX2T99Model +#42693|-> if (AArch64_MC::isScaledAddr(*MI)) +#42694| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#42695| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42700:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42698:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42696| } +#42697| if (CPUID == 20) { // ThunderX3T110Model +#42698|-> if (AArch64_MC::isScaledAddr(*MI)) +#42699| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#42700| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42707:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42705:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42703| case 673: // LDRHHroW +#42704| if (CPUID == 1) { // A64FXModel +#42705|-> if (AArch64_MC::isScaledAddr(*MI)) +#42706| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42707| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42717:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42715:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42713| } +#42714| if (CPUID == 10) { // ExynosM3Model +#42715|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42716| return 1680; // M3WriteLB_ReadDefault +#42717| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42725:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42720:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42718| } +#42719| if (CPUID == 11) { // ExynosM4Model +#42720|-> if (( +#42721| AArch64_MC::isScaledAddr(*MI) +#42722| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42733:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42728:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42726| } +#42727| if (CPUID == 12) { // ExynosM5Model +#42728|-> if (( +#42729| AArch64_MC::isScaledAddr(*MI) +#42730| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42741:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42739:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42737| } +#42738| if (CPUID == 19) { // ThunderX2T99Model +#42739|-> if (AArch64_MC::isScaledAddr(*MI)) +#42740| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#42741| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42746:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42744:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42742| } +#42743| if (CPUID == 20) { // ThunderX3T110Model +#42744|-> if (AArch64_MC::isScaledAddr(*MI)) +#42745| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#42746| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42753:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42751:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42749| case 674: // LDRHHroX +#42750| if (CPUID == 1) { // A64FXModel +#42751|-> if (AArch64_MC::isScaledAddr(*MI)) +#42752| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42753| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42803:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42801:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42799| } +#42800| if (CPUID == 19) { // ThunderX2T99Model +#42801|-> if (AArch64_MC::isScaledAddr(*MI)) +#42802| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#42803| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42808:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42806:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42804| } +#42805| if (CPUID == 20) { // ThunderX3T110Model +#42806|-> if (AArch64_MC::isScaledAddr(*MI)) +#42807| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#42808| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42815:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42813:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42811| case 677: // LDRHroW +#42812| if (CPUID == 1) { // A64FXModel +#42813|-> if (AArch64_MC::isScaledAddr(*MI)) +#42814| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42815| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42825:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42823:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42821| } +#42822| if (CPUID == 10) { // ExynosM3Model +#42823|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42824| return 1672; // M3WriteLE_ReadDefault +#42825| return 1672; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42833:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42828:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42826| } +#42827| if (CPUID == 11) { // ExynosM4Model +#42828|-> if (( +#42829| AArch64_MC::isScaledAddr(*MI) +#42830| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42841:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42836:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42834| } +#42835| if (CPUID == 12) { // ExynosM5Model +#42836|-> if (( +#42837| AArch64_MC::isScaledAddr(*MI) +#42838| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42860:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42858:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42856| } +#42857| if (CPUID == 19) { // ThunderX2T99Model +#42858|-> if (AArch64_MC::isScaledAddr(*MI)) +#42859| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#42860| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42865:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42863:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42861| } +#42862| if (CPUID == 20) { // ThunderX3T110Model +#42863|-> if (AArch64_MC::isScaledAddr(*MI)) +#42864| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#42865| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42872:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42870:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42868| case 678: // LDRHroX +#42869| if (CPUID == 1) { // A64FXModel +#42870|-> if (AArch64_MC::isScaledAddr(*MI)) +#42871| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42872| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42882:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42880:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42878| } +#42879| if (CPUID == 10) { // ExynosM3Model +#42880|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42881| return 1679; // WriteVLD_ReadDefault +#42882| return 1679; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42890:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42885:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42883| } +#42884| if (CPUID == 11) { // ExynosM4Model +#42885|-> if (( +#42886| AArch64_MC::isScaledAddr(*MI) +#42887| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42898:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42893:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42891| } +#42892| if (CPUID == 12) { // ExynosM5Model +#42893|-> if (( +#42894| AArch64_MC::isScaledAddr(*MI) +#42895| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42917:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42915:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42913| } +#42914| if (CPUID == 19) { // ThunderX2T99Model +#42915|-> if (AArch64_MC::isScaledAddr(*MI)) +#42916| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#42917| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42922:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42920:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42918| } +#42919| if (CPUID == 20) { // ThunderX3T110Model +#42920|-> if (AArch64_MC::isScaledAddr(*MI)) +#42921| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#42922| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42929:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42927:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42925| case 683: // LDRQroW +#42926| if (CPUID == 1) { // A64FXModel +#42927|-> if (AArch64_MC::isScaledAddr(*MI)) +#42928| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42929| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42947:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42942:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42940| } +#42941| if (CPUID == 11) { // ExynosM4Model +#42942|-> if (( +#42943| AArch64_MC::isScaledAddr(*MI) +#42944| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42955:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42950:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42948| } +#42949| if (CPUID == 12) { // ExynosM5Model +#42950|-> if (( +#42951| AArch64_MC::isScaledAddr(*MI) +#42952| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42974:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42972:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42970| } +#42971| if (CPUID == 19) { // ThunderX2T99Model +#42972|-> if (AArch64_MC::isScaledAddr(*MI)) +#42973| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#42974| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42979:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42977:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42975| } +#42976| if (CPUID == 20) { // ThunderX3T110Model +#42977|-> if (AArch64_MC::isScaledAddr(*MI)) +#42978| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#42979| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42986:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42984:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42982| case 684: // LDRQroX +#42983| if (CPUID == 1) { // A64FXModel +#42984|-> if (AArch64_MC::isScaledAddr(*MI)) +#42985| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#42986| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43047:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43045:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43043| } +#43044| if (CPUID == 19) { // ThunderX2T99Model +#43045|-> if (AArch64_MC::isScaledAddr(*MI)) +#43046| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#43047| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43052:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43050:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43048| } +#43049| if (CPUID == 20) { // ThunderX3T110Model +#43050|-> if (AArch64_MC::isScaledAddr(*MI)) +#43051| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#43052| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43059:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43057:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43055| case 686: // LDRSHWroW +#43056| if (CPUID == 1) { // A64FXModel +#43057|-> if (AArch64_MC::isScaledAddr(*MI)) +#43058| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#43059| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43069:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43067:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43065| } +#43066| if (CPUID == 10) { // ExynosM3Model +#43067|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43068| return 1680; // M3WriteLB_ReadDefault +#43069| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43077:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43072:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43070| } +#43071| if (CPUID == 11) { // ExynosM4Model +#43072|-> if (( +#43073| AArch64_MC::isScaledAddr(*MI) +#43074| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43085:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43080:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43078| } +#43079| if (CPUID == 12) { // ExynosM5Model +#43080|-> if (( +#43081| AArch64_MC::isScaledAddr(*MI) +#43082| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43093:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43091:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43089| } +#43090| if (CPUID == 19) { // ThunderX2T99Model +#43091|-> if (AArch64_MC::isScaledAddr(*MI)) +#43092| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#43093| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43098:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43096:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43094| } +#43095| if (CPUID == 20) { // ThunderX3T110Model +#43096|-> if (AArch64_MC::isScaledAddr(*MI)) +#43097| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#43098| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43105:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43103:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43101| case 687: // LDRSHWroX +#43102| if (CPUID == 1) { // A64FXModel +#43103|-> if (AArch64_MC::isScaledAddr(*MI)) +#43104| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#43105| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43155:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43153:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43151| } +#43152| if (CPUID == 19) { // ThunderX2T99Model +#43153|-> if (AArch64_MC::isScaledAddr(*MI)) +#43154| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#43155| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43160:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43158:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43156| } +#43157| if (CPUID == 20) { // ThunderX3T110Model +#43158|-> if (AArch64_MC::isScaledAddr(*MI)) +#43159| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#43160| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43167:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43165:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43163| case 688: // LDRSHXroW +#43164| if (CPUID == 1) { // A64FXModel +#43165|-> if (AArch64_MC::isScaledAddr(*MI)) +#43166| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#43167| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43177:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43175:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43173| } +#43174| if (CPUID == 10) { // ExynosM3Model +#43175|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43176| return 1680; // M3WriteLB_ReadDefault +#43177| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43185:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43180:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43178| } +#43179| if (CPUID == 11) { // ExynosM4Model +#43180|-> if (( +#43181| AArch64_MC::isScaledAddr(*MI) +#43182| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43193:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43188:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43186| } +#43187| if (CPUID == 12) { // ExynosM5Model +#43188|-> if (( +#43189| AArch64_MC::isScaledAddr(*MI) +#43190| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43201:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43199:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43197| } +#43198| if (CPUID == 19) { // ThunderX2T99Model +#43199|-> if (AArch64_MC::isScaledAddr(*MI)) +#43200| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#43201| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43206:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43204:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43202| } +#43203| if (CPUID == 20) { // ThunderX3T110Model +#43204|-> if (AArch64_MC::isScaledAddr(*MI)) +#43205| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#43206| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43213:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43211:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43209| case 689: // LDRSHXroX +#43210| if (CPUID == 1) { // A64FXModel +#43211|-> if (AArch64_MC::isScaledAddr(*MI)) +#43212| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#43213| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43263:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43261:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43259| } +#43260| if (CPUID == 19) { // ThunderX2T99Model +#43261|-> if (AArch64_MC::isScaledAddr(*MI)) +#43262| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#43263| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43268:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43266:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43264| } +#43265| if (CPUID == 20) { // ThunderX3T110Model +#43266|-> if (AArch64_MC::isScaledAddr(*MI)) +#43267| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#43268| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43275:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43273:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43271| case 693: // LDRSroW +#43272| if (CPUID == 1) { // A64FXModel +#43273|-> if (AArch64_MC::isScaledAddr(*MI)) +#43274| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#43275| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43285:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43283:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43281| } +#43282| if (CPUID == 10) { // ExynosM3Model +#43283|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43284| return 1672; // M3WriteLE_ReadDefault +#43285| return 1672; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43293:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43288:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43286| } +#43287| if (CPUID == 11) { // ExynosM4Model +#43288|-> if (( +#43289| AArch64_MC::isScaledAddr(*MI) +#43290| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43301:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43296:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43294| } +#43295| if (CPUID == 12) { // ExynosM5Model +#43296|-> if (( +#43297| AArch64_MC::isScaledAddr(*MI) +#43298| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43320:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43318:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43316| } +#43317| if (CPUID == 19) { // ThunderX2T99Model +#43318|-> if (AArch64_MC::isScaledAddr(*MI)) +#43319| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#43320| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43325:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43323:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43321| } +#43322| if (CPUID == 20) { // ThunderX3T110Model +#43323|-> if (AArch64_MC::isScaledAddr(*MI)) +#43324| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#43325| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43332:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43330:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43328| case 694: // LDRSroX +#43329| if (CPUID == 1) { // A64FXModel +#43330|-> if (AArch64_MC::isScaledAddr(*MI)) +#43331| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#43332| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43342:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43340:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43338| } +#43339| if (CPUID == 10) { // ExynosM3Model +#43340|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43341| return 1679; // WriteVLD_ReadDefault +#43342| return 1679; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43350:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43345:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43343| } +#43344| if (CPUID == 11) { // ExynosM4Model +#43345|-> if (( +#43346| AArch64_MC::isScaledAddr(*MI) +#43347| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43358:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43353:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43351| } +#43352| if (CPUID == 12) { // ExynosM5Model +#43353|-> if (( +#43354| AArch64_MC::isScaledAddr(*MI) +#43355| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43377:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43375:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43373| } +#43374| if (CPUID == 19) { // ThunderX2T99Model +#43375|-> if (AArch64_MC::isScaledAddr(*MI)) +#43376| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#43377| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43382:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43380:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43378| } +#43379| if (CPUID == 20) { // ThunderX3T110Model +#43380|-> if (AArch64_MC::isScaledAddr(*MI)) +#43381| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#43382| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43389:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43387:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43385| case 721: // STRBroW +#43386| if (CPUID == 1) { // A64FXModel +#43387|-> if (AArch64_MC::isScaledAddr(*MI)) +#43388| return 1692; // A64FXWrite_STUR_ReadDefault +#43389| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43399:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43397:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43395| } +#43396| if (CPUID == 10) { // ExynosM3Model +#43397|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43398| return 1688; // M3WriteSA_ReadDefault +#43399| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43407:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43402:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43400| } +#43401| if (CPUID == 11) { // ExynosM4Model +#43402|-> if (( +#43403| AArch64_MC::isScaledAddr(*MI) +#43404| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43415:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43410:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43408| } +#43409| if (CPUID == 12) { // ExynosM5Model +#43410|-> if (( +#43411| AArch64_MC::isScaledAddr(*MI) +#43412| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43434:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43432:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43430| } +#43431| if (CPUID == 19) { // ThunderX2T99Model +#43432|-> if (AArch64_MC::isScaledAddr(*MI)) +#43433| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43434| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43439:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43437:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43435| } +#43436| if (CPUID == 20) { // ThunderX3T110Model +#43437|-> if (AArch64_MC::isScaledAddr(*MI)) +#43438| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43439| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43446:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43444:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43442| case 722: // STRBroX +#43443| if (CPUID == 1) { // A64FXModel +#43444|-> if (AArch64_MC::isScaledAddr(*MI)) +#43445| return 1692; // A64FXWrite_STUR_ReadDefault +#43446| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43456:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43454:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43452| } +#43453| if (CPUID == 10) { // ExynosM3Model +#43454|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43455| return 1690; // WriteVST_ReadDefault +#43456| return 1690; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43464:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43459:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43457| } +#43458| if (CPUID == 11) { // ExynosM4Model +#43459|-> if (( +#43460| AArch64_MC::isScaledAddr(*MI) +#43461| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43472:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43467:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43465| } +#43466| if (CPUID == 12) { // ExynosM5Model +#43467|-> if (( +#43468| AArch64_MC::isScaledAddr(*MI) +#43469| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43491:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43489:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43487| } +#43488| if (CPUID == 19) { // ThunderX2T99Model +#43489|-> if (AArch64_MC::isScaledAddr(*MI)) +#43490| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43491| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43496:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43494:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43492| } +#43493| if (CPUID == 20) { // ThunderX3T110Model +#43494|-> if (AArch64_MC::isScaledAddr(*MI)) +#43495| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43496| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43503:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43501:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43499| case 727: // STRHHroW +#43500| if (CPUID == 1) { // A64FXModel +#43501|-> if (AArch64_MC::isScaledAddr(*MI)) +#43502| return 1692; // A64FXWrite_STUR_ReadDefault +#43503| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43513:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43511:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43509| } +#43510| if (CPUID == 10) { // ExynosM3Model +#43511|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43512| return 1698; // M3WriteSB_ReadDefault +#43513| return 1698; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43521:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43516:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43514| } +#43515| if (CPUID == 11) { // ExynosM4Model +#43516|-> if (( +#43517| AArch64_MC::isScaledAddr(*MI) +#43518| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43529:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43524:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43522| } +#43523| if (CPUID == 12) { // ExynosM5Model +#43524|-> if (( +#43525| AArch64_MC::isScaledAddr(*MI) +#43526| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43537:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43535:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43533| } +#43534| if (CPUID == 19) { // ThunderX2T99Model +#43535|-> if (AArch64_MC::isScaledAddr(*MI)) +#43536| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43537| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43542:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43540:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43538| } +#43539| if (CPUID == 20) { // ThunderX3T110Model +#43540|-> if (AArch64_MC::isScaledAddr(*MI)) +#43541| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43542| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43549:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43547:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43545| case 728: // STRHHroX +#43546| if (CPUID == 1) { // A64FXModel +#43547|-> if (AArch64_MC::isScaledAddr(*MI)) +#43548| return 1692; // A64FXWrite_STUR_ReadDefault +#43549| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43559:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43557:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43555| } +#43556| if (CPUID == 10) { // ExynosM3Model +#43557|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43558| return 1701; // WriteST_ReadDefault +#43559| return 1701; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43567:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43562:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43560| } +#43561| if (CPUID == 11) { // ExynosM4Model +#43562|-> if (( +#43563| AArch64_MC::isScaledAddr(*MI) +#43564| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43575:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43570:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43568| } +#43569| if (CPUID == 12) { // ExynosM5Model +#43570|-> if (( +#43571| AArch64_MC::isScaledAddr(*MI) +#43572| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43583:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43581:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43579| } +#43580| if (CPUID == 19) { // ThunderX2T99Model +#43581|-> if (AArch64_MC::isScaledAddr(*MI)) +#43582| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43583| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43588:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43586:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43584| } +#43585| if (CPUID == 20) { // ThunderX3T110Model +#43586|-> if (AArch64_MC::isScaledAddr(*MI)) +#43587| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43588| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43595:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43593:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43591| case 731: // STRHroW +#43592| if (CPUID == 1) { // A64FXModel +#43593|-> if (AArch64_MC::isScaledAddr(*MI)) +#43594| return 1692; // A64FXWrite_STUR_ReadDefault +#43595| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43605:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43603:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43601| } +#43602| if (CPUID == 10) { // ExynosM3Model +#43603|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43604| return 1688; // M3WriteSA_ReadDefault +#43605| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43613:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43608:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43606| } +#43607| if (CPUID == 11) { // ExynosM4Model +#43608|-> if (( +#43609| AArch64_MC::isScaledAddr(*MI) +#43610| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43621:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43616:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43614| } +#43615| if (CPUID == 12) { // ExynosM5Model +#43616|-> if (( +#43617| AArch64_MC::isScaledAddr(*MI) +#43618| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43640:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43638:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43636| } +#43637| if (CPUID == 19) { // ThunderX2T99Model +#43638|-> if (AArch64_MC::isScaledAddr(*MI)) +#43639| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43640| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43645:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43643:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43641| } +#43642| if (CPUID == 20) { // ThunderX3T110Model +#43643|-> if (AArch64_MC::isScaledAddr(*MI)) +#43644| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43645| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43652:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43650:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43648| case 732: // STRHroX +#43649| if (CPUID == 1) { // A64FXModel +#43650|-> if (AArch64_MC::isScaledAddr(*MI)) +#43651| return 1692; // A64FXWrite_STUR_ReadDefault +#43652| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43662:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43660:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43658| } +#43659| if (CPUID == 10) { // ExynosM3Model +#43660|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43661| return 1690; // WriteVST_ReadDefault +#43662| return 1690; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43670:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43665:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43663| } +#43664| if (CPUID == 11) { // ExynosM4Model +#43665|-> if (( +#43666| AArch64_MC::isScaledAddr(*MI) +#43667| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43678:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43673:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43671| } +#43672| if (CPUID == 12) { // ExynosM5Model +#43673|-> if (( +#43674| AArch64_MC::isScaledAddr(*MI) +#43675| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43697:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43695:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43693| } +#43694| if (CPUID == 19) { // ThunderX2T99Model +#43695|-> if (AArch64_MC::isScaledAddr(*MI)) +#43696| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43697| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43702:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43700:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43698| } +#43699| if (CPUID == 20) { // ThunderX3T110Model +#43700|-> if (AArch64_MC::isScaledAddr(*MI)) +#43701| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43702| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43709:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43707:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43705| case 735: // STRQroW +#43706| if (CPUID == 1) { // A64FXModel +#43707|-> if (AArch64_MC::isScaledAddr(*MI)) +#43708| return 1692; // A64FXWrite_STUR_ReadDefault +#43709| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43719:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43717:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43715| } +#43716| if (CPUID == 10) { // ExynosM3Model +#43717|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43718| return 1688; // M3WriteSA_ReadDefault +#43719| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43727:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43722:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43720| } +#43721| if (CPUID == 11) { // ExynosM4Model +#43722|-> if (( +#43723| AArch64_MC::isScaledAddr(*MI) +#43724| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43735:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43730:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43728| } +#43729| if (CPUID == 12) { // ExynosM5Model +#43730|-> if (( +#43731| AArch64_MC::isScaledAddr(*MI) +#43732| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43754:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43752:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43750| } +#43751| if (CPUID == 19) { // ThunderX2T99Model +#43752|-> if (AArch64_MC::isScaledAddr(*MI)) +#43753| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43754| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43759:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43757:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43755| } +#43756| if (CPUID == 20) { // ThunderX3T110Model +#43757|-> if (AArch64_MC::isScaledAddr(*MI)) +#43758| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43759| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43766:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43764:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43762| case 736: // STRQroX +#43763| if (CPUID == 1) { // A64FXModel +#43764|-> if (AArch64_MC::isScaledAddr(*MI)) +#43765| return 1692; // A64FXWrite_STUR_ReadDefault +#43766| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43827:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43825:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43823| } +#43824| if (CPUID == 19) { // ThunderX2T99Model +#43825|-> if (AArch64_MC::isScaledAddr(*MI)) +#43826| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43827| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43832:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43830:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43828| } +#43829| if (CPUID == 20) { // ThunderX3T110Model +#43830|-> if (AArch64_MC::isScaledAddr(*MI)) +#43831| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43832| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45005:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45003:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45001| case 930: // STRDroW_STRDroX_STRSroW_STRSroX +#45002| if (CPUID == 1) { // A64FXModel +#45003|-> if (AArch64_MC::isScaledAddr(*MI)) +#45004| return 1692; // A64FXWrite_STUR_ReadDefault +#45005| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45015:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45013:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45011| } +#45012| if (CPUID == 10) { // ExynosM3Model +#45013|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#45014| return 1690; // WriteVST_ReadDefault +#45015| return 1690; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45023:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45018:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45016| } +#45017| if (CPUID == 11) { // ExynosM4Model +#45018|-> if (( +#45019| AArch64_MC::isScaledAddr(*MI) +#45020| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45031:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45026:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45024| } +#45025| if (CPUID == 12) { // ExynosM5Model +#45026|-> if (( +#45027| AArch64_MC::isScaledAddr(*MI) +#45028| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45050:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45048:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45046| } +#45047| if (CPUID == 19) { // ThunderX2T99Model +#45048|-> if (AArch64_MC::isScaledAddr(*MI)) +#45049| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#45050| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45055:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45053:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45051| } +#45052| if (CPUID == 20) { // ThunderX3T110Model +#45053|-> if (AArch64_MC::isScaledAddr(*MI)) +#45054| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#45055| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45121:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45119:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45117| case 965: // LDRBBroW_LDRBBroX_LDRWroW_LDRWroX_LDRXroW_LDRXroX +#45118| if (CPUID == 1) { // A64FXModel +#45119|-> if (AArch64_MC::isScaledAddr(*MI)) +#45120| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#45121| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45225:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45223:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45221| case 972: // LDRSBWroW_LDRSBWroX_LDRSBXroW_LDRSBXroX_LDRSWroW_LDRSWroX +#45222| if (CPUID == 1) { // A64FXModel +#45223|-> if (AArch64_MC::isScaledAddr(*MI)) +#45224| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#45225| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45395:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45393:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45391| case 1010: // STRBBroW_STRBBroX_STRWroW_STRWroX_STRXroW_STRXroX +#45392| if (CPUID == 1) { // A64FXModel +#45393|-> if (AArch64_MC::isScaledAddr(*MI)) +#45394| return 1692; // A64FXWrite_STUR_ReadDefault +#45395| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45405:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45403:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45401| } +#45402| if (CPUID == 10) { // ExynosM3Model +#45403|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#45404| return 1701; // WriteST_ReadDefault +#45405| return 1701; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45413:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45408:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45406| } +#45407| if (CPUID == 11) { // ExynosM4Model +#45408|-> if (( +#45409| AArch64_MC::isScaledAddr(*MI) +#45410| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45421:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45416:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45414| } +#45415| if (CPUID == 12) { // ExynosM5Model +#45416|-> if (( +#45417| AArch64_MC::isScaledAddr(*MI) +#45418| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45429:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45427:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45425| } +#45426| if (CPUID == 19) { // ThunderX2T99Model +#45427|-> if (AArch64_MC::isScaledAddr(*MI)) +#45428| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#45429| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45434:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45432:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45430| } +#45431| if (CPUID == 20) { // ThunderX3T110Model +#45432|-> if (AArch64_MC::isScaledAddr(*MI)) +#45433| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#45434| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46738:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46736:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46734| case 1078: // LDRBBroW_LDRWroW_LDRXroW +#46735| if (CPUID == 1) { // A64FXModel +#46736|-> if (AArch64_MC::isScaledAddr(*MI)) +#46737| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#46738| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46748:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46746:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46744| } +#46745| if (CPUID == 10) { // ExynosM3Model +#46746|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46747| return 1680; // M3WriteLB_ReadDefault +#46748| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46756:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46751:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46749| } +#46750| if (CPUID == 11) { // ExynosM4Model +#46751|-> if (( +#46752| AArch64_MC::isScaledAddr(*MI) +#46753| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46764:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46759:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46757| } +#46758| if (CPUID == 12) { // ExynosM5Model +#46759|-> if (( +#46760| AArch64_MC::isScaledAddr(*MI) +#46761| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46784:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46782:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46780| case 1079: // LDRSBWroW_LDRSBXroW_LDRSWroW +#46781| if (CPUID == 1) { // A64FXModel +#46782|-> if (AArch64_MC::isScaledAddr(*MI)) +#46783| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#46784| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46794:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46792:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46790| } +#46791| if (CPUID == 10) { // ExynosM3Model +#46792|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46793| return 1680; // M3WriteLB_ReadDefault +#46794| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46802:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46797:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46795| } +#46796| if (CPUID == 11) { // ExynosM4Model +#46797|-> if (( +#46798| AArch64_MC::isScaledAddr(*MI) +#46799| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46810:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46805:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46803| } +#46804| if (CPUID == 12) { // ExynosM5Model +#46805|-> if (( +#46806| AArch64_MC::isScaledAddr(*MI) +#46807| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46830:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46828:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46826| case 1080: // PRFMroW +#46827| if (CPUID == 10) { // ExynosM3Model +#46828|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46829| return 1680; // M3WriteLB_ReadDefault +#46830| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46838:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46833:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46831| } +#46832| if (CPUID == 11) { // ExynosM4Model +#46833|-> if (( +#46834| AArch64_MC::isScaledAddr(*MI) +#46835| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46846:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46841:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46839| } +#46840| if (CPUID == 12) { // ExynosM5Model +#46841|-> if (( +#46842| AArch64_MC::isScaledAddr(*MI) +#46843| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46856:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46854:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46852| case 1081: // STRBBroW_STRWroW_STRXroW +#46853| if (CPUID == 1) { // A64FXModel +#46854|-> if (AArch64_MC::isScaledAddr(*MI)) +#46855| return 1692; // A64FXWrite_STUR_ReadDefault +#46856| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46866:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46864:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46862| } +#46863| if (CPUID == 10) { // ExynosM3Model +#46864|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46865| return 1698; // M3WriteSB_ReadDefault +#46866| return 1698; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46874:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46869:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46867| } +#46868| if (CPUID == 11) { // ExynosM4Model +#46869|-> if (( +#46870| AArch64_MC::isScaledAddr(*MI) +#46871| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46882:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46877:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46875| } +#46876| if (CPUID == 12) { // ExynosM5Model +#46877|-> if (( +#46878| AArch64_MC::isScaledAddr(*MI) +#46879| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46890:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46888:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46886| } +#46887| if (CPUID == 19) { // ThunderX2T99Model +#46888|-> if (AArch64_MC::isScaledAddr(*MI)) +#46889| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#46890| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46895:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46893:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46891| } +#46892| if (CPUID == 20) { // ThunderX3T110Model +#46893|-> if (AArch64_MC::isScaledAddr(*MI)) +#46894| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#46895| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46902:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46900:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46898| case 1091: // STRDroW_STRSroW +#46899| if (CPUID == 1) { // A64FXModel +#46900|-> if (AArch64_MC::isScaledAddr(*MI)) +#46901| return 1692; // A64FXWrite_STUR_ReadDefault +#46902| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46912:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46910:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46908| } +#46909| if (CPUID == 10) { // ExynosM3Model +#46910|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46911| return 1688; // M3WriteSA_ReadDefault +#46912| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46920:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46915:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46913| } +#46914| if (CPUID == 11) { // ExynosM4Model +#46915|-> if (( +#46916| AArch64_MC::isScaledAddr(*MI) +#46917| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46928:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46923:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46921| } +#46922| if (CPUID == 12) { // ExynosM5Model +#46923|-> if (( +#46924| AArch64_MC::isScaledAddr(*MI) +#46925| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46947:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46945:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46943| } +#46944| if (CPUID == 19) { // ThunderX2T99Model +#46945|-> if (AArch64_MC::isScaledAddr(*MI)) +#46946| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#46947| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46952:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46950:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46948| } +#46949| if (CPUID == 20) { // ThunderX3T110Model +#46950|-> if (AArch64_MC::isScaledAddr(*MI)) +#46951| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#46952| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47819:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47817:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47815| case 1226: // LDRWroW +#47816| if (CPUID == 1) { // A64FXModel +#47817|-> if (AArch64_MC::isScaledAddr(*MI)) +#47818| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#47819| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47829:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47827:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47825| } +#47826| if (CPUID == 10) { // ExynosM3Model +#47827|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#47828| return 1680; // M3WriteLB_ReadDefault +#47829| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47837:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47832:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47830| } +#47831| if (CPUID == 11) { // ExynosM4Model +#47832|-> if (( +#47833| AArch64_MC::isScaledAddr(*MI) +#47834| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47845:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47840:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47838| } +#47839| if (CPUID == 12) { // ExynosM5Model +#47840|-> if (( +#47841| AArch64_MC::isScaledAddr(*MI) +#47842| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47853:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47851:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47849| } +#47850| if (CPUID == 19) { // ThunderX2T99Model +#47851|-> if (AArch64_MC::isScaledAddr(*MI)) +#47852| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#47853| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47858:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47856:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47854| } +#47855| if (CPUID == 20) { // ThunderX3T110Model +#47856|-> if (AArch64_MC::isScaledAddr(*MI)) +#47857| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#47858| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47865:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47863:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47861| case 1227: // LDRXroW +#47862| if (CPUID == 1) { // A64FXModel +#47863|-> if (AArch64_MC::isScaledAddr(*MI)) +#47864| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#47865| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47875:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47873:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47871| } +#47872| if (CPUID == 10) { // ExynosM3Model +#47873|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#47874| return 1680; // M3WriteLB_ReadDefault +#47875| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47883:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47878:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47876| } +#47877| if (CPUID == 11) { // ExynosM4Model +#47878|-> if (( +#47879| AArch64_MC::isScaledAddr(*MI) +#47880| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47891:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47886:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47884| } +#47885| if (CPUID == 12) { // ExynosM5Model +#47886|-> if (( +#47887| AArch64_MC::isScaledAddr(*MI) +#47888| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47899:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47897:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47895| } +#47896| if (CPUID == 19) { // ThunderX2T99Model +#47897|-> if (AArch64_MC::isScaledAddr(*MI)) +#47898| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#47899| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47904:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47902:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47900| } +#47901| if (CPUID == 20) { // ThunderX3T110Model +#47902|-> if (AArch64_MC::isScaledAddr(*MI)) +#47903| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#47904| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47911:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47909:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47907| case 1228: // LDRWroX +#47908| if (CPUID == 1) { // A64FXModel +#47909|-> if (AArch64_MC::isScaledAddr(*MI)) +#47910| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#47911| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47961:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47959:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47957| } +#47958| if (CPUID == 19) { // ThunderX2T99Model +#47959|-> if (AArch64_MC::isScaledAddr(*MI)) +#47960| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#47961| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47966:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47964:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47962| } +#47963| if (CPUID == 20) { // ThunderX3T110Model +#47964|-> if (AArch64_MC::isScaledAddr(*MI)) +#47965| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#47966| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47973:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47971:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47969| case 1229: // LDRXroX +#47970| if (CPUID == 1) { // A64FXModel +#47971|-> if (AArch64_MC::isScaledAddr(*MI)) +#47972| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#47973| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48023:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48021:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48019| } +#48020| if (CPUID == 19) { // ThunderX2T99Model +#48021|-> if (AArch64_MC::isScaledAddr(*MI)) +#48022| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48023| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48028:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48026:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48024| } +#48025| if (CPUID == 20) { // ThunderX3T110Model +#48026|-> if (AArch64_MC::isScaledAddr(*MI)) +#48027| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48028| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48035:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48033:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48031| case 1252: // STRBBroW +#48032| if (CPUID == 1) { // A64FXModel +#48033|-> if (AArch64_MC::isScaledAddr(*MI)) +#48034| return 1692; // A64FXWrite_STUR_ReadDefault +#48035| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48045:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48043:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48041| } +#48042| if (CPUID == 10) { // ExynosM3Model +#48043|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#48044| return 1698; // M3WriteSB_ReadDefault +#48045| return 1698; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48053:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48048:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48046| } +#48047| if (CPUID == 11) { // ExynosM4Model +#48048|-> if (( +#48049| AArch64_MC::isScaledAddr(*MI) +#48050| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48061:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48056:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48054| } +#48055| if (CPUID == 12) { // ExynosM5Model +#48056|-> if (( +#48057| AArch64_MC::isScaledAddr(*MI) +#48058| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48069:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48067:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48065| } +#48066| if (CPUID == 19) { // ThunderX2T99Model +#48067|-> if (AArch64_MC::isScaledAddr(*MI)) +#48068| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#48069| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48074:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48072:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48070| } +#48071| if (CPUID == 20) { // ThunderX3T110Model +#48072|-> if (AArch64_MC::isScaledAddr(*MI)) +#48073| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#48074| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48081:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48079:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48077| case 1253: // STRBBroX +#48078| if (CPUID == 1) { // A64FXModel +#48079|-> if (AArch64_MC::isScaledAddr(*MI)) +#48080| return 1692; // A64FXWrite_STUR_ReadDefault +#48081| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48091:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48089:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48087| } +#48088| if (CPUID == 10) { // ExynosM3Model +#48089|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#48090| return 1701; // WriteST_ReadDefault +#48091| return 1701; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48099:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48094:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48092| } +#48093| if (CPUID == 11) { // ExynosM4Model +#48094|-> if (( +#48095| AArch64_MC::isScaledAddr(*MI) +#48096| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48107:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48102:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48100| } +#48101| if (CPUID == 12) { // ExynosM5Model +#48102|-> if (( +#48103| AArch64_MC::isScaledAddr(*MI) +#48104| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48115:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48113:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48111| } +#48112| if (CPUID == 19) { // ThunderX2T99Model +#48113|-> if (AArch64_MC::isScaledAddr(*MI)) +#48114| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#48115| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48120:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48118:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48116| } +#48117| if (CPUID == 20) { // ThunderX3T110Model +#48118|-> if (AArch64_MC::isScaledAddr(*MI)) +#48119| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#48120| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48127:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48125:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48123| case 1254: // STRDroW +#48124| if (CPUID == 1) { // A64FXModel +#48125|-> if (AArch64_MC::isScaledAddr(*MI)) +#48126| return 1692; // A64FXWrite_STUR_ReadDefault +#48127| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48137:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48135:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48133| } +#48134| if (CPUID == 10) { // ExynosM3Model +#48135|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#48136| return 1688; // M3WriteSA_ReadDefault +#48137| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48145:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48140:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48138| } +#48139| if (CPUID == 11) { // ExynosM4Model +#48140|-> if (( +#48141| AArch64_MC::isScaledAddr(*MI) +#48142| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48153:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48148:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48146| } +#48147| if (CPUID == 12) { // ExynosM5Model +#48148|-> if (( +#48149| AArch64_MC::isScaledAddr(*MI) +#48150| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48172:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48170:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48168| } +#48169| if (CPUID == 19) { // ThunderX2T99Model +#48170|-> if (AArch64_MC::isScaledAddr(*MI)) +#48171| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#48172| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48177:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48175:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48173| } +#48174| if (CPUID == 20) { // ThunderX3T110Model +#48175|-> if (AArch64_MC::isScaledAddr(*MI)) +#48176| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#48177| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48184:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48182:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48180| case 1255: // STRDroX +#48181| if (CPUID == 1) { // A64FXModel +#48182|-> if (AArch64_MC::isScaledAddr(*MI)) +#48183| return 1692; // A64FXWrite_STUR_ReadDefault +#48184| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48194:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48192:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48190| } +#48191| if (CPUID == 10) { // ExynosM3Model +#48192|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#48193| return 1690; // WriteVST_ReadDefault +#48194| return 1690; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48202:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48197:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48195| } +#48196| if (CPUID == 11) { // ExynosM4Model +#48197|-> if (( +#48198| AArch64_MC::isScaledAddr(*MI) +#48199| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48210:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48205:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48203| } +#48204| if (CPUID == 12) { // ExynosM5Model +#48205|-> if (( +#48206| AArch64_MC::isScaledAddr(*MI) +#48207| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48229:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48227:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48225| } +#48226| if (CPUID == 19) { // ThunderX2T99Model +#48227|-> if (AArch64_MC::isScaledAddr(*MI)) +#48228| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#48229| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48234:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48232:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48230| } +#48231| if (CPUID == 20) { // ThunderX3T110Model +#48232|-> if (AArch64_MC::isScaledAddr(*MI)) +#48233| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#48234| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48241:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48239:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48237| case 1256: // STRWroW +#48238| if (CPUID == 1) { // A64FXModel +#48239|-> if (AArch64_MC::isScaledAddr(*MI)) +#48240| return 1692; // A64FXWrite_STUR_ReadDefault +#48241| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48251:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48249:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48247| } +#48248| if (CPUID == 10) { // ExynosM3Model +#48249|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#48250| return 1698; // M3WriteSB_ReadDefault +#48251| return 1698; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48259:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48254:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48252| } +#48253| if (CPUID == 11) { // ExynosM4Model +#48254|-> if (( +#48255| AArch64_MC::isScaledAddr(*MI) +#48256| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48267:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48262:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48260| } +#48261| if (CPUID == 12) { // ExynosM5Model +#48262|-> if (( +#48263| AArch64_MC::isScaledAddr(*MI) +#48264| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48275:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48273:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48271| } +#48272| if (CPUID == 19) { // ThunderX2T99Model +#48273|-> if (AArch64_MC::isScaledAddr(*MI)) +#48274| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#48275| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48280:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48278:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48276| } +#48277| if (CPUID == 20) { // ThunderX3T110Model +#48278|-> if (AArch64_MC::isScaledAddr(*MI)) +#48279| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#48280| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48287:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48285:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48283| case 1257: // STRWroX +#48284| if (CPUID == 1) { // A64FXModel +#48285|-> if (AArch64_MC::isScaledAddr(*MI)) +#48286| return 1692; // A64FXWrite_STUR_ReadDefault +#48287| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48297:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48295:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48293| } +#48294| if (CPUID == 10) { // ExynosM3Model +#48295|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#48296| return 1701; // WriteST_ReadDefault +#48297| return 1701; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48305:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48300:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48298| } +#48299| if (CPUID == 11) { // ExynosM4Model +#48300|-> if (( +#48301| AArch64_MC::isScaledAddr(*MI) +#48302| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48313:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48308:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48306| } +#48307| if (CPUID == 12) { // ExynosM5Model +#48308|-> if (( +#48309| AArch64_MC::isScaledAddr(*MI) +#48310| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48321:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48319:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48317| } +#48318| if (CPUID == 19) { // ThunderX2T99Model +#48319|-> if (AArch64_MC::isScaledAddr(*MI)) +#48320| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#48321| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48326:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48324:7: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48322| } +#48323| if (CPUID == 20) { // ThunderX3T110Model +#48324|-> if (AArch64_MC::isScaledAddr(*MI)) +#48325| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#48326| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49339:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49337:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49335| case 34: // WriteLDIdx_ReadAdrBase +#49336| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49337|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49338| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#49339| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49349:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49347:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49345| } +#49346| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#49347|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49348| return 1590; // WriteLDIdx_ReadDefault +#49349| return 1590; // WriteLDIdx_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49473:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49471:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49469| case 43: // WriteSTIdx_ReadST_ReadAdrBase +#49470| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49471|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49472| return 1603; // WriteSTIdx_ReadST_ReadDefault +#49473| return 1603; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49483:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49481:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49479| } +#49480| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#49481|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49482| return 1603; // WriteSTIdx_ReadST_ReadDefault +#49483| return 1603; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49520:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49518:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49516| } +#49517| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#49518|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49519| return 1603; // WriteSTIdx_ReadST_ReadDefault +#49520| return 1603; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49525:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49523:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49521| } +#49522| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#49523|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49524| return 1603; // WriteSTIdx_ReadST_ReadDefault +#49525| return 1603; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50006:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50004:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50002| case 664: // LDRBroW +#50003| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50004|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50005| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50006| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50016:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50014:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50012| } +#50013| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50014|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50015| return 1672; // M3WriteLE_ReadDefault +#50016| return 1672; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50024:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50019:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50017| } +#50018| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50019|-> if (( +#50020| AArch64InstrInfo::isScaledAddr(*MI) +#50021| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50032:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50027:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50025| } +#50026| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50027|-> if (( +#50028| AArch64InstrInfo::isScaledAddr(*MI) +#50029| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50053:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50051:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50049| } +#50050| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50051|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50052| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50053| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50058:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50056:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50054| } +#50055| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50056|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50057| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50058| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50065:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50063:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50061| case 665: // LDRBroX +#50062| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50063|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50064| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50065| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50075:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50073:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50071| } +#50072| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50073|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50074| return 1679; // WriteVLD_ReadDefault +#50075| return 1679; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50083:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50078:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50076| } +#50077| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50078|-> if (( +#50079| AArch64InstrInfo::isScaledAddr(*MI) +#50080| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50091:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50086:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50084| } +#50085| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50086|-> if (( +#50087| AArch64InstrInfo::isScaledAddr(*MI) +#50088| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50112:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50110:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50108| } +#50109| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50110|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50111| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50112| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50117:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50115:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50113| } +#50114| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50115|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50116| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50117| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50124:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50122:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50120| case 670: // LDRDroW +#50121| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50122|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50123| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50124| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50134:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50132:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50130| } +#50131| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50132|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50133| return 1672; // M3WriteLE_ReadDefault +#50134| return 1672; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50142:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50137:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50135| } +#50136| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50137|-> if (( +#50138| AArch64InstrInfo::isScaledAddr(*MI) +#50139| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50150:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50145:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50143| } +#50144| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50145|-> if (( +#50146| AArch64InstrInfo::isScaledAddr(*MI) +#50147| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50171:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50169:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50167| } +#50168| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50169|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50170| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50171| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50176:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50174:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50172| } +#50173| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50174|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50175| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50176| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50183:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50181:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50179| case 671: // LDRDroX +#50180| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50181|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50182| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50183| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50193:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50191:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50189| } +#50190| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50191|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50192| return 1679; // WriteVLD_ReadDefault +#50193| return 1679; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50201:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50196:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50194| } +#50195| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50196|-> if (( +#50197| AArch64InstrInfo::isScaledAddr(*MI) +#50198| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50209:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50204:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50202| } +#50203| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50204|-> if (( +#50205| AArch64InstrInfo::isScaledAddr(*MI) +#50206| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50230:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50228:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50226| } +#50227| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50228|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50229| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50230| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50235:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50233:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50231| } +#50232| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50233|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50234| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50235| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50242:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50240:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50238| case 673: // LDRHHroW +#50239| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50240|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50241| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50242| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50252:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50250:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50248| } +#50249| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50250|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50251| return 1680; // M3WriteLB_ReadDefault +#50252| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50260:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50255:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50253| } +#50254| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50255|-> if (( +#50256| AArch64InstrInfo::isScaledAddr(*MI) +#50257| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50268:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50263:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50261| } +#50262| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50263|-> if (( +#50264| AArch64InstrInfo::isScaledAddr(*MI) +#50265| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50278:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50276:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50274| } +#50275| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50276|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50277| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50278| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50283:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50281:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50279| } +#50280| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50281|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50282| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50283| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50290:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50288:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50286| case 674: // LDRHHroX +#50287| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50288|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50289| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50290| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50342:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50340:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50338| } +#50339| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50340|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50341| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50342| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50347:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50345:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50343| } +#50344| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50345|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50346| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50347| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50354:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50352:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50350| case 677: // LDRHroW +#50351| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50352|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50353| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50354| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50364:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50362:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50360| } +#50361| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50362|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50363| return 1672; // M3WriteLE_ReadDefault +#50364| return 1672; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50372:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50367:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50365| } +#50366| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50367|-> if (( +#50368| AArch64InstrInfo::isScaledAddr(*MI) +#50369| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50380:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50375:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50373| } +#50374| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50375|-> if (( +#50376| AArch64InstrInfo::isScaledAddr(*MI) +#50377| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50401:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50399:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50397| } +#50398| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50399|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50400| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50401| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50406:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50404:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50402| } +#50403| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50404|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50405| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50406| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50413:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50411:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50409| case 678: // LDRHroX +#50410| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50411|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50412| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50413| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50423:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50421:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50419| } +#50420| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50421|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50422| return 1679; // WriteVLD_ReadDefault +#50423| return 1679; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50431:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50426:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50424| } +#50425| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50426|-> if (( +#50427| AArch64InstrInfo::isScaledAddr(*MI) +#50428| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50439:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50434:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50432| } +#50433| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50434|-> if (( +#50435| AArch64InstrInfo::isScaledAddr(*MI) +#50436| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50460:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50458:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50456| } +#50457| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50458|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50459| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50460| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50465:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50463:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50461| } +#50462| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50463|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50464| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50465| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50472:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50470:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50468| case 683: // LDRQroW +#50469| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50470|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50471| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50472| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50490:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50485:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50483| } +#50484| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50485|-> if (( +#50486| AArch64InstrInfo::isScaledAddr(*MI) +#50487| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50498:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50493:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50491| } +#50492| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50493|-> if (( +#50494| AArch64InstrInfo::isScaledAddr(*MI) +#50495| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50519:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50517:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50515| } +#50516| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50517|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50518| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50519| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50524:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50522:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50520| } +#50521| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50522|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50523| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50524| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50531:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50529:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50527| case 684: // LDRQroX +#50528| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50529|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50530| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50531| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50594:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50592:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50590| } +#50591| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50592|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50593| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50594| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50599:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50597:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50595| } +#50596| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50597|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50598| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50599| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50606:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50604:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50602| case 686: // LDRSHWroW +#50603| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50604|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50605| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50606| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50616:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50614:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50612| } +#50613| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50614|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50615| return 1680; // M3WriteLB_ReadDefault +#50616| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50624:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50619:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50617| } +#50618| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50619|-> if (( +#50620| AArch64InstrInfo::isScaledAddr(*MI) +#50621| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50632:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50627:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50625| } +#50626| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50627|-> if (( +#50628| AArch64InstrInfo::isScaledAddr(*MI) +#50629| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50642:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50640:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50638| } +#50639| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50640|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50641| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50642| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50647:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50645:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50643| } +#50644| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50645|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50646| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50647| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50654:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50652:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50650| case 687: // LDRSHWroX +#50651| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50652|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50653| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50654| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50706:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50704:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50702| } +#50703| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50704|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50705| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50706| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50711:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50709:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50707| } +#50708| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50709|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50710| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50711| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50718:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50716:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50714| case 688: // LDRSHXroW +#50715| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50716|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50717| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50718| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50728:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50726:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50724| } +#50725| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50726|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50727| return 1680; // M3WriteLB_ReadDefault +#50728| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50736:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50731:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50729| } +#50730| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50731|-> if (( +#50732| AArch64InstrInfo::isScaledAddr(*MI) +#50733| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50744:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50739:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50737| } +#50738| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50739|-> if (( +#50740| AArch64InstrInfo::isScaledAddr(*MI) +#50741| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50754:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50752:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50750| } +#50751| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50752|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50753| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50754| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50759:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50757:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50755| } +#50756| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50757|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50758| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50759| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50766:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50764:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50762| case 689: // LDRSHXroX +#50763| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50764|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50765| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50766| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50818:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50816:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50814| } +#50815| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50816|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50817| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50818| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50823:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50821:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50819| } +#50820| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50821|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50822| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50823| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50830:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50828:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50826| case 693: // LDRSroW +#50827| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50828|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50829| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50830| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50840:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50838:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50836| } +#50837| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50838|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50839| return 1672; // M3WriteLE_ReadDefault +#50840| return 1672; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50848:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50843:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50841| } +#50842| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50843|-> if (( +#50844| AArch64InstrInfo::isScaledAddr(*MI) +#50845| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50856:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50851:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50849| } +#50850| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50851|-> if (( +#50852| AArch64InstrInfo::isScaledAddr(*MI) +#50853| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50877:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50875:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50873| } +#50874| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50875|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50876| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50877| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50882:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50880:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50878| } +#50879| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50880|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50881| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50882| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50889:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50887:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50885| case 694: // LDRSroX +#50886| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50887|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50888| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#50889| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50899:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50897:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50895| } +#50896| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50897|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50898| return 1679; // WriteVLD_ReadDefault +#50899| return 1679; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50907:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50902:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50900| } +#50901| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50902|-> if (( +#50903| AArch64InstrInfo::isScaledAddr(*MI) +#50904| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50915:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50910:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50908| } +#50909| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50910|-> if (( +#50911| AArch64InstrInfo::isScaledAddr(*MI) +#50912| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50936:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50934:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50932| } +#50933| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50934|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50935| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#50936| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50941:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50939:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50937| } +#50938| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50939|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50940| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#50941| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50948:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50946:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50944| case 721: // STRBroW +#50945| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50946|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50947| return 1692; // A64FXWrite_STUR_ReadDefault +#50948| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50958:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50956:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50954| } +#50955| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#50956|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50957| return 1688; // M3WriteSA_ReadDefault +#50958| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50966:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50961:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50959| } +#50960| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#50961|-> if (( +#50962| AArch64InstrInfo::isScaledAddr(*MI) +#50963| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50974:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50969:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50967| } +#50968| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#50969|-> if (( +#50970| AArch64InstrInfo::isScaledAddr(*MI) +#50971| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50995:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50993:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50991| } +#50992| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#50993|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50994| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#50995| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51000:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50998:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50996| } +#50997| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#50998|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50999| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#51000| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51007:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51005:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51003| case 722: // STRBroX +#51004| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#51005|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51006| return 1692; // A64FXWrite_STUR_ReadDefault +#51007| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51017:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51015:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51013| } +#51014| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#51015|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#51016| return 1690; // WriteVST_ReadDefault +#51017| return 1690; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51025:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51020:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51018| } +#51019| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#51020|-> if (( +#51021| AArch64InstrInfo::isScaledAddr(*MI) +#51022| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51033:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51028:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51026| } +#51027| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#51028|-> if (( +#51029| AArch64InstrInfo::isScaledAddr(*MI) +#51030| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51054:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51052:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51050| } +#51051| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#51052|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51053| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#51054| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51059:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51057:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51055| } +#51056| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#51057|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51058| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#51059| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51066:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51064:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51062| case 727: // STRHHroW +#51063| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#51064|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51065| return 1692; // A64FXWrite_STUR_ReadDefault +#51066| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51076:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51074:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51072| } +#51073| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#51074|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#51075| return 1698; // M3WriteSB_ReadDefault +#51076| return 1698; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51084:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51079:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51077| } +#51078| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#51079|-> if (( +#51080| AArch64InstrInfo::isScaledAddr(*MI) +#51081| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51092:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51087:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51085| } +#51086| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#51087|-> if (( +#51088| AArch64InstrInfo::isScaledAddr(*MI) +#51089| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51102:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51100:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51098| } +#51099| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#51100|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51101| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#51102| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51107:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51105:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51103| } +#51104| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#51105|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51106| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#51107| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51114:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51112:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51110| case 728: // STRHHroX +#51111| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#51112|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51113| return 1692; // A64FXWrite_STUR_ReadDefault +#51114| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51124:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51122:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51120| } +#51121| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#51122|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#51123| return 1701; // WriteST_ReadDefault +#51124| return 1701; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51132:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51127:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51125| } +#51126| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#51127|-> if (( +#51128| AArch64InstrInfo::isScaledAddr(*MI) +#51129| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51140:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51135:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51133| } +#51134| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#51135|-> if (( +#51136| AArch64InstrInfo::isScaledAddr(*MI) +#51137| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51150:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51148:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51146| } +#51147| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#51148|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51149| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#51150| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51155:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51153:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51151| } +#51152| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#51153|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51154| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#51155| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51162:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51160:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51158| case 731: // STRHroW +#51159| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#51160|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51161| return 1692; // A64FXWrite_STUR_ReadDefault +#51162| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51172:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51170:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51168| } +#51169| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#51170|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#51171| return 1688; // M3WriteSA_ReadDefault +#51172| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51180:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51175:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51173| } +#51174| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#51175|-> if (( +#51176| AArch64InstrInfo::isScaledAddr(*MI) +#51177| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51188:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51183:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51181| } +#51182| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#51183|-> if (( +#51184| AArch64InstrInfo::isScaledAddr(*MI) +#51185| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51209:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51207:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51205| } +#51206| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#51207|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51208| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#51209| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51214:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51212:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51210| } +#51211| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#51212|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51213| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#51214| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51221:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51219:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51217| case 732: // STRHroX +#51218| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#51219|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51220| return 1692; // A64FXWrite_STUR_ReadDefault +#51221| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51231:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51229:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51227| } +#51228| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#51229|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#51230| return 1690; // WriteVST_ReadDefault +#51231| return 1690; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51239:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51234:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51232| } +#51233| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#51234|-> if (( +#51235| AArch64InstrInfo::isScaledAddr(*MI) +#51236| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51247:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51242:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51240| } +#51241| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#51242|-> if (( +#51243| AArch64InstrInfo::isScaledAddr(*MI) +#51244| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51268:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51266:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51264| } +#51265| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#51266|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51267| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#51268| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51273:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51271:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51269| } +#51270| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#51271|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51272| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#51273| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51280:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51278:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51276| case 735: // STRQroW +#51277| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#51278|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51279| return 1692; // A64FXWrite_STUR_ReadDefault +#51280| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51290:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51288:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51286| } +#51287| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#51288|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#51289| return 1688; // M3WriteSA_ReadDefault +#51290| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51298:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51293:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51291| } +#51292| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#51293|-> if (( +#51294| AArch64InstrInfo::isScaledAddr(*MI) +#51295| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51306:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51301:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51299| } +#51300| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#51301|-> if (( +#51302| AArch64InstrInfo::isScaledAddr(*MI) +#51303| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51327:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51325:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51323| } +#51324| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#51325|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51326| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#51327| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51332:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51330:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51328| } +#51329| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#51330|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51331| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#51332| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51339:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51337:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51335| case 736: // STRQroX +#51336| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#51337|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51338| return 1692; // A64FXWrite_STUR_ReadDefault +#51339| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51402:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51400:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51398| } +#51399| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#51400|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51401| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#51402| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51407:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51405:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51403| } +#51404| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#51405|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51406| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#51407| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52607:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52605:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52603| case 930: // STRDroW_STRDroX_STRSroW_STRSroX +#52604| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#52605|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52606| return 1692; // A64FXWrite_STUR_ReadDefault +#52607| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52617:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52615:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52613| } +#52614| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#52615|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#52616| return 1690; // WriteVST_ReadDefault +#52617| return 1690; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52625:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52620:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52618| } +#52619| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#52620|-> if (( +#52621| AArch64InstrInfo::isScaledAddr(*MI) +#52622| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52633:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52628:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52626| } +#52627| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#52628|-> if (( +#52629| AArch64InstrInfo::isScaledAddr(*MI) +#52630| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52654:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52652:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52650| } +#52651| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#52652|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52653| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#52654| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52659:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52657:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52655| } +#52656| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#52657|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52658| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#52659| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52729:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52727:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52725| case 965: // LDRBBroW_LDRBBroX_LDRWroW_LDRWroX_LDRXroW_LDRXroX +#52726| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#52727|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52728| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#52729| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52837:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52835:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52833| case 972: // LDRSBWroW_LDRSBWroX_LDRSBXroW_LDRSBXroX_LDRSWroW_LDRSWroX +#52834| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#52835|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52836| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#52837| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53009:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53007:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53005| case 1010: // STRBBroW_STRBBroX_STRWroW_STRWroX_STRXroW_STRXroX +#53006| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53007|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53008| return 1692; // A64FXWrite_STUR_ReadDefault +#53009| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53019:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53017:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53015| } +#53016| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#53017|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#53018| return 1701; // WriteST_ReadDefault +#53019| return 1701; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53027:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53022:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53020| } +#53021| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#53022|-> if (( +#53023| AArch64InstrInfo::isScaledAddr(*MI) +#53024| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53035:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53030:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53028| } +#53029| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#53030|-> if (( +#53031| AArch64InstrInfo::isScaledAddr(*MI) +#53032| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53045:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53043:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53041| } +#53042| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#53043|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53044| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#53045| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53050:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53048:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53046| } +#53047| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#53048|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53049| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#53050| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54368:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54366:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54364| case 1078: // LDRBBroW_LDRWroW_LDRXroW +#54365| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#54366|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#54367| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#54368| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54378:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54376:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54374| } +#54375| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#54376|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#54377| return 1680; // M3WriteLB_ReadDefault +#54378| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54386:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54381:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54379| } +#54380| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#54381|-> if (( +#54382| AArch64InstrInfo::isScaledAddr(*MI) +#54383| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54394:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54389:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54387| } +#54388| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#54389|-> if (( +#54390| AArch64InstrInfo::isScaledAddr(*MI) +#54391| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54416:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54414:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54412| case 1079: // LDRSBWroW_LDRSBXroW_LDRSWroW +#54413| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#54414|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#54415| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault +#54416| return 1587; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54426:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54424:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54422| } +#54423| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#54424|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#54425| return 1680; // M3WriteLB_ReadDefault +#54426| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54434:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54429:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54427| } +#54428| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#54429|-> if (( +#54430| AArch64InstrInfo::isScaledAddr(*MI) +#54431| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54442:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54437:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54435| } +#54436| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#54437|-> if (( +#54438| AArch64InstrInfo::isScaledAddr(*MI) +#54439| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54464:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54462:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54460| case 1080: // PRFMroW +#54461| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#54462|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#54463| return 1680; // M3WriteLB_ReadDefault +#54464| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54472:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54467:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54465| } +#54466| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#54467|-> if (( +#54468| AArch64InstrInfo::isScaledAddr(*MI) +#54469| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54480:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54475:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54473| } +#54474| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#54475|-> if (( +#54476| AArch64InstrInfo::isScaledAddr(*MI) +#54477| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54492:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54490:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54488| case 1081: // STRBBroW_STRWroW_STRXroW +#54489| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#54490|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#54491| return 1692; // A64FXWrite_STUR_ReadDefault +#54492| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54502:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54500:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54498| } +#54499| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#54500|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#54501| return 1698; // M3WriteSB_ReadDefault +#54502| return 1698; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54510:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54505:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54503| } +#54504| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#54505|-> if (( +#54506| AArch64InstrInfo::isScaledAddr(*MI) +#54507| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54518:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54513:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54511| } +#54512| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#54513|-> if (( +#54514| AArch64InstrInfo::isScaledAddr(*MI) +#54515| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54528:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54526:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54524| } +#54525| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#54526|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#54527| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#54528| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54533:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54531:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54529| } +#54530| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#54531|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#54532| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#54533| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54540:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54538:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54536| case 1091: // STRDroW_STRSroW +#54537| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#54538|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#54539| return 1692; // A64FXWrite_STUR_ReadDefault +#54540| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54550:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54548:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54546| } +#54547| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#54548|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#54549| return 1688; // M3WriteSA_ReadDefault +#54550| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54558:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54553:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54551| } +#54552| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#54553|-> if (( +#54554| AArch64InstrInfo::isScaledAddr(*MI) +#54555| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54566:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54561:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54559| } +#54560| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#54561|-> if (( +#54562| AArch64InstrInfo::isScaledAddr(*MI) +#54563| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54587:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54585:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54583| } +#54584| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#54585|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#54586| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#54587| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54592:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:54590:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#54588| } +#54589| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#54590|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#54591| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#54592| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55471:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55469:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55467| case 1226: // LDRWroW +#55468| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55469|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55470| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#55471| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55481:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55479:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55477| } +#55478| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#55479|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#55480| return 1680; // M3WriteLB_ReadDefault +#55481| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55489:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55484:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55482| } +#55483| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#55484|-> if (( +#55485| AArch64InstrInfo::isScaledAddr(*MI) +#55486| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55497:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55492:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55490| } +#55491| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#55492|-> if (( +#55493| AArch64InstrInfo::isScaledAddr(*MI) +#55494| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55507:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55505:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55503| } +#55504| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55505|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55506| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#55507| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55512:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55510:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55508| } +#55509| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55510|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55511| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#55512| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55519:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55517:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55515| case 1227: // LDRXroW +#55516| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55517|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55518| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#55519| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55529:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55527:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55525| } +#55526| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#55527|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#55528| return 1680; // M3WriteLB_ReadDefault +#55529| return 1680; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55537:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55532:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55530| } +#55531| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#55532|-> if (( +#55533| AArch64InstrInfo::isScaledAddr(*MI) +#55534| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55545:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55540:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55538| } +#55539| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#55540|-> if (( +#55541| AArch64InstrInfo::isScaledAddr(*MI) +#55542| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55555:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55553:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55551| } +#55552| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55553|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55554| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#55555| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55560:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55558:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55556| } +#55557| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55558|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55559| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#55560| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55567:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55565:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55563| case 1228: // LDRWroX +#55564| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55565|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55566| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#55567| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55619:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55617:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55615| } +#55616| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55617|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55618| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#55619| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55624:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55622:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55620| } +#55621| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55622|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55623| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#55624| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55631:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55629:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55627| case 1229: // LDRXroX +#55628| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55629|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55630| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault +#55631| return 1676; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55683:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55681:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55679| } +#55680| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55681|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55682| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#55683| return 1675; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55688:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55686:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55684| } +#55685| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55686|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55687| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#55688| return 1598; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55695:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55693:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55691| case 1252: // STRBBroW +#55692| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55693|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55694| return 1692; // A64FXWrite_STUR_ReadDefault +#55695| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55705:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55703:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55701| } +#55702| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#55703|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#55704| return 1698; // M3WriteSB_ReadDefault +#55705| return 1698; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55713:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55708:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55706| } +#55707| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#55708|-> if (( +#55709| AArch64InstrInfo::isScaledAddr(*MI) +#55710| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55721:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55716:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55714| } +#55715| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#55716|-> if (( +#55717| AArch64InstrInfo::isScaledAddr(*MI) +#55718| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55731:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55729:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55727| } +#55728| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55729|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55730| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#55731| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55736:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55734:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55732| } +#55733| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55734|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55735| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#55736| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55743:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55741:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55739| case 1253: // STRBBroX +#55740| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55741|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55742| return 1692; // A64FXWrite_STUR_ReadDefault +#55743| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55753:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55751:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55749| } +#55750| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#55751|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#55752| return 1701; // WriteST_ReadDefault +#55753| return 1701; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55761:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55756:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55754| } +#55755| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#55756|-> if (( +#55757| AArch64InstrInfo::isScaledAddr(*MI) +#55758| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55769:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55764:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55762| } +#55763| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#55764|-> if (( +#55765| AArch64InstrInfo::isScaledAddr(*MI) +#55766| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55779:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55777:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55775| } +#55776| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55777|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55778| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#55779| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55784:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55782:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55780| } +#55781| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55782|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55783| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#55784| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55791:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55789:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55787| case 1254: // STRDroW +#55788| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55789|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55790| return 1692; // A64FXWrite_STUR_ReadDefault +#55791| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55801:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55799:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55797| } +#55798| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#55799|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#55800| return 1688; // M3WriteSA_ReadDefault +#55801| return 1688; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55809:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55804:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55802| } +#55803| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#55804|-> if (( +#55805| AArch64InstrInfo::isScaledAddr(*MI) +#55806| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55817:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55812:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55810| } +#55811| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#55812|-> if (( +#55813| AArch64InstrInfo::isScaledAddr(*MI) +#55814| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55838:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55836:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55834| } +#55835| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55836|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55837| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#55838| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55843:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55841:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55839| } +#55840| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55841|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55842| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#55843| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55850:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55848:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55846| case 1255: // STRDroX +#55847| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55848|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55849| return 1692; // A64FXWrite_STUR_ReadDefault +#55850| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55860:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55858:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55856| } +#55857| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#55858|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#55859| return 1690; // WriteVST_ReadDefault +#55860| return 1690; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55868:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55863:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55861| } +#55862| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#55863|-> if (( +#55864| AArch64InstrInfo::isScaledAddr(*MI) +#55865| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55876:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55871:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55869| } +#55870| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#55871|-> if (( +#55872| AArch64InstrInfo::isScaledAddr(*MI) +#55873| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55897:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55895:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55893| } +#55894| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55895|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55896| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#55897| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55902:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55900:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55898| } +#55899| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55900|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55901| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#55902| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55909:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55907:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55905| case 1256: // STRWroW +#55906| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55907|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55908| return 1692; // A64FXWrite_STUR_ReadDefault +#55909| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55919:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55917:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55915| } +#55916| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#55917|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#55918| return 1698; // M3WriteSB_ReadDefault +#55919| return 1698; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55927:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55922:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55920| } +#55921| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#55922|-> if (( +#55923| AArch64InstrInfo::isScaledAddr(*MI) +#55924| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55935:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55930:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55928| } +#55929| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#55930|-> if (( +#55931| AArch64InstrInfo::isScaledAddr(*MI) +#55932| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55945:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55943:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55941| } +#55942| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55943|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55944| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#55945| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55950:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55948:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55946| } +#55947| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55948|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55949| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#55950| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55957:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55955:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55953| case 1257: // STRWroX +#55954| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#55955|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55956| return 1692; // A64FXWrite_STUR_ReadDefault +#55957| return 1692; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55967:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55965:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55963| } +#55964| if (SchedModel->getProcessorID() == 10) { // ExynosM3Model +#55965|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#55966| return 1701; // WriteST_ReadDefault +#55967| return 1701; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55975:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55970:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55968| } +#55969| if (SchedModel->getProcessorID() == 11) { // ExynosM4Model +#55970|-> if (( +#55971| AArch64InstrInfo::isScaledAddr(*MI) +#55972| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55983:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55978:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55976| } +#55977| if (SchedModel->getProcessorID() == 12) { // ExynosM5Model +#55978|-> if (( +#55979| AArch64InstrInfo::isScaledAddr(*MI) +#55980| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55993:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55991:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55989| } +#55990| if (SchedModel->getProcessorID() == 19) { // ThunderX2T99Model +#55991|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55992| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#55993| return 1691; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55998:7: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:55996:7: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#55994| } +#55995| if (SchedModel->getProcessorID() == 20) { // ThunderX3T110Model +#55996|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#55997| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#55998| return 1693; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-project-19.0.0.src/llvm/redhat-linux-build/lib/libear/__init__.py:140:17: identical_branches: Ternary expression on condition "release" has identical then and else expressions: "{}". Should one of the expressions be modified, or the entire ternary expression replaced? +# 138| +# 139| def shared_library_ld_flags(self, release, name): +# 140|-> extra = [] if release else [] +# 141| return extra + ["-shared", "-Wl,-soname," + name] +# 142| diff --git a/tests/csdiff/diff-misc/25-llvm-17-path-filter-old.err b/tests/csdiff/diff-misc/25-llvm-17-path-filter-old.err new file mode 100644 index 00000000..2bb8bafc --- /dev/null +++ b/tests/csdiff/diff-misc/25-llvm-17-path-filter-old.err @@ -0,0 +1,22898 @@ +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/examples/Bye/Bye.cpp:11: constructor_uses_global_object: The constructor of global object "Wave" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Wave" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 9| using namespace llvm; +# 10| +# 11|-> static cl::opt Wave("wave-goodbye", cl::init(false), +# 12| cl::desc("wave good bye")); +# 13| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/examples/IRTransforms/SimplifyCFG.cpp:49: constructor_uses_global_object: The constructor of global object "Version" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Version" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| enum TutorialVersion { V1, V2, V3 }; +# 48| static cl::opt +# 49|-> Version("tut-simplifycfg-version", cl::desc("Select tutorial version"), +# 50| cl::Hidden, cl::ValueOptional, cl::init(V1), +# 51| cl::values(clEnumValN(V1, "v1", "version 1"), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:939: var_decl: Declaring variable "Val". +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:940: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeZero". +# 938| static APFloat getZero(const fltSemantics &Sem, bool Negative = false) { +# 939| APFloat Val(Sem, uninitialized); +# 940|-> Val.makeZero(Negative); +# 941| return Val; +# 942| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:948: var_decl: Declaring variable "Val". +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:949: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeInf". +# 947| static APFloat getInf(const fltSemantics &Sem, bool Negative = false) { +# 948| APFloat Val(Sem, uninitialized); +# 949|-> Val.makeInf(Negative); +# 950| return Val; +# 951| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:971: var_decl: Declaring variable "Val". +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:972: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeNaN". +# 970| const APInt *payload = nullptr) { +# 971| APFloat Val(Sem, uninitialized); +# 972|-> Val.makeNaN(false, Negative, payload); +# 973| return Val; +# 974| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:979: var_decl: Declaring variable "Val". +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:980: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeNaN". +# 978| const APInt *payload = nullptr) { +# 979| APFloat Val(Sem, uninitialized); +# 980|-> Val.makeNaN(true, Negative, payload); +# 981| return Val; +# 982| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:988: var_decl: Declaring variable "Val". +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:989: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeLargest". +# 987| static APFloat getLargest(const fltSemantics &Sem, bool Negative = false) { +# 988| APFloat Val(Sem, uninitialized); +# 989|-> Val.makeLargest(Negative); +# 990| return Val; +# 991| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:998: var_decl: Declaring variable "Val". +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:999: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeSmallest". +# 997| static APFloat getSmallest(const fltSemantics &Sem, bool Negative = false) { +# 998| APFloat Val(Sem, uninitialized); +# 999|-> Val.makeSmallest(Negative); +# 1000| return Val; +# 1001| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:1009: var_decl: Declaring variable "Val". +llvm-17.0.6.src/include/llvm/ADT/APFloat.h:1010: uninit_use_in_call: Using uninitialized value "Val.U" when calling "makeSmallestNormalized". +# 1008| bool Negative = false) { +# 1009| APFloat Val(Sem, uninitialized); +# 1010|-> Val.makeSmallestNormalized(Negative); +# 1011| return Val; +# 1012| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/BitVector.h:842: var_decl: Declaring variable "V". +llvm-17.0.6.src/include/llvm/ADT/BitVector.h:844: uninit_use: Using uninitialized value "V". Field "V.Bits.InlineElts" is uninitialized. +# 842| BitVector V; +# 843| V.invalid(); +# 844|-> return V; +# 845| } +# 846| static unsigned getHashValue(const BitVector &V) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:945: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:947: uninit_use_in_call: Using uninitialized value "this->NumEntries" when calling "swap". +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:947: uninit_use_in_call: Using uninitialized value "this->NumTombstones" when calling "swap". +# 945| SmallDenseMap(SmallDenseMap &&other) : BaseT() { +# 946| init(0); +# 947|-> swap(other); +# 948| } +# 949| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:1077: address_of: Taking address with "&TmpStorage" yields a singleton pointer. +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:1077: assign: Assigning: "TmpBegin" = "reinterpret_cast *>(&TmpStorage)". +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:1078: assign: Assigning: "TmpEnd" = "TmpBegin". +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:1091: ptr_arith: Using "TmpEnd" as an array. This might corrupt or misinterpret adjacent memory locations. +# 1089| ::new (&TmpEnd->getFirst()) KeyT(std::move(P->getFirst())); +# 1090| ::new (&TmpEnd->getSecond()) ValueT(std::move(P->getSecond())); +# 1091|-> ++TmpEnd; +# 1092| P->getSecond().~ValueT(); +# 1093| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:1077: address_of: Taking address with "&TmpStorage" yields a singleton pointer. +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:1077: assign: Assigning: "TmpBegin" = "reinterpret_cast *>(&TmpStorage)". +llvm-17.0.6.src/include/llvm/ADT/DenseMap.h:1104: callee_ptr_arith: Passing "TmpBegin" to function "moveFromOldBuckets" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1102| new (getLargeRep()) LargeRep(allocateBuckets(AtLeast)); +# 1103| } +# 1104|-> this->moveFromOldBuckets(TmpBegin, TmpEnd); +# 1105| return; +# 1106| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1228: overrun-buffer-arg: Overrunning array "size" of 2 4-byte elements by passing it to a function which accesses it at element index 2 (byte offset 11) using argument "2U". +# 1226| size[0] = rootSize; +# 1227| else +# 1228|-> NewOffset = distribute(Nodes, rootSize, Leaf::Capacity, nullptr, size, +# 1229| Position, true); +# 1230| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1679: assignment: Assigning: "i" = "NR.size() - 1U". The value of "i" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1681: overrun-call: Overrunning callee's array of size 16 by passing argument "i" (which evaluates to 63) in call to "stop". +# 1679| unsigned i = NR.size() - 1; +# 1680| Leaf &Node = NR.get(); +# 1681|-> return Node.value(i) == Value && Traits::adjacent(Node.stop(i), Start); +# 1682| } +# 1683| return false; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1679: assignment: Assigning: "i" = "NR.size() - 1U". The value of "i" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1681: overrun-call: Overrunning callee's array of size 16 by passing argument "i" (which evaluates to 63) in call to "value". +# 1679| unsigned i = NR.size() - 1; +# 1680| Leaf &Node = NR.get(); +# 1681|-> return Node.value(i) == Value && Traits::adjacent(Node.stop(i), Start); +# 1682| } +# 1683| return false; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1679: assignment: Assigning: "i" = "NR.size() - 1U". The value of "i" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1681: overrun-call: Overrunning callee's array of size 4 by passing argument "i" (which evaluates to 63) in call to "stop". +# 1679| unsigned i = NR.size() - 1; +# 1680| Leaf &Node = NR.get(); +# 1681|-> return Node.value(i) == Value && Traits::adjacent(Node.stop(i), Start); +# 1682| } +# 1683| return false; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1679: assignment: Assigning: "i" = "NR.size() - 1U". The value of "i" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1681: overrun-call: Overrunning callee's array of size 4 by passing argument "i" (which evaluates to 63) in call to "value". +# 1679| unsigned i = NR.size() - 1; +# 1680| Leaf &Node = NR.get(); +# 1681|-> return Node.value(i) == Value && Traits::adjacent(Node.stop(i), Start); +# 1682| } +# 1683| return false; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 10 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 10 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 11 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 11 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 16 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 16 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 21 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 21 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 4 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 4 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 8 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 8 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 9 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1871: overrun-call: Overrunning callee's array of size 9 by passing argument "SibOfs" (which evaluates to 63) in call to "value". +# 1869| Leaf &SibLeaf = Sib.get(); +# 1870| unsigned SibOfs = Sib.size() - 1; +# 1871|-> if (SibLeaf.value(SibOfs) == y && +# 1872| Traits::adjacent(SibLeaf.stop(SibOfs), a)) { +# 1873| // This insertion will coalesce with the last entry in SibLeaf. We can + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1883: overrun-call: Overrunning callee's array of size 10 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1883: overrun-call: Overrunning callee's array of size 11 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1883: overrun-call: Overrunning callee's array of size 16 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1883: overrun-call: Overrunning callee's array of size 21 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1883: overrun-call: Overrunning callee's array of size 4 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1883: overrun-call: Overrunning callee's array of size 8 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1883: overrun-call: Overrunning callee's array of size 9 by passing argument "SibOfs" (which evaluates to 63) in call to "stop". +# 1881| (y != CurLeaf.value(0) || !Traits::adjacent(b, CurLeaf.start(0)))) { +# 1882| // Easy, just extend SibLeaf and we're done. +# 1883|-> setNodeStop(P.height(), SibLeaf.stop(SibOfs) = b); +# 1884| return; +# 1885| } else { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1888: overrun-call: Overrunning callee's array of size 10 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1888: overrun-call: Overrunning callee's array of size 11 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1888: overrun-call: Overrunning callee's array of size 16 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1888: overrun-call: Overrunning callee's array of size 21 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1888: overrun-call: Overrunning callee's array of size 4 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1888: overrun-call: Overrunning callee's array of size 8 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1870: assignment: Assigning: "SibOfs" = "Sib.size() - 1U". The value of "SibOfs" is now between 0 and 63 (inclusive). +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:1888: overrun-call: Overrunning callee's array of size 9 by passing argument "SibOfs" (which evaluates to 63) in call to "start". +# 1886| // We have both left and right coalescing. Erase the old SibLeaf entry +# 1887| // and continue inserting the larger interval. +# 1888|-> a = SibLeaf.start(SibOfs); +# 1889| treeErase(/* UpdateRoot= */false); +# 1890| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:2022: assignment: Assigning: "Nodes" = "0U". +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:2030: incr: Incrementing "Nodes". The value of "Nodes" is now 1. +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:2035: incr: Incrementing "Nodes". The value of "Nodes" is now 2. +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:2041: incr: Incrementing "Nodes". The value of "Nodes" is now 3. +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:2053: incr: Incrementing "Nodes". The value of "Nodes" is now 4. +llvm-17.0.6.src/include/llvm/ADT/IntervalMap.h:2058: overrun-buffer-arg: Overrunning array "NewSize" of 4 4-byte elements by passing it to a function which accesses it at element index 4 (byte offset 19) using argument "Nodes" (which evaluates to 4). +# 2056| // Compute the new element distribution. +# 2057| unsigned NewSize[4]; +# 2058|-> IdxPair NewOffset = distribute(Nodes, Elements, NodeT::Capacity, +# 2059| CurSize, NewSize, Offset, true); +# 2060| adjustSiblingSizes(Node, Nodes, CurSize, NewSize); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/IntervalTree.h:619: var_decl: Declaring variable "IntervalSet". +llvm-17.0.6.src/include/llvm/ADT/IntervalTree.h:622: uninit_use: Using uninitialized value "IntervalSet". Field "IntervalSet.InlineElts" is uninitialized. +# 620| for (find_iterator Iter = find(Point), E = find_end(); Iter != E; ++Iter) +# 621| IntervalSet.push_back(const_cast(&(*Iter))); +# 622|-> return IntervalSet; +# 623| } +# 624| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/STLExtras.h:585: move: "Range" is moved (indicated by "std::forward(Range)"). +llvm-17.0.6.src/include/llvm/ADT/STLExtras.h:585: use_after_move: "Range" is used after it has been already moved. +# 583| using FilterIteratorT = +# 584| filter_iterator, PredicateT>; +# 585|-> return make_range( +# 586| FilterIteratorT(std::begin(std::forward(Range)), +# 587| std::end(std::forward(Range)), Pred), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/STLExtras.h:669: move: "Range" is moved (indicated by "std::forward(Range)"). +llvm-17.0.6.src/include/llvm/ADT/STLExtras.h:669: use_after_move: "Range" is used after it has been already moved. +# 667| using EarlyIncIteratorT = +# 668| early_inc_iterator_impl>; +# 669|-> return make_range(EarlyIncIteratorT(std::begin(std::forward(Range))), +# 670| EarlyIncIteratorT(std::end(std::forward(Range)))); +# 671| } + +Error: USE_AFTER_FREE (CWE-416): +llvm-17.0.6.src/include/llvm/ADT/SetVector.h:174: freed_arg: "insert" frees "X.P". +llvm-17.0.6.src/include/llvm/ADT/SetVector.h:176: deref_arg: Calling "push_back" dereferences freed pointer "X.P". +# 174| bool result = set_.insert(X).second; +# 175| if (result) +# 176|-> vector_.push_back(X); +# 177| return result; +# 178| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/include/llvm/ADT/SparseBitVector.h:366: tainted_data_return: Called function "this->Iter->find_next(this->BitNumber % 128U)", and a possible return value may be less than zero. +llvm-17.0.6.src/include/llvm/ADT/SparseBitVector.h:366: assign: Assigning: "NextSetBitNumber" = "this->Iter->find_next(this->BitNumber % 128U)". +llvm-17.0.6.src/include/llvm/ADT/SparseBitVector.h:385: overflow: The expression "NextSetBitNumber % 128U" might be negative, but is used in a context that treats it as unsigned. +llvm-17.0.6.src/include/llvm/ADT/SparseBitVector.h:385: overflow: The expression "NextSetBitNumber % 128U / BITWORD_SIZE" is deemed underflowed because at least one of its arguments has underflowed. +llvm-17.0.6.src/include/llvm/ADT/SparseBitVector.h:385: assign: Assigning: "this->WordNumber" = "NextSetBitNumber % 128U / BITWORD_SIZE". +llvm-17.0.6.src/include/llvm/ADT/SparseBitVector.h:386: overflow_sink: "this->WordNumber", which might have underflowed, is passed to "this->Iter->word(this->WordNumber)". +# 384| } else { +# 385| WordNumber = (NextSetBitNumber % ElementSize) / BITWORD_SIZE; +# 386|-> Bits = Iter->word(WordNumber); +# 387| Bits >>= NextSetBitNumber % BITWORD_SIZE; +# 388| BitNumber = Iter->index() * ElementSize; + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/StringMap.h:330: move: "Val" is moved (indicated by "std::forward(Val)"). +llvm-17.0.6.src/include/llvm/ADT/StringMap.h:332: use_after_move: "Val" is used after it has been already moved. +# 330| auto Ret = try_emplace(Key, std::forward(Val)); +# 331| if (!Ret.second) +# 332|-> Ret.first->second = std::forward(Val); +# 333| return Ret; +# 334| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/ilist.h:138: move: "X" is moved (indicated by "std::move(static_cast &>(X))"). +llvm-17.0.6.src/include/llvm/ADT/ilist.h:139: use_after_move: "X" is used after it has been already moved. +# 137| iplist_impl(iplist_impl &&X) +# 138| : TraitsT(std::move(static_cast(X))), +# 139|-> IntrusiveListT(std::move(static_cast(X))) {} +# 140| iplist_impl &operator=(iplist_impl &&X) { +# 141| *static_cast(this) = std::move(static_cast(X)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/iterator.h:338: move: "Range" is moved (indicated by "std::forward(Range)"). +llvm-17.0.6.src/include/llvm/ADT/iterator.h:338: use_after_move: "Range" is used after it has been already moved. +# 336| make_pointee_range(RangeT &&Range) { +# 337| using PointeeIteratorT = pointee_iterator; +# 338|-> return make_range(PointeeIteratorT(std::begin(std::forward(Range))), +# 339| PointeeIteratorT(std::end(std::forward(Range)))); +# 340| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/iterator.h:365: move: "Range" is moved (indicated by "std::forward(Range)"). +llvm-17.0.6.src/include/llvm/ADT/iterator.h:365: use_after_move: "Range" is used after it has been already moved. +# 363| make_pointer_range(RangeT &&Range) { +# 364| using PointerIteratorT = pointer_iterator; +# 365|-> return make_range(PointerIteratorT(std::begin(std::forward(Range))), +# 366| PointerIteratorT(std::end(std::forward(Range)))); +# 367| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ADT/iterator_range.h:56: move: "c" is moved (indicated by "std::forward(c)"). +llvm-17.0.6.src/include/llvm/ADT/iterator_range.h:57: use_after_move: "c" is used after it has been already moved. +# 55| iterator_range(Container &&c) +# 56| : begin_iterator(adl_begin(std::forward(c))), +# 57|-> end_iterator(adl_end(std::forward(c))) { +# 58| } +# 59| iterator_range(IteratorT begin_iterator, IteratorT end_iterator) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Analysis/LoopNestAnalysis.h:123: var_decl: Declaring variable "Result". +llvm-17.0.6.src/include/llvm/Analysis/LoopNestAnalysis.h:131: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 129| break; +# 130| } +# 131|-> return Result; +# 132| } +# 133| + +Error: USE_AFTER_FREE (CWE-416): +llvm-17.0.6.src/include/llvm/Analysis/MemorySSA.h:563: freed_arg: "growOperands" frees "this". +llvm-17.0.6.src/include/llvm/Analysis/MemorySSA.h:565: deref_arg: Calling "getNumOperands" dereferences freed pointer "this". +# 563| growOperands(); // Get more space! +# 564| // Initialize some new operands. +# 565|-> setNumHungOffUseOperands(getNumOperands() + 1); +# 566| setIncomingValue(getNumOperands() - 1, V); +# 567| setIncomingBlock(getNumOperands() - 1, BB); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/Analysis/ScalarEvolution.h:1632: move: "CR" is moved (indicated by "std::move(CR)"). +llvm-17.0.6.src/include/llvm/Analysis/ScalarEvolution.h:1634: use_after_move: "CR" is used after it has been already moved. +# 1632| auto Pair = Cache.try_emplace(S, std::move(CR)); +# 1633| if (!Pair.second) +# 1634|-> Pair.first->second = std::move(CR); +# 1635| return Pair.first->second; +# 1636| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:204: var_decl: Declaring variable "Res". +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:209: uninit_use: Using uninitialized value "Res". Field "Res" is uninitialized. +# 207| else +# 208| Res.markConstant(C); +# 209|-> return Res; +# 210| } +# 211| static ValueLatticeElement getNot(Constant *C) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:223: var_decl: Declaring variable "Res". +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:226: uninit_use: Using uninitialized value "Res". Field "Res" is uninitialized. +# 224| if (MayIncludeUndef) +# 225| Res.markUndef(); +# 226|-> return Res; +# 227| } +# 228| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:235: var_decl: Declaring variable "Res". +llvm-17.0.6.src/include/llvm/Analysis/ValueLattice.h:237: uninit_use: Using uninitialized value "Res". Field "Res" is uninitialized. +# 235| ValueLatticeElement Res; +# 236| Res.markOverdefined(); +# 237|-> return Res; +# 238| } +# 239| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Analysis/VectorUtils.h:267: var_decl: Declaring variable "Ret". +llvm-17.0.6.src/include/llvm/Analysis/VectorUtils.h:274: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 272| // Other non-VFABI variants should be retrieved here. +# 273| +# 274|-> return Ret; +# 275| } +# 276| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1199: constructor_uses_global_object: The constructor of global object "::DumpDebugAbbrev" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugAbbrev" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1197| // TODO: Add Mach-O and COFF names. +# 1198| // Official DWARF sections. +# 1199|-> HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +# 1200| HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +# 1201| HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1200: constructor_uses_global_object: The constructor of global object "::DumpDebugAddr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugAddr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1198| // Official DWARF sections. +# 1199| HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +# 1200|-> HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +# 1201| HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", +# 1202| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1201: constructor_uses_global_object: The constructor of global object "::DumpDebugAranges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugAranges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1199| HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +# 1200| HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +# 1201|-> HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", +# 1202| BoolOption) +# 1203| HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1203: constructor_uses_global_object: The constructor of global object "::DumpDebugInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1201| HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", +# 1202| BoolOption) +# 1203|-> HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +# 1204| HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205| HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1204: constructor_uses_global_object: The constructor of global object "::DumpDebugTypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugTypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1202| BoolOption) +# 1203| HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +# 1204|-> HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205| HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +# 1206| HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1205: constructor_uses_global_object: The constructor of global object "::DumpDebugLine" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLine" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1203| HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +# 1204| HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205|-> HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +# 1206| HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", +# 1207| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1206: constructor_uses_global_object: The constructor of global object "::DumpDebugLineStr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLineStr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1204| HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +# 1205| HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +# 1206|-> HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", +# 1207| BoolOption) +# 1208| HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1208: constructor_uses_global_object: The constructor of global object "::DumpDebugLoc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLoc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1206| HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", +# 1207| BoolOption) +# 1208|-> HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) +# 1209| HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", +# 1210| OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1209: constructor_uses_global_object: The constructor of global object "::DumpDebugLoclists" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugLoclists" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1207| BoolOption) +# 1208| HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) +# 1209|-> HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", +# 1210| OffsetOption) +# 1211| HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1211: constructor_uses_global_object: The constructor of global object "::DumpDebugFrame" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugFrame" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1209| HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", +# 1210| OffsetOption) +# 1211|-> HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +# 1212| HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213| HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1212: constructor_uses_global_object: The constructor of global object "::DumpDebugMacro" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugMacro" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1210| OffsetOption) +# 1211| HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +# 1212|-> HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213| HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +# 1214| HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1213: constructor_uses_global_object: The constructor of global object "::DumpDebugNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1211| HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +# 1212| HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213|-> HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +# 1214| HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", +# 1215| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1214: constructor_uses_global_object: The constructor of global object "::DumpDebugPubnames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugPubnames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1212| HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +# 1213| HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +# 1214|-> HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", +# 1215| BoolOption) +# 1216| HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1216: constructor_uses_global_object: The constructor of global object "::DumpDebugPubtypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugPubtypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1214| HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", +# 1215| BoolOption) +# 1216|-> HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", +# 1217| BoolOption) +# 1218| HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1218: constructor_uses_global_object: The constructor of global object "::DumpDebugGnuPubnames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugGnuPubnames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1216| HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", +# 1217| BoolOption) +# 1218|-> HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", +# 1219| "debug-gnu-pubnames", BoolOption) +# 1220| HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1220: constructor_uses_global_object: The constructor of global object "::DumpDebugGnuPubtypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugGnuPubtypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1218| HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", +# 1219| "debug-gnu-pubnames", BoolOption) +# 1220|-> HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", +# 1221| "debug-gnu-pubtypes", BoolOption) +# 1222| HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1222: constructor_uses_global_object: The constructor of global object "::DumpDebugRanges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugRanges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1220| HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", +# 1221| "debug-gnu-pubtypes", BoolOption) +# 1222|-> HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) +# 1223| HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", +# 1224| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1223: constructor_uses_global_object: The constructor of global object "::DumpDebugRnglists" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugRnglists" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1221| "debug-gnu-pubtypes", BoolOption) +# 1222| HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) +# 1223|-> HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", +# 1224| BoolOption) +# 1225| HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1225: constructor_uses_global_object: The constructor of global object "::DumpDebugStr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugStr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1223| HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", +# 1224| BoolOption) +# 1225|-> HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) +# 1226| HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", +# 1227| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1226: constructor_uses_global_object: The constructor of global object "::DumpDebugStrOffsets" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugStrOffsets" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1224| BoolOption) +# 1225| HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) +# 1226|-> HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", +# 1227| BoolOption) +# 1228| HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1228: constructor_uses_global_object: The constructor of global object "::DumpDebugCUIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugCUIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1226| HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", +# 1227| BoolOption) +# 1228|-> HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", +# 1229| BoolOption) +# 1230| HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1230: constructor_uses_global_object: The constructor of global object "::DumpDebugTUIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpDebugTUIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1228| HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", +# 1229| BoolOption) +# 1230|-> HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index", +# 1231| BoolOption) +# 1232| // Vendor extensions. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1233: constructor_uses_global_object: The constructor of global object "::DumpAppleNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1231| BoolOption) +# 1232| // Vendor extensions. +# 1233|-> HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +# 1234| HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +# 1235| HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1234: constructor_uses_global_object: The constructor of global object "::DumpAppleTypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleTypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1232| // Vendor extensions. +# 1233| HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +# 1234|-> HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +# 1235| HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", +# 1236| BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1235: constructor_uses_global_object: The constructor of global object "::DumpAppleNamespaces" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleNamespaces" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1233| HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +# 1234| HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +# 1235|-> HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", +# 1236| BoolOption) +# 1237| HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1237: constructor_uses_global_object: The constructor of global object "::DumpAppleObjC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpAppleObjC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1235| HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", +# 1236| BoolOption) +# 1237|-> HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) +# 1238| HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index", BoolOption) +# 1239| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/BinaryFormat/Dwarf.def:1238: constructor_uses_global_object: The constructor of global object "::DumpGdbIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DumpGdbIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1236| BoolOption) +# 1237| HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) +# 1238|-> HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index", BoolOption) +# 1239| +# 1240| HANDLE_DW_IDX(0x01, compile_unit) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/BinaryFormat/MsgPackDocument.h:309: var_decl: Declaring variable "N". +llvm-17.0.6.src/include/llvm/BinaryFormat/MsgPackDocument.h:310: uninit_use: Using uninitialized value "N". Field "N" is uninitialized. +# 308| DocNode getEmptyNode() { +# 309| auto N = DocNode(&KindAndDocs[size_t(Type::Empty)]); +# 310|-> return N; +# 311| } +# 312| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/BinaryFormat/MsgPackDocument.h:315: var_decl: Declaring variable "N". +llvm-17.0.6.src/include/llvm/BinaryFormat/MsgPackDocument.h:316: uninit_use: Using uninitialized value "N". Field "N" is uninitialized. +# 314| DocNode getNode() { +# 315| auto N = DocNode(&KindAndDocs[size_t(Type::Nil)]); +# 316|-> return N; +# 317| } +# 318| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/BinaryFormat/WasmTraits.h:24: var_decl: Declaring variable "Sig". +llvm-17.0.6.src/include/llvm/BinaryFormat/WasmTraits.h:26: uninit_use: Using uninitialized value "Sig". Field "Sig.Returns.InlineElts" is uninitialized. +# 24| wasm::WasmSignature Sig; +# 25| Sig.State = wasm::WasmSignature::Empty; +# 26|-> return Sig; +# 27| } +# 28| static wasm::WasmSignature getTombstoneKey() { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/BinaryFormat/WasmTraits.h:29: var_decl: Declaring variable "Sig". +llvm-17.0.6.src/include/llvm/BinaryFormat/WasmTraits.h:31: uninit_use: Using uninitialized value "Sig". Field "Sig.Returns.InlineElts" is uninitialized. +# 29| wasm::WasmSignature Sig; +# 30| Sig.State = wasm::WasmSignature::Tombstone; +# 31|-> return Sig; +# 32| } +# 33| static unsigned getHashValue(const wasm::WasmSignature &Sig) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Bitstream/BitstreamReader.h:337: var_decl: Declaring variable "E" without initializer. +llvm-17.0.6.src/include/llvm/Bitstream/BitstreamReader.h:337: uninit_use: Using uninitialized value "E". Field "E.ID" is uninitialized. +# 335| +# 336| static BitstreamEntry getError() { +# 337|-> BitstreamEntry E; E.Kind = Error; return E; +# 338| } +# 339| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Bitstream/BitstreamReader.h:341: var_decl: Declaring variable "E" without initializer. +llvm-17.0.6.src/include/llvm/Bitstream/BitstreamReader.h:341: uninit_use: Using uninitialized value "E". Field "E.ID" is uninitialized. +# 339| +# 340| static BitstreamEntry getEndBlock() { +# 341|-> BitstreamEntry E; E.Kind = EndBlock; return E; +# 342| } +# 343| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h:445: overrun-call: Overrunning callee's array of size 8 by passing argument "MMO->getMergedOrdering()" (which evaluates to 15) in call to "isAtLeastOrStrongerThan". +# 443| +# 444| for (const auto &MMO : State.MIs[InsnID]->memoperands()) +# 445|-> if (!isAtLeastOrStrongerThan(MMO->getMergedOrdering(), Ordering)) +# 446| if (handleReject() == RejectAndGiveUp) +# 447| return false; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:35: alloc_fn: Storage is returned from allocation function "createFastRegisterAllocator". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:35: leaked_storage: Failing to save or free storage allocated by "llvm::createFastRegisterAllocator()" leaks it. +# 33| return; +# 34| +# 35|-> (void) llvm::createFastRegisterAllocator(); +# 36| (void) llvm::createBasicRegisterAllocator(); +# 37| (void) llvm::createGreedyRegisterAllocator(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:36: alloc_fn: Storage is returned from allocation function "createBasicRegisterAllocator". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:36: leaked_storage: Failing to save or free storage allocated by "llvm::createBasicRegisterAllocator()" leaks it. +# 34| +# 35| (void) llvm::createFastRegisterAllocator(); +# 36|-> (void) llvm::createBasicRegisterAllocator(); +# 37| (void) llvm::createGreedyRegisterAllocator(); +# 38| (void) llvm::createDefaultPBQPRegisterAllocator(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:37: alloc_fn: Storage is returned from allocation function "createGreedyRegisterAllocator". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:37: leaked_storage: Failing to save or free storage allocated by "llvm::createGreedyRegisterAllocator()" leaks it. +# 35| (void) llvm::createFastRegisterAllocator(); +# 36| (void) llvm::createBasicRegisterAllocator(); +# 37|-> (void) llvm::createGreedyRegisterAllocator(); +# 38| (void) llvm::createDefaultPBQPRegisterAllocator(); +# 39| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:38: alloc_fn: Storage is returned from allocation function "createDefaultPBQPRegisterAllocator". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:38: leaked_storage: Failing to save or free storage allocated by "llvm::createDefaultPBQPRegisterAllocator()" leaks it. +# 36| (void) llvm::createBasicRegisterAllocator(); +# 37| (void) llvm::createGreedyRegisterAllocator(); +# 38|-> (void) llvm::createDefaultPBQPRegisterAllocator(); +# 39| +# 40| (void) llvm::createBURRListDAGScheduler(nullptr, + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:46: alloc_fn: Storage is returned from allocation function "createFastDAGScheduler". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:46: leaked_storage: Failing to save or free storage allocated by "llvm::createFastDAGScheduler(NULL, Default)" leaks it. +# 44| (void) llvm::createHybridListDAGScheduler(nullptr, +# 45| llvm::CodeGenOpt::Default); +# 46|-> (void) llvm::createFastDAGScheduler(nullptr, llvm::CodeGenOpt::Default); +# 47| (void) llvm::createDefaultScheduler(nullptr, llvm::CodeGenOpt::Default); +# 48| (void) llvm::createVLIWDAGScheduler(nullptr, llvm::CodeGenOpt::Default); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:47: alloc_fn: Storage is returned from allocation function "createDefaultScheduler". +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:47: leaked_storage: Failing to save or free storage allocated by "llvm::createDefaultScheduler(NULL, Default)" leaks it. +# 45| llvm::CodeGenOpt::Default); +# 46| (void) llvm::createFastDAGScheduler(nullptr, llvm::CodeGenOpt::Default); +# 47|-> (void) llvm::createDefaultScheduler(nullptr, llvm::CodeGenOpt::Default); +# 48| (void) llvm::createVLIWDAGScheduler(nullptr, llvm::CodeGenOpt::Default); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/CodeGen/LinkAllCodegenComponents.h:51: constructor_uses_global_object: The constructor of global object "::ForceCodegenLinking" itself makes use of global object "DisableSchedCycles" defined in another compilation unit. The order of construction is unspecified, so "::ForceCodegenLinking" might be created before "DisableSchedCycles" is available. +# 49| +# 50| } +# 51|-> } ForceCodegenLinking; // Force link by creating a global definition. +# 52| } +# 53| + +Error: VIRTUAL_DTOR (CWE-772): +llvm-17.0.6.src/include/llvm/CodeGen/LiveInterval.h:157: no_virtual_dtor: Class "llvm::LiveRange" does not have a virtual destructor. +llvm-17.0.6.src/include/llvm/CodeGen/LiveInterval.h:724: dtor_in_derived: Class "llvm::LiveInterval" has a destructor and a pointer to it is upcast to class "llvm::LiveRange" which doesn't have a virtual destructor. +/usr/include/c++/14/bits/stl_pair.h:882: upcast: Example 1: Casting from a pointer to "llvm::LiveInterval" to a pointer to "llvm::LiveRange" in "std::forward(__x)". +llvm-17.0.6.src/include/llvm/CodeGen/LiveIntervals.h:411: delete: Example 1: Deletion of type "llvm::LiveRange". +llvm-17.0.6.src/lib/CodeGen/LiveIntervals.cpp:184: alloc: Example 1: Allocated an object of type "llvm::LiveInterval". +# 155| /// where a new value is defined or different values reach a CFG join a new +# 156| /// segment with a new value number is used. +# 157|-> class LiveRange { +# 158| public: +# 159| /// This represents a simple continuous liveness interval for a value. + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/include/llvm/CodeGen/MachineInstr.h:167: new_object: Calling single-object form of 'new': "new (Allocator->Allocate(llvm::TrailingObjects::totalSizeToAlloc(MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol, HasHeapAllocMarker + HasPCSections, HasCFIType), 8UL)) llvm::MachineInstr::ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol, HasHeapAllocMarker, HasPCSections, HasCFIType)". +llvm-17.0.6.src/include/llvm/CodeGen/MachineInstr.h:167: assign: Assigning: "Result" = "new (Allocator->Allocate(llvm::TrailingObjects::totalSizeToAlloc(MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol, HasHeapAllocMarker + HasPCSections, HasCFIType), 8UL)) llvm::MachineInstr::ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol, HasHeapAllocMarker, HasPCSections, HasCFIType)". +llvm-17.0.6.src/include/llvm/CodeGen/MachineInstr.h:176: callee_ptr_arith: Passing "Result" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 174| +# 175| // Copy the actual data into the trailing objects. +# 176|-> std::copy(MMOs.begin(), MMOs.end(), +# 177| Result->getTrailingObjects()); +# 178| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineInstr.h:573: var_decl: Declaring variable "UsedRegs". +llvm-17.0.6.src/include/llvm/CodeGen/MachineInstr.h:577: uninit_use: Using uninitialized value "UsedRegs". Field "UsedRegs.Vector.InlineElts" is uninitialized. +# 575| if (MO.isReg() && MO.getReg()) +# 576| UsedRegs.insert(MO.getReg()); +# 577|-> return UsedRegs; +# 578| } +# 579| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/CodeGen/MachineMemOperand.h:285: overrun-call: Overrunning callee's array of size 8 by passing argument "this->getSuccessOrdering()" (which evaluates to 15) in call to "getMergedAtomicOrdering". +# 283| /// other than cmpxchg, this is equivalent to getSuccessOrdering().) +# 284| AtomicOrdering getMergedOrdering() const { +# 285|-> return getMergedAtomicOrdering(getSuccessOrdering(), getFailureOrdering()); +# 286| } +# 287| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:816: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:818: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 816| MachineOperand Op(MachineOperand::MO_Immediate); +# 817| Op.setImm(Val); +# 818|-> return Op; +# 819| } +# 820| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:822: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:824: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 822| MachineOperand Op(MachineOperand::MO_CImmediate); +# 823| Op.Contents.CI = CI; +# 824|-> return Op; +# 825| } +# 826| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:828: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:830: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 828| MachineOperand Op(MachineOperand::MO_FPImmediate); +# 829| Op.Contents.CFP = CFP; +# 830|-> return Op; +# 831| } +# 832| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:860: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:863: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 861| Op.setMBB(MBB); +# 862| Op.setTargetFlags(TargetFlags); +# 863|-> return Op; +# 864| } +# 865| static MachineOperand CreateFI(int Idx) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:866: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:868: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 866| MachineOperand Op(MachineOperand::MO_FrameIndex); +# 867| Op.setIndex(Idx); +# 868|-> return Op; +# 869| } +# 870| static MachineOperand CreateCPI(unsigned Idx, int Offset, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:872: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:876: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 874| Op.setOffset(Offset); +# 875| Op.setTargetFlags(TargetFlags); +# 876|-> return Op; +# 877| } +# 878| static MachineOperand CreateTargetIndex(unsigned Idx, int64_t Offset, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:880: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:884: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 882| Op.setOffset(Offset); +# 883| Op.setTargetFlags(TargetFlags); +# 884|-> return Op; +# 885| } +# 886| static MachineOperand CreateJTI(unsigned Idx, unsigned TargetFlags = 0) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:887: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:890: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 888| Op.setIndex(Idx); +# 889| Op.setTargetFlags(TargetFlags); +# 890|-> return Op; +# 891| } +# 892| static MachineOperand CreateGA(const GlobalValue *GV, int64_t Offset, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:894: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:898: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 896| Op.setOffset(Offset); +# 897| Op.setTargetFlags(TargetFlags); +# 898|-> return Op; +# 899| } +# 900| static MachineOperand CreateES(const char *SymName, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:902: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:906: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 904| Op.setOffset(0); // Offset is always 0. +# 905| Op.setTargetFlags(TargetFlags); +# 906|-> return Op; +# 907| } +# 908| static MachineOperand CreateBA(const BlockAddress *BA, int64_t Offset, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:910: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:914: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 912| Op.setOffset(Offset); +# 913| Op.setTargetFlags(TargetFlags); +# 914|-> return Op; +# 915| } +# 916| /// CreateRegMask - Creates a register mask operand referencing Mask. The + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:930: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:932: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 930| MachineOperand Op(MachineOperand::MO_RegisterMask); +# 931| Op.Contents.RegMask = Mask; +# 932|-> return Op; +# 933| } +# 934| static MachineOperand CreateRegLiveOut(const uint32_t *Mask) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:936: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:938: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 936| MachineOperand Op(MachineOperand::MO_RegisterLiveOut); +# 937| Op.Contents.RegMask = Mask; +# 938|-> return Op; +# 939| } +# 940| static MachineOperand CreateMetadata(const MDNode *Meta) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:941: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:943: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 941| MachineOperand Op(MachineOperand::MO_Metadata); +# 942| Op.Contents.MD = Meta; +# 943|-> return Op; +# 944| } +# 945| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:948: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:952: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 950| Op.setOffset(0); +# 951| Op.setTargetFlags(TargetFlags); +# 952|-> return Op; +# 953| } +# 954| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:956: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:959: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 957| Op.Contents.InstrRef.InstrIdx = InstrIdx; +# 958| Op.Contents.InstrRef.OpIdx = OpIdx; +# 959|-> return Op; +# 960| } +# 961| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:963: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:965: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 963| MachineOperand Op(MachineOperand::MO_CFIIndex); +# 964| Op.Contents.CFIIndex = CFIIndex; +# 965|-> return Op; +# 966| } +# 967| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:969: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:971: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 969| MachineOperand Op(MachineOperand::MO_IntrinsicID); +# 970| Op.Contents.IntrinsicID = ID; +# 971|-> return Op; +# 972| } +# 973| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:975: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:977: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 975| MachineOperand Op(MachineOperand::MO_Predicate); +# 976| Op.Contents.Pred = Pred; +# 977|-> return Op; +# 978| } +# 979| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:981: var_decl: Declaring variable "Op". +llvm-17.0.6.src/include/llvm/CodeGen/MachineOperand.h:983: uninit_use: Using uninitialized value "Op". Field "Op.TiedTo" is uninitialized. +# 981| MachineOperand Op(MachineOperand::MO_ShuffleMask); +# 982| Op.Contents.ShuffleMask = Mask; +# 983|-> return Op; +# 984| } +# 985| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/RDFGraph.h:947: var_decl: Declaring variable "MM". +llvm-17.0.6.src/include/llvm/CodeGen/RDFGraph.h:950: uninit_use: Using uninitialized value "MM". Field "MM.InlineElts" is uninitialized. +# 948| auto M = getFirstMember(G); +# 949| if (M.Id == 0) +# 950|-> return MM; +# 951| +# 952| while (M.Addr != this) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/CodeGen/RDFGraph.h:947: var_decl: Declaring variable "MM". +llvm-17.0.6.src/include/llvm/CodeGen/RDFGraph.h:957: uninit_use: Using uninitialized value "MM". Field "MM.InlineElts" is uninitialized. +# 955| M = G.addr(M.Addr->getNext()); +# 956| } +# 957|-> return MM; +# 958| } +# 959| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h:189: var_decl: Declaring variable "Field". +llvm-17.0.6.src/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h:194: uninit_use_in_call: Using uninitialized value "Field". Field "Field.Kind" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 192| if (auto EC = Mapper(*this, Field)) +# 193| return EC; +# 194|-> Items.push_back(Field); +# 195| } +# 196| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/include/llvm/DebugInfo/LogicalView/Core/LVOptions.h:504: overrun-local: Overrunning array of 16 bytes at byte offset 23 by dereferencing pointer "Iter->second". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 502| typename U::const_iterator Iter = Dispatch.find(Entry); +# 503| if (Iter != Dispatch.end()) +# 504|-> Request.push_back(Iter->second); +# 505| } +# 506| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/DebugInfo/LogicalView/Core/LVStringPool.h:63: move: "Value" is moved (indicated by "std::move(Value)"). +llvm-17.0.6.src/include/llvm/DebugInfo/LogicalView/Core/LVStringPool.h:66: use_after_move: "Value" is used after it has been already moved. +# 64| StringTable.insert(Entry); +# 65| Entries.push_back(Entry); +# 66|-> return Value; +# 67| } +# 68| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h:507: move: "RetVal" is moved (indicated by "std::move(RetVal)"). +llvm-17.0.6.src/include/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h:509: use_after_move: "RetVal" is used after it has been already moved. +# 507| SDR(std::move(Err), std::move(RetVal)); +# 508| +# 509|-> SDR(Error::success(), std::move(RetVal)); +# 510| }; +# 511| + +Error: USE_AFTER_FREE (CWE-416): +llvm-17.0.6.src/include/llvm/IR/Instructions.h:2870: freed_arg: "growOperands" frees "this". +llvm-17.0.6.src/include/llvm/IR/Instructions.h:2872: deref_arg: Calling "getNumOperands" dereferences freed pointer "this". +# 2870| growOperands(); // Get more space! +# 2871| // Initialize some new operands. +# 2872|-> setNumHungOffUseOperands(getNumOperands() + 1); +# 2873| setIncomingValue(getNumOperands() - 1, V); +# 2874| setIncomingBlock(getNumOperands() - 1, BB); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/IR/Instructions.h:4198: var_decl: Declaring variable "IndirectDests". +llvm-17.0.6.src/include/llvm/IR/Instructions.h:4201: uninit_use: Using uninitialized value "IndirectDests". Field "IndirectDests.InlineElts" is uninitialized. +# 4199| for (unsigned i = 0, e = getNumIndirectDests(); i < e; ++i) +# 4200| IndirectDests.push_back(getIndirectDest(i)); +# 4201|-> return IndirectDests; +# 4202| } +# 4203| void setDefaultDest(BasicBlock *B) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllIR.h:49: alloc_fn: Storage is returned from allocation function "createVerifierPass". +llvm-17.0.6.src/include/llvm/LinkAllIR.h:49: leaked_storage: Failing to save or free storage allocated by "llvm::createVerifierPass(true)" leaks it. +# 47| (void)new llvm::Module("", Context); +# 48| (void)new llvm::UnreachableInst(Context); +# 49|-> (void) llvm::createVerifierPass(); +# 50| } +# 51| } ForceVMCoreLinking; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllIR.h:51: constructor_uses_global_object: The constructor of global object "::ForceVMCoreLinking" itself makes use of global object "DisableI2pP2iOpt" defined in another compilation unit. The order of construction is unspecified, so "::ForceVMCoreLinking" might be created before "DisableI2pP2iOpt" is available. +# 49| (void) llvm::createVerifierPass(); +# 50| } +# 51|-> } ForceVMCoreLinking; +# 52| } +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllIR.h:51: constructor_uses_global_object: The constructor of global object "::ForceVMCoreLinking" itself makes use of global object "ScalableErrorAsWarning" defined in another compilation unit. The order of construction is unspecified, so "::ForceVMCoreLinking" might be created before "ScalableErrorAsWarning" is available. +# 49| (void) llvm::createVerifierPass(); +# 50| } +# 51|-> } ForceVMCoreLinking; +# 52| } +# 53| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:71: alloc_fn: Storage is returned from allocation function "createAAEvalPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:71: leaked_storage: Failing to save or free storage allocated by "llvm::createAAEvalPass()" leaks it. +# 69| return; +# 70| +# 71|-> (void) llvm::createAAEvalPass(); +# 72| (void) llvm::createBasicAAWrapperPass(); +# 73| (void) llvm::createSCEVAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:72: alloc_fn: Storage is returned from allocation function "createBasicAAWrapperPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:72: leaked_storage: Failing to save or free storage allocated by "llvm::createBasicAAWrapperPass()" leaks it. +# 70| +# 71| (void) llvm::createAAEvalPass(); +# 72|-> (void) llvm::createBasicAAWrapperPass(); +# 73| (void) llvm::createSCEVAAWrapperPass(); +# 74| (void) llvm::createTypeBasedAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:73: alloc_fn: Storage is returned from allocation function "createSCEVAAWrapperPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:73: leaked_storage: Failing to save or free storage allocated by "llvm::createSCEVAAWrapperPass()" leaks it. +# 71| (void) llvm::createAAEvalPass(); +# 72| (void) llvm::createBasicAAWrapperPass(); +# 73|-> (void) llvm::createSCEVAAWrapperPass(); +# 74| (void) llvm::createTypeBasedAAWrapperPass(); +# 75| (void) llvm::createScopedNoAliasAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:74: alloc_fn: Storage is returned from allocation function "createTypeBasedAAWrapperPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:74: leaked_storage: Failing to save or free storage allocated by "llvm::createTypeBasedAAWrapperPass()" leaks it. +# 72| (void) llvm::createBasicAAWrapperPass(); +# 73| (void) llvm::createSCEVAAWrapperPass(); +# 74|-> (void) llvm::createTypeBasedAAWrapperPass(); +# 75| (void) llvm::createScopedNoAliasAAWrapperPass(); +# 76| (void) llvm::createBreakCriticalEdgesPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:75: alloc_fn: Storage is returned from allocation function "createScopedNoAliasAAWrapperPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:75: leaked_storage: Failing to save or free storage allocated by "llvm::createScopedNoAliasAAWrapperPass()" leaks it. +# 73| (void) llvm::createSCEVAAWrapperPass(); +# 74| (void) llvm::createTypeBasedAAWrapperPass(); +# 75|-> (void) llvm::createScopedNoAliasAAWrapperPass(); +# 76| (void) llvm::createBreakCriticalEdgesPass(); +# 77| (void) llvm::createCallGraphDOTPrinterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:76: alloc_fn: Storage is returned from allocation function "createBreakCriticalEdgesPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:76: leaked_storage: Failing to save or free storage allocated by "llvm::createBreakCriticalEdgesPass()" leaks it. +# 74| (void) llvm::createTypeBasedAAWrapperPass(); +# 75| (void) llvm::createScopedNoAliasAAWrapperPass(); +# 76|-> (void) llvm::createBreakCriticalEdgesPass(); +# 77| (void) llvm::createCallGraphDOTPrinterPass(); +# 78| (void) llvm::createCallGraphViewerPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:77: alloc_fn: Storage is returned from allocation function "createCallGraphDOTPrinterPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:77: leaked_storage: Failing to save or free storage allocated by "llvm::createCallGraphDOTPrinterPass()" leaks it. +# 75| (void) llvm::createScopedNoAliasAAWrapperPass(); +# 76| (void) llvm::createBreakCriticalEdgesPass(); +# 77|-> (void) llvm::createCallGraphDOTPrinterPass(); +# 78| (void) llvm::createCallGraphViewerPass(); +# 79| (void) llvm::createCFGSimplificationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:78: alloc_fn: Storage is returned from allocation function "createCallGraphViewerPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:78: leaked_storage: Failing to save or free storage allocated by "llvm::createCallGraphViewerPass()" leaks it. +# 76| (void) llvm::createBreakCriticalEdgesPass(); +# 77| (void) llvm::createCallGraphDOTPrinterPass(); +# 78|-> (void) llvm::createCallGraphViewerPass(); +# 79| (void) llvm::createCFGSimplificationPass(); +# 80| (void) llvm::createStructurizeCFGPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:79: alloc_fn: Storage is returned from allocation function "createCFGSimplificationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:79: leaked_storage: Failing to save or free storage allocated by "llvm::createCFGSimplificationPass(llvm::SimplifyCFGOptions(), std::function(std::nullptr_t()))" leaks it. +# 77| (void) llvm::createCallGraphDOTPrinterPass(); +# 78| (void) llvm::createCallGraphViewerPass(); +# 79|-> (void) llvm::createCFGSimplificationPass(); +# 80| (void) llvm::createStructurizeCFGPass(); +# 81| (void) llvm::createCostModelAnalysisPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:80: alloc_fn: Storage is returned from allocation function "createStructurizeCFGPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:80: leaked_storage: Failing to save or free storage allocated by "llvm::createStructurizeCFGPass(false)" leaks it. +# 78| (void) llvm::createCallGraphViewerPass(); +# 79| (void) llvm::createCFGSimplificationPass(); +# 80|-> (void) llvm::createStructurizeCFGPass(); +# 81| (void) llvm::createCostModelAnalysisPass(); +# 82| (void) llvm::createDeadArgEliminationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:81: alloc_fn: Storage is returned from allocation function "createCostModelAnalysisPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:81: leaked_storage: Failing to save or free storage allocated by "llvm::createCostModelAnalysisPass()" leaks it. +# 79| (void) llvm::createCFGSimplificationPass(); +# 80| (void) llvm::createStructurizeCFGPass(); +# 81|-> (void) llvm::createCostModelAnalysisPass(); +# 82| (void) llvm::createDeadArgEliminationPass(); +# 83| (void) llvm::createDeadCodeEliminationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:82: alloc_fn: Storage is returned from allocation function "createDeadArgEliminationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:82: leaked_storage: Failing to save or free storage allocated by "llvm::createDeadArgEliminationPass()" leaks it. +# 80| (void) llvm::createStructurizeCFGPass(); +# 81| (void) llvm::createCostModelAnalysisPass(); +# 82|-> (void) llvm::createDeadArgEliminationPass(); +# 83| (void) llvm::createDeadCodeEliminationPass(); +# 84| (void) llvm::createDependenceAnalysisWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:83: alloc_fn: Storage is returned from allocation function "createDeadCodeEliminationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:83: leaked_storage: Failing to save or free storage allocated by "llvm::createDeadCodeEliminationPass()" leaks it. +# 81| (void) llvm::createCostModelAnalysisPass(); +# 82| (void) llvm::createDeadArgEliminationPass(); +# 83|-> (void) llvm::createDeadCodeEliminationPass(); +# 84| (void) llvm::createDependenceAnalysisWrapperPass(); +# 85| (void) llvm::createDomOnlyPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:84: alloc_fn: Storage is returned from allocation function "createDependenceAnalysisWrapperPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:84: leaked_storage: Failing to save or free storage allocated by "llvm::createDependenceAnalysisWrapperPass()" leaks it. +# 82| (void) llvm::createDeadArgEliminationPass(); +# 83| (void) llvm::createDeadCodeEliminationPass(); +# 84|-> (void) llvm::createDependenceAnalysisWrapperPass(); +# 85| (void) llvm::createDomOnlyPrinterWrapperPassPass(); +# 86| (void) llvm::createDomPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:85: alloc_fn: Storage is returned from allocation function "createDomOnlyPrinterWrapperPassPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:85: leaked_storage: Failing to save or free storage allocated by "llvm::createDomOnlyPrinterWrapperPassPass()" leaks it. +# 83| (void) llvm::createDeadCodeEliminationPass(); +# 84| (void) llvm::createDependenceAnalysisWrapperPass(); +# 85|-> (void) llvm::createDomOnlyPrinterWrapperPassPass(); +# 86| (void) llvm::createDomPrinterWrapperPassPass(); +# 87| (void) llvm::createDomOnlyViewerWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:86: alloc_fn: Storage is returned from allocation function "createDomPrinterWrapperPassPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:86: leaked_storage: Failing to save or free storage allocated by "llvm::createDomPrinterWrapperPassPass()" leaks it. +# 84| (void) llvm::createDependenceAnalysisWrapperPass(); +# 85| (void) llvm::createDomOnlyPrinterWrapperPassPass(); +# 86|-> (void) llvm::createDomPrinterWrapperPassPass(); +# 87| (void) llvm::createDomOnlyViewerWrapperPassPass(); +# 88| (void) llvm::createDomViewerWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:87: alloc_fn: Storage is returned from allocation function "createDomOnlyViewerWrapperPassPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:87: leaked_storage: Failing to save or free storage allocated by "llvm::createDomOnlyViewerWrapperPassPass()" leaks it. +# 85| (void) llvm::createDomOnlyPrinterWrapperPassPass(); +# 86| (void) llvm::createDomPrinterWrapperPassPass(); +# 87|-> (void) llvm::createDomOnlyViewerWrapperPassPass(); +# 88| (void) llvm::createDomViewerWrapperPassPass(); +# 89| (void) llvm::createAlwaysInlinerLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:88: alloc_fn: Storage is returned from allocation function "createDomViewerWrapperPassPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:88: leaked_storage: Failing to save or free storage allocated by "llvm::createDomViewerWrapperPassPass()" leaks it. +# 86| (void) llvm::createDomPrinterWrapperPassPass(); +# 87| (void) llvm::createDomOnlyViewerWrapperPassPass(); +# 88|-> (void) llvm::createDomViewerWrapperPassPass(); +# 89| (void) llvm::createAlwaysInlinerLegacyPass(); +# 90| (void) llvm::createGlobalsAAWrapperPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:89: alloc_fn: Storage is returned from allocation function "createAlwaysInlinerLegacyPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:89: leaked_storage: Failing to save or free storage allocated by "llvm::createAlwaysInlinerLegacyPass(true)" leaks it. +# 87| (void) llvm::createDomOnlyViewerWrapperPassPass(); +# 88| (void) llvm::createDomViewerWrapperPassPass(); +# 89|-> (void) llvm::createAlwaysInlinerLegacyPass(); +# 90| (void) llvm::createGlobalsAAWrapperPass(); +# 91| (void) llvm::createGuardWideningPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:90: alloc_fn: Storage is returned from allocation function "createGlobalsAAWrapperPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:90: leaked_storage: Failing to save or free storage allocated by "llvm::createGlobalsAAWrapperPass()" leaks it. +# 88| (void) llvm::createDomViewerWrapperPassPass(); +# 89| (void) llvm::createAlwaysInlinerLegacyPass(); +# 90|-> (void) llvm::createGlobalsAAWrapperPass(); +# 91| (void) llvm::createGuardWideningPass(); +# 92| (void) llvm::createLoopGuardWideningPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:91: alloc_fn: Storage is returned from allocation function "createGuardWideningPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:91: leaked_storage: Failing to save or free storage allocated by "llvm::createGuardWideningPass()" leaks it. +# 89| (void) llvm::createAlwaysInlinerLegacyPass(); +# 90| (void) llvm::createGlobalsAAWrapperPass(); +# 91|-> (void) llvm::createGuardWideningPass(); +# 92| (void) llvm::createLoopGuardWideningPass(); +# 93| (void) llvm::createInstSimplifyLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:92: alloc_fn: Storage is returned from allocation function "createLoopGuardWideningPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:92: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopGuardWideningPass()" leaks it. +# 90| (void) llvm::createGlobalsAAWrapperPass(); +# 91| (void) llvm::createGuardWideningPass(); +# 92|-> (void) llvm::createLoopGuardWideningPass(); +# 93| (void) llvm::createInstSimplifyLegacyPass(); +# 94| (void) llvm::createInstructionCombiningPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:93: alloc_fn: Storage is returned from allocation function "createInstSimplifyLegacyPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:93: leaked_storage: Failing to save or free storage allocated by "llvm::createInstSimplifyLegacyPass()" leaks it. +# 91| (void) llvm::createGuardWideningPass(); +# 92| (void) llvm::createLoopGuardWideningPass(); +# 93|-> (void) llvm::createInstSimplifyLegacyPass(); +# 94| (void) llvm::createInstructionCombiningPass(); +# 95| (void) llvm::createJMCInstrumenterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:94: alloc_fn: Storage is returned from allocation function "createInstructionCombiningPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:94: leaked_storage: Failing to save or free storage allocated by "llvm::createInstructionCombiningPass()" leaks it. +# 92| (void) llvm::createLoopGuardWideningPass(); +# 93| (void) llvm::createInstSimplifyLegacyPass(); +# 94|-> (void) llvm::createInstructionCombiningPass(); +# 95| (void) llvm::createJMCInstrumenterPass(); +# 96| (void) llvm::createKCFIPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:95: alloc_fn: Storage is returned from allocation function "createJMCInstrumenterPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:95: leaked_storage: Failing to save or free storage allocated by "llvm::createJMCInstrumenterPass()" leaks it. +# 93| (void) llvm::createInstSimplifyLegacyPass(); +# 94| (void) llvm::createInstructionCombiningPass(); +# 95|-> (void) llvm::createJMCInstrumenterPass(); +# 96| (void) llvm::createKCFIPass(); +# 97| (void) llvm::createLCSSAPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:96: alloc_fn: Storage is returned from allocation function "createKCFIPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:96: leaked_storage: Failing to save or free storage allocated by "llvm::createKCFIPass()" leaks it. +# 94| (void) llvm::createInstructionCombiningPass(); +# 95| (void) llvm::createJMCInstrumenterPass(); +# 96|-> (void) llvm::createKCFIPass(); +# 97| (void) llvm::createLCSSAPass(); +# 98| (void) llvm::createLICMPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:97: alloc_fn: Storage is returned from allocation function "createLCSSAPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:97: leaked_storage: Failing to save or free storage allocated by "llvm::createLCSSAPass()" leaks it. +# 95| (void) llvm::createJMCInstrumenterPass(); +# 96| (void) llvm::createKCFIPass(); +# 97|-> (void) llvm::createLCSSAPass(); +# 98| (void) llvm::createLICMPass(); +# 99| (void) llvm::createLoopSinkPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:98: alloc_fn: Storage is returned from allocation function "createLICMPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:98: leaked_storage: Failing to save or free storage allocated by "llvm::createLICMPass()" leaks it. +# 96| (void) llvm::createKCFIPass(); +# 97| (void) llvm::createLCSSAPass(); +# 98|-> (void) llvm::createLICMPass(); +# 99| (void) llvm::createLoopSinkPass(); +# 100| (void) llvm::createLazyValueInfoPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:99: alloc_fn: Storage is returned from allocation function "createLoopSinkPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:99: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopSinkPass()" leaks it. +# 97| (void) llvm::createLCSSAPass(); +# 98| (void) llvm::createLICMPass(); +# 99|-> (void) llvm::createLoopSinkPass(); +# 100| (void) llvm::createLazyValueInfoPass(); +# 101| (void) llvm::createLoopExtractorPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:100: alloc_fn: Storage is returned from allocation function "createLazyValueInfoPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:100: leaked_storage: Failing to save or free storage allocated by "llvm::createLazyValueInfoPass()" leaks it. +# 98| (void) llvm::createLICMPass(); +# 99| (void) llvm::createLoopSinkPass(); +# 100|-> (void) llvm::createLazyValueInfoPass(); +# 101| (void) llvm::createLoopExtractorPass(); +# 102| (void) llvm::createLoopPredicationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:101: alloc_fn: Storage is returned from allocation function "createLoopExtractorPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:101: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopExtractorPass()" leaks it. +# 99| (void) llvm::createLoopSinkPass(); +# 100| (void) llvm::createLazyValueInfoPass(); +# 101|-> (void) llvm::createLoopExtractorPass(); +# 102| (void) llvm::createLoopPredicationPass(); +# 103| (void) llvm::createLoopSimplifyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:102: alloc_fn: Storage is returned from allocation function "createLoopPredicationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:102: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopPredicationPass()" leaks it. +# 100| (void) llvm::createLazyValueInfoPass(); +# 101| (void) llvm::createLoopExtractorPass(); +# 102|-> (void) llvm::createLoopPredicationPass(); +# 103| (void) llvm::createLoopSimplifyPass(); +# 104| (void) llvm::createLoopSimplifyCFGPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:103: alloc_fn: Storage is returned from allocation function "createLoopSimplifyPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:103: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopSimplifyPass()" leaks it. +# 101| (void) llvm::createLoopExtractorPass(); +# 102| (void) llvm::createLoopPredicationPass(); +# 103|-> (void) llvm::createLoopSimplifyPass(); +# 104| (void) llvm::createLoopSimplifyCFGPass(); +# 105| (void) llvm::createLoopStrengthReducePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:104: alloc_fn: Storage is returned from allocation function "createLoopSimplifyCFGPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:104: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopSimplifyCFGPass()" leaks it. +# 102| (void) llvm::createLoopPredicationPass(); +# 103| (void) llvm::createLoopSimplifyPass(); +# 104|-> (void) llvm::createLoopSimplifyCFGPass(); +# 105| (void) llvm::createLoopStrengthReducePass(); +# 106| (void) llvm::createLoopUnrollPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:105: alloc_fn: Storage is returned from allocation function "createLoopStrengthReducePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:105: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopStrengthReducePass()" leaks it. +# 103| (void) llvm::createLoopSimplifyPass(); +# 104| (void) llvm::createLoopSimplifyCFGPass(); +# 105|-> (void) llvm::createLoopStrengthReducePass(); +# 106| (void) llvm::createLoopUnrollPass(); +# 107| (void) llvm::createLoopRotatePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:106: alloc_fn: Storage is returned from allocation function "createLoopUnrollPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:106: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopUnrollPass(2, false, false, -1, -1, -1, -1, -1, -1)" leaks it. +# 104| (void) llvm::createLoopSimplifyCFGPass(); +# 105| (void) llvm::createLoopStrengthReducePass(); +# 106|-> (void) llvm::createLoopUnrollPass(); +# 107| (void) llvm::createLoopRotatePass(); +# 108| (void) llvm::createLowerConstantIntrinsicsPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:107: alloc_fn: Storage is returned from allocation function "createLoopRotatePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:107: leaked_storage: Failing to save or free storage allocated by "llvm::createLoopRotatePass(-1, false)" leaks it. +# 105| (void) llvm::createLoopStrengthReducePass(); +# 106| (void) llvm::createLoopUnrollPass(); +# 107|-> (void) llvm::createLoopRotatePass(); +# 108| (void) llvm::createLowerConstantIntrinsicsPass(); +# 109| (void) llvm::createLowerExpectIntrinsicPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:108: alloc_fn: Storage is returned from allocation function "createLowerConstantIntrinsicsPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:108: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerConstantIntrinsicsPass()" leaks it. +# 106| (void) llvm::createLoopUnrollPass(); +# 107| (void) llvm::createLoopRotatePass(); +# 108|-> (void) llvm::createLowerConstantIntrinsicsPass(); +# 109| (void) llvm::createLowerExpectIntrinsicPass(); +# 110| (void) llvm::createLowerGlobalDtorsLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:109: alloc_fn: Storage is returned from allocation function "createLowerExpectIntrinsicPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:109: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerExpectIntrinsicPass()" leaks it. +# 107| (void) llvm::createLoopRotatePass(); +# 108| (void) llvm::createLowerConstantIntrinsicsPass(); +# 109|-> (void) llvm::createLowerExpectIntrinsicPass(); +# 110| (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 111| (void) llvm::createLowerInvokePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:110: alloc_fn: Storage is returned from allocation function "createLowerGlobalDtorsLegacyPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:110: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerGlobalDtorsLegacyPass()" leaks it. +# 108| (void) llvm::createLowerConstantIntrinsicsPass(); +# 109| (void) llvm::createLowerExpectIntrinsicPass(); +# 110|-> (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 111| (void) llvm::createLowerInvokePass(); +# 112| (void) llvm::createLowerSwitchPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:111: alloc_fn: Storage is returned from allocation function "createLowerInvokePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:111: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerInvokePass()" leaks it. +# 109| (void) llvm::createLowerExpectIntrinsicPass(); +# 110| (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 111|-> (void) llvm::createLowerInvokePass(); +# 112| (void) llvm::createLowerSwitchPass(); +# 113| (void) llvm::createNaryReassociatePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:112: alloc_fn: Storage is returned from allocation function "createLowerSwitchPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:112: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerSwitchPass()" leaks it. +# 110| (void) llvm::createLowerGlobalDtorsLegacyPass(); +# 111| (void) llvm::createLowerInvokePass(); +# 112|-> (void) llvm::createLowerSwitchPass(); +# 113| (void) llvm::createNaryReassociatePass(); +# 114| (void) llvm::createObjCARCContractPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:113: alloc_fn: Storage is returned from allocation function "createNaryReassociatePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:113: leaked_storage: Failing to save or free storage allocated by "llvm::createNaryReassociatePass()" leaks it. +# 111| (void) llvm::createLowerInvokePass(); +# 112| (void) llvm::createLowerSwitchPass(); +# 113|-> (void) llvm::createNaryReassociatePass(); +# 114| (void) llvm::createObjCARCContractPass(); +# 115| (void) llvm::createPromoteMemoryToRegisterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:114: alloc_fn: Storage is returned from allocation function "createObjCARCContractPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:114: leaked_storage: Failing to save or free storage allocated by "llvm::createObjCARCContractPass()" leaks it. +# 112| (void) llvm::createLowerSwitchPass(); +# 113| (void) llvm::createNaryReassociatePass(); +# 114|-> (void) llvm::createObjCARCContractPass(); +# 115| (void) llvm::createPromoteMemoryToRegisterPass(); +# 116| (void) llvm::createDemoteRegisterToMemoryPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:115: alloc_fn: Storage is returned from allocation function "createPromoteMemoryToRegisterPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:115: leaked_storage: Failing to save or free storage allocated by "llvm::createPromoteMemoryToRegisterPass(false)" leaks it. +# 113| (void) llvm::createNaryReassociatePass(); +# 114| (void) llvm::createObjCARCContractPass(); +# 115|-> (void) llvm::createPromoteMemoryToRegisterPass(); +# 116| (void) llvm::createDemoteRegisterToMemoryPass(); +# 117| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:116: alloc_fn: Storage is returned from allocation function "createDemoteRegisterToMemoryPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:116: leaked_storage: Failing to save or free storage allocated by "llvm::createDemoteRegisterToMemoryPass()" leaks it. +# 114| (void) llvm::createObjCARCContractPass(); +# 115| (void) llvm::createPromoteMemoryToRegisterPass(); +# 116|-> (void) llvm::createDemoteRegisterToMemoryPass(); +# 117| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 118| (void)llvm::createPostDomPrinterWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:117: alloc_fn: Storage is returned from allocation function "createPostDomOnlyPrinterWrapperPassPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:117: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomOnlyPrinterWrapperPassPass()" leaks it. +# 115| (void) llvm::createPromoteMemoryToRegisterPass(); +# 116| (void) llvm::createDemoteRegisterToMemoryPass(); +# 117|-> (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 118| (void)llvm::createPostDomPrinterWrapperPassPass(); +# 119| (void)llvm::createPostDomOnlyViewerWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:118: alloc_fn: Storage is returned from allocation function "createPostDomPrinterWrapperPassPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:118: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomPrinterWrapperPassPass()" leaks it. +# 116| (void) llvm::createDemoteRegisterToMemoryPass(); +# 117| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 118|-> (void)llvm::createPostDomPrinterWrapperPassPass(); +# 119| (void)llvm::createPostDomOnlyViewerWrapperPassPass(); +# 120| (void)llvm::createPostDomViewerWrapperPassPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:119: alloc_fn: Storage is returned from allocation function "createPostDomOnlyViewerWrapperPassPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:119: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomOnlyViewerWrapperPassPass()" leaks it. +# 117| (void)llvm::createPostDomOnlyPrinterWrapperPassPass(); +# 118| (void)llvm::createPostDomPrinterWrapperPassPass(); +# 119|-> (void)llvm::createPostDomOnlyViewerWrapperPassPass(); +# 120| (void)llvm::createPostDomViewerWrapperPassPass(); +# 121| (void) llvm::createReassociatePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:120: alloc_fn: Storage is returned from allocation function "createPostDomViewerWrapperPassPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:120: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomViewerWrapperPassPass()" leaks it. +# 118| (void)llvm::createPostDomPrinterWrapperPassPass(); +# 119| (void)llvm::createPostDomOnlyViewerWrapperPassPass(); +# 120|-> (void)llvm::createPostDomViewerWrapperPassPass(); +# 121| (void) llvm::createReassociatePass(); +# 122| (void) llvm::createRedundantDbgInstEliminationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:121: alloc_fn: Storage is returned from allocation function "createReassociatePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:121: leaked_storage: Failing to save or free storage allocated by "llvm::createReassociatePass()" leaks it. +# 119| (void)llvm::createPostDomOnlyViewerWrapperPassPass(); +# 120| (void)llvm::createPostDomViewerWrapperPassPass(); +# 121|-> (void) llvm::createReassociatePass(); +# 122| (void) llvm::createRedundantDbgInstEliminationPass(); +# 123| (void) llvm::createRegionInfoPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:122: alloc_fn: Storage is returned from allocation function "createRedundantDbgInstEliminationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:122: leaked_storage: Failing to save or free storage allocated by "llvm::createRedundantDbgInstEliminationPass()" leaks it. +# 120| (void)llvm::createPostDomViewerWrapperPassPass(); +# 121| (void) llvm::createReassociatePass(); +# 122|-> (void) llvm::createRedundantDbgInstEliminationPass(); +# 123| (void) llvm::createRegionInfoPass(); +# 124| (void) llvm::createRegionOnlyPrinterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:123: alloc_fn: Storage is returned from allocation function "createRegionInfoPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:123: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionInfoPass()" leaks it. +# 121| (void) llvm::createReassociatePass(); +# 122| (void) llvm::createRedundantDbgInstEliminationPass(); +# 123|-> (void) llvm::createRegionInfoPass(); +# 124| (void) llvm::createRegionOnlyPrinterPass(); +# 125| (void) llvm::createRegionOnlyViewerPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:124: alloc_fn: Storage is returned from allocation function "createRegionOnlyPrinterPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:124: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionOnlyPrinterPass()" leaks it. +# 122| (void) llvm::createRedundantDbgInstEliminationPass(); +# 123| (void) llvm::createRegionInfoPass(); +# 124|-> (void) llvm::createRegionOnlyPrinterPass(); +# 125| (void) llvm::createRegionOnlyViewerPass(); +# 126| (void) llvm::createRegionPrinterPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:125: alloc_fn: Storage is returned from allocation function "createRegionOnlyViewerPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:125: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionOnlyViewerPass()" leaks it. +# 123| (void) llvm::createRegionInfoPass(); +# 124| (void) llvm::createRegionOnlyPrinterPass(); +# 125|-> (void) llvm::createRegionOnlyViewerPass(); +# 126| (void) llvm::createRegionPrinterPass(); +# 127| (void) llvm::createRegionViewerPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:126: alloc_fn: Storage is returned from allocation function "createRegionPrinterPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:126: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionPrinterPass()" leaks it. +# 124| (void) llvm::createRegionOnlyPrinterPass(); +# 125| (void) llvm::createRegionOnlyViewerPass(); +# 126|-> (void) llvm::createRegionPrinterPass(); +# 127| (void) llvm::createRegionViewerPass(); +# 128| (void) llvm::createSafeStackPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:127: alloc_fn: Storage is returned from allocation function "createRegionViewerPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:127: leaked_storage: Failing to save or free storage allocated by "llvm::createRegionViewerPass()" leaks it. +# 125| (void) llvm::createRegionOnlyViewerPass(); +# 126| (void) llvm::createRegionPrinterPass(); +# 127|-> (void) llvm::createRegionViewerPass(); +# 128| (void) llvm::createSafeStackPass(); +# 129| (void) llvm::createSROAPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:128: alloc_fn: Storage is returned from allocation function "createSafeStackPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:128: leaked_storage: Failing to save or free storage allocated by "llvm::createSafeStackPass()" leaks it. +# 126| (void) llvm::createRegionPrinterPass(); +# 127| (void) llvm::createRegionViewerPass(); +# 128|-> (void) llvm::createSafeStackPass(); +# 129| (void) llvm::createSROAPass(); +# 130| (void) llvm::createSingleLoopExtractorPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:129: alloc_fn: Storage is returned from allocation function "createSROAPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:129: leaked_storage: Failing to save or free storage allocated by "llvm::createSROAPass(true)" leaks it. +# 127| (void) llvm::createRegionViewerPass(); +# 128| (void) llvm::createSafeStackPass(); +# 129|-> (void) llvm::createSROAPass(); +# 130| (void) llvm::createSingleLoopExtractorPass(); +# 131| (void) llvm::createTailCallEliminationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:130: alloc_fn: Storage is returned from allocation function "createSingleLoopExtractorPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:130: leaked_storage: Failing to save or free storage allocated by "llvm::createSingleLoopExtractorPass()" leaks it. +# 128| (void) llvm::createSafeStackPass(); +# 129| (void) llvm::createSROAPass(); +# 130|-> (void) llvm::createSingleLoopExtractorPass(); +# 131| (void) llvm::createTailCallEliminationPass(); +# 132| (void)llvm::createTLSVariableHoistPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:131: alloc_fn: Storage is returned from allocation function "createTailCallEliminationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:131: leaked_storage: Failing to save or free storage allocated by "llvm::createTailCallEliminationPass()" leaks it. +# 129| (void) llvm::createSROAPass(); +# 130| (void) llvm::createSingleLoopExtractorPass(); +# 131|-> (void) llvm::createTailCallEliminationPass(); +# 132| (void)llvm::createTLSVariableHoistPass(); +# 133| (void) llvm::createUnifyFunctionExitNodesPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:132: alloc_fn: Storage is returned from allocation function "createTLSVariableHoistPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:132: leaked_storage: Failing to save or free storage allocated by "llvm::createTLSVariableHoistPass()" leaks it. +# 130| (void) llvm::createSingleLoopExtractorPass(); +# 131| (void) llvm::createTailCallEliminationPass(); +# 132|-> (void)llvm::createTLSVariableHoistPass(); +# 133| (void) llvm::createUnifyFunctionExitNodesPass(); +# 134| (void) llvm::createInstCountPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:133: alloc_fn: Storage is returned from allocation function "createUnifyFunctionExitNodesPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:133: leaked_storage: Failing to save or free storage allocated by "llvm::createUnifyFunctionExitNodesPass()" leaks it. +# 131| (void) llvm::createTailCallEliminationPass(); +# 132| (void)llvm::createTLSVariableHoistPass(); +# 133|-> (void) llvm::createUnifyFunctionExitNodesPass(); +# 134| (void) llvm::createInstCountPass(); +# 135| (void) llvm::createConstantHoistingPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:134: alloc_fn: Storage is returned from allocation function "createInstCountPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:134: leaked_storage: Failing to save or free storage allocated by "llvm::createInstCountPass()" leaks it. +# 132| (void)llvm::createTLSVariableHoistPass(); +# 133| (void) llvm::createUnifyFunctionExitNodesPass(); +# 134|-> (void) llvm::createInstCountPass(); +# 135| (void) llvm::createConstantHoistingPass(); +# 136| (void) llvm::createCodeGenPreparePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:135: alloc_fn: Storage is returned from allocation function "createConstantHoistingPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:135: leaked_storage: Failing to save or free storage allocated by "llvm::createConstantHoistingPass()" leaks it. +# 133| (void) llvm::createUnifyFunctionExitNodesPass(); +# 134| (void) llvm::createInstCountPass(); +# 135|-> (void) llvm::createConstantHoistingPass(); +# 136| (void) llvm::createCodeGenPreparePass(); +# 137| (void) llvm::createEarlyCSEPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:136: alloc_fn: Storage is returned from allocation function "createCodeGenPreparePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:136: leaked_storage: Failing to save or free storage allocated by "llvm::createCodeGenPreparePass()" leaks it. +# 134| (void) llvm::createInstCountPass(); +# 135| (void) llvm::createConstantHoistingPass(); +# 136|-> (void) llvm::createCodeGenPreparePass(); +# 137| (void) llvm::createEarlyCSEPass(); +# 138| (void) llvm::createMergedLoadStoreMotionPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:137: alloc_fn: Storage is returned from allocation function "createEarlyCSEPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:137: leaked_storage: Failing to save or free storage allocated by "llvm::createEarlyCSEPass(false)" leaks it. +# 135| (void) llvm::createConstantHoistingPass(); +# 136| (void) llvm::createCodeGenPreparePass(); +# 137|-> (void) llvm::createEarlyCSEPass(); +# 138| (void) llvm::createMergedLoadStoreMotionPass(); +# 139| (void) llvm::createGVNPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:138: alloc_fn: Storage is returned from allocation function "createMergedLoadStoreMotionPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:138: leaked_storage: Failing to save or free storage allocated by "llvm::createMergedLoadStoreMotionPass(false)" leaks it. +# 136| (void) llvm::createCodeGenPreparePass(); +# 137| (void) llvm::createEarlyCSEPass(); +# 138|-> (void) llvm::createMergedLoadStoreMotionPass(); +# 139| (void) llvm::createGVNPass(); +# 140| (void) llvm::createPostDomTree(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:139: alloc_fn: Storage is returned from allocation function "createGVNPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:139: leaked_storage: Failing to save or free storage allocated by "llvm::createGVNPass(false)" leaks it. +# 137| (void) llvm::createEarlyCSEPass(); +# 138| (void) llvm::createMergedLoadStoreMotionPass(); +# 139|-> (void) llvm::createGVNPass(); +# 140| (void) llvm::createPostDomTree(); +# 141| (void) llvm::createMergeICmpsLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:140: alloc_fn: Storage is returned from allocation function "createPostDomTree". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:140: leaked_storage: Failing to save or free storage allocated by "llvm::createPostDomTree()" leaks it. +# 138| (void) llvm::createMergedLoadStoreMotionPass(); +# 139| (void) llvm::createGVNPass(); +# 140|-> (void) llvm::createPostDomTree(); +# 141| (void) llvm::createMergeICmpsLegacyPass(); +# 142| (void) llvm::createExpandLargeDivRemPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:141: alloc_fn: Storage is returned from allocation function "createMergeICmpsLegacyPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:141: leaked_storage: Failing to save or free storage allocated by "llvm::createMergeICmpsLegacyPass()" leaks it. +# 139| (void) llvm::createGVNPass(); +# 140| (void) llvm::createPostDomTree(); +# 141|-> (void) llvm::createMergeICmpsLegacyPass(); +# 142| (void) llvm::createExpandLargeDivRemPass(); +# 143| (void) llvm::createExpandMemCmpPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:142: alloc_fn: Storage is returned from allocation function "createExpandLargeDivRemPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:142: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandLargeDivRemPass()" leaks it. +# 140| (void) llvm::createPostDomTree(); +# 141| (void) llvm::createMergeICmpsLegacyPass(); +# 142|-> (void) llvm::createExpandLargeDivRemPass(); +# 143| (void) llvm::createExpandMemCmpPass(); +# 144| (void) llvm::createExpandVectorPredicationPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:143: alloc_fn: Storage is returned from allocation function "createExpandMemCmpPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:143: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandMemCmpPass()" leaks it. +# 141| (void) llvm::createMergeICmpsLegacyPass(); +# 142| (void) llvm::createExpandLargeDivRemPass(); +# 143|-> (void) llvm::createExpandMemCmpPass(); +# 144| (void) llvm::createExpandVectorPredicationPass(); +# 145| std::string buf; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:144: alloc_fn: Storage is returned from allocation function "createExpandVectorPredicationPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:144: leaked_storage: Failing to save or free storage allocated by "llvm::createExpandVectorPredicationPass()" leaks it. +# 142| (void) llvm::createExpandLargeDivRemPass(); +# 143| (void) llvm::createExpandMemCmpPass(); +# 144|-> (void) llvm::createExpandVectorPredicationPass(); +# 145| std::string buf; +# 146| llvm::raw_string_ostream os(buf); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:147: alloc_fn: Storage is returned from allocation function "createPrintModulePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:147: leaked_storage: Failing to save or free storage allocated by "llvm::createPrintModulePass(os, std::string const("", std::allocator()), false)" leaks it. +# 145| std::string buf; +# 146| llvm::raw_string_ostream os(buf); +# 147|-> (void) llvm::createPrintModulePass(os); +# 148| (void) llvm::createPrintFunctionPass(os); +# 149| (void) llvm::createSinkingPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:148: alloc_fn: Storage is returned from allocation function "createPrintFunctionPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:148: leaked_storage: Failing to save or free storage allocated by "llvm::createPrintFunctionPass(os, std::string const("", std::allocator()))" leaks it. +# 146| llvm::raw_string_ostream os(buf); +# 147| (void) llvm::createPrintModulePass(os); +# 148|-> (void) llvm::createPrintFunctionPass(os); +# 149| (void) llvm::createSinkingPass(); +# 150| (void) llvm::createLowerAtomicPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:149: alloc_fn: Storage is returned from allocation function "createSinkingPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:149: leaked_storage: Failing to save or free storage allocated by "llvm::createSinkingPass()" leaks it. +# 147| (void) llvm::createPrintModulePass(os); +# 148| (void) llvm::createPrintFunctionPass(os); +# 149|-> (void) llvm::createSinkingPass(); +# 150| (void) llvm::createLowerAtomicPass(); +# 151| (void) llvm::createLoadStoreVectorizerPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:150: alloc_fn: Storage is returned from allocation function "createLowerAtomicPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:150: leaked_storage: Failing to save or free storage allocated by "llvm::createLowerAtomicPass()" leaks it. +# 148| (void) llvm::createPrintFunctionPass(os); +# 149| (void) llvm::createSinkingPass(); +# 150|-> (void) llvm::createLowerAtomicPass(); +# 151| (void) llvm::createLoadStoreVectorizerPass(); +# 152| (void) llvm::createPartiallyInlineLibCallsPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:151: alloc_fn: Storage is returned from allocation function "createLoadStoreVectorizerPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:151: leaked_storage: Failing to save or free storage allocated by "llvm::createLoadStoreVectorizerPass()" leaks it. +# 149| (void) llvm::createSinkingPass(); +# 150| (void) llvm::createLowerAtomicPass(); +# 151|-> (void) llvm::createLoadStoreVectorizerPass(); +# 152| (void) llvm::createPartiallyInlineLibCallsPass(); +# 153| (void) llvm::createScalarizerPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:152: alloc_fn: Storage is returned from allocation function "createPartiallyInlineLibCallsPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:152: leaked_storage: Failing to save or free storage allocated by "llvm::createPartiallyInlineLibCallsPass()" leaks it. +# 150| (void) llvm::createLowerAtomicPass(); +# 151| (void) llvm::createLoadStoreVectorizerPass(); +# 152|-> (void) llvm::createPartiallyInlineLibCallsPass(); +# 153| (void) llvm::createScalarizerPass(); +# 154| (void) llvm::createSeparateConstOffsetFromGEPPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:153: alloc_fn: Storage is returned from allocation function "createScalarizerPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:153: leaked_storage: Failing to save or free storage allocated by "llvm::createScalarizerPass()" leaks it. +# 151| (void) llvm::createLoadStoreVectorizerPass(); +# 152| (void) llvm::createPartiallyInlineLibCallsPass(); +# 153|-> (void) llvm::createScalarizerPass(); +# 154| (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 155| (void) llvm::createSpeculativeExecutionPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:154: alloc_fn: Storage is returned from allocation function "createSeparateConstOffsetFromGEPPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:154: leaked_storage: Failing to save or free storage allocated by "llvm::createSeparateConstOffsetFromGEPPass(false)" leaks it. +# 152| (void) llvm::createPartiallyInlineLibCallsPass(); +# 153| (void) llvm::createScalarizerPass(); +# 154|-> (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 155| (void) llvm::createSpeculativeExecutionPass(); +# 156| (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:155: alloc_fn: Storage is returned from allocation function "createSpeculativeExecutionPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:155: leaked_storage: Failing to save or free storage allocated by "llvm::createSpeculativeExecutionPass()" leaks it. +# 153| (void) llvm::createScalarizerPass(); +# 154| (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 155|-> (void) llvm::createSpeculativeExecutionPass(); +# 156| (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); +# 157| (void) llvm::createStraightLineStrengthReducePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:156: alloc_fn: Storage is returned from allocation function "createSpeculativeExecutionIfHasBranchDivergencePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:156: leaked_storage: Failing to save or free storage allocated by "llvm::createSpeculativeExecutionIfHasBranchDivergencePass()" leaks it. +# 154| (void) llvm::createSeparateConstOffsetFromGEPPass(); +# 155| (void) llvm::createSpeculativeExecutionPass(); +# 156|-> (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); +# 157| (void) llvm::createStraightLineStrengthReducePass(); +# 158| (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:157: alloc_fn: Storage is returned from allocation function "createStraightLineStrengthReducePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:157: leaked_storage: Failing to save or free storage allocated by "llvm::createStraightLineStrengthReducePass()" leaks it. +# 155| (void) llvm::createSpeculativeExecutionPass(); +# 156| (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); +# 157|-> (void) llvm::createStraightLineStrengthReducePass(); +# 158| (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); +# 159| (void) llvm::createHardwareLoopsLegacyPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:158: alloc_fn: Storage is returned from allocation function "createScalarizeMaskedMemIntrinLegacyPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:158: leaked_storage: Failing to save or free storage allocated by "llvm::createScalarizeMaskedMemIntrinLegacyPass()" leaks it. +# 156| (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); +# 157| (void) llvm::createStraightLineStrengthReducePass(); +# 158|-> (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); +# 159| (void) llvm::createHardwareLoopsLegacyPass(); +# 160| (void) llvm::createUnifyLoopExitsPass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:159: alloc_fn: Storage is returned from allocation function "createHardwareLoopsLegacyPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:159: leaked_storage: Failing to save or free storage allocated by "llvm::createHardwareLoopsLegacyPass()" leaks it. +# 157| (void) llvm::createStraightLineStrengthReducePass(); +# 158| (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); +# 159|-> (void) llvm::createHardwareLoopsLegacyPass(); +# 160| (void) llvm::createUnifyLoopExitsPass(); +# 161| (void) llvm::createFixIrreduciblePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:160: alloc_fn: Storage is returned from allocation function "createUnifyLoopExitsPass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:160: leaked_storage: Failing to save or free storage allocated by "llvm::createUnifyLoopExitsPass()" leaks it. +# 158| (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); +# 159| (void) llvm::createHardwareLoopsLegacyPass(); +# 160|-> (void) llvm::createUnifyLoopExitsPass(); +# 161| (void) llvm::createFixIrreduciblePass(); +# 162| (void)llvm::createSelectOptimizePass(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:161: alloc_fn: Storage is returned from allocation function "createFixIrreduciblePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:161: leaked_storage: Failing to save or free storage allocated by "llvm::createFixIrreduciblePass()" leaks it. +# 159| (void) llvm::createHardwareLoopsLegacyPass(); +# 160| (void) llvm::createUnifyLoopExitsPass(); +# 161|-> (void) llvm::createFixIrreduciblePass(); +# 162| (void)llvm::createSelectOptimizePass(); +# 163| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:162: alloc_fn: Storage is returned from allocation function "createSelectOptimizePass". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:162: leaked_storage: Failing to save or free storage allocated by "llvm::createSelectOptimizePass()" leaks it. +# 160| (void) llvm::createUnifyLoopExitsPass(); +# 161| (void) llvm::createFixIrreduciblePass(); +# 162|-> (void)llvm::createSelectOptimizePass(); +# 163| +# 164| (void)new llvm::IntervalPartition(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:164: alloc_fn: Storage is returned from allocation function "operator new". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:164: leaked_storage: Failing to save or free storage allocated by "new llvm::IntervalPartition" leaks it. +# 162| (void)llvm::createSelectOptimizePass(); +# 163| +# 164|-> (void)new llvm::IntervalPartition(); +# 165| (void)new llvm::ScalarEvolutionWrapperPass(); +# 166| llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly(); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:165: alloc_fn: Storage is returned from allocation function "operator new". +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:165: leaked_storage: Failing to save or free storage allocated by "new llvm::ScalarEvolutionWrapperPass" leaks it. +# 163| +# 164| (void)new llvm::IntervalPartition(); +# 165|-> (void)new llvm::ScalarEvolutionWrapperPass(); +# 166| llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly(); +# 167| llvm::RGPassManager RGM; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "::ForceSkipUniformRegions" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "::ForceSkipUniformRegions" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "CFGFuncName[abi:cxx11]" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "CFGFuncName[abi:cxx11]" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "DefaultRotationThreshold" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "DefaultRotationThreshold" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "UserBonusInstThreshold" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "UserBonusInstThreshold" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/LinkAllPasses.h:178: constructor_uses_global_object: The constructor of global object "::ForcePassLinking" itself makes use of global object "llvm::SetLicmMssaOptCap" defined in another compilation unit. The order of construction is unspecified, so "::ForcePassLinking" might be created before "llvm::SetLicmMssaOptCap" is available. +# 176| (void) llvm::sys::RunningOnValgrind(); +# 177| } +# 178|-> } ForcePassLinking; // Force link by creating a global definition. +# 179| } +# 180| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/ProfileData/MemProf.h:103: var_decl: Declaring variable "List". +llvm-17.0.6.src/include/llvm/ProfileData/MemProf.h:107: uninit_use: Using uninitialized value "List". Field "List.InlineElts" is uninitialized. +# 105| #include "llvm/ProfileData/MIBEntryDef.inc" +# 106| #undef MIBEntryDef +# 107|-> return List; +# 108| } +# 109| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/Support/Errno.h:37: open_fn: Returning handle opened by "operator ()". +llvm-17.0.6.src/include/llvm/Support/Errno.h:37: var_assign: Assigning: "Res" = handle returned from "F()". +llvm-17.0.6.src/include/llvm/Support/Errno.h:37: overwrite_var: Overwriting handle "Res" in "Res = F()" leaks the handle. +# 35| do { +# 36| errno = 0; +# 37|-> Res = F(As...); +# 38| } while (Res == Fail && errno == EINTR); +# 39| return Res; + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/include/llvm/Support/Error.h:951: move: "Hs" is moved (indicated by "std::forward(Hs)"). +llvm-17.0.6.src/include/llvm/Support/Error.h:951: use_after_move: "Hs" is used after it has been already moved. +# 949| Error R; +# 950| for (auto &P : List.Payloads) +# 951|-> R = ErrorList::join( +# 952| std::move(R), +# 953| handleErrorImpl(std::move(P), std::forward(Hs)...)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Support/FormatVariadic.h:117: var_decl: Declaring variable "Result". +llvm-17.0.6.src/include/llvm/Support/FormatVariadic.h:120: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 118| raw_svector_ostream Stream(Result); +# 119| Stream << *this; +# 120|-> return Result; +# 121| } +# 122| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Support/GenericDomTreeConstruction.h:353: var_decl: Declaring variable "Roots". +llvm-17.0.6.src/include/llvm/Support/GenericDomTreeConstruction.h:358: uninit_use: Using uninitialized value "Roots". Field "Roots.InlineElts" is uninitialized. +# 356| if (!IsPostDom) { +# 357| Roots.push_back(GetEntryNode(DT)); +# 358|-> return Roots; +# 359| } +# 360| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Support/GenericDomTreeConstruction.h:353: var_decl: Declaring variable "Roots". +llvm-17.0.6.src/include/llvm/Support/GenericDomTreeConstruction.h:496: uninit_use: Using uninitialized value "Roots". Field "Roots.InlineElts" is uninitialized. +# 494| LLVM_DEBUG(dbgs() << "\n"); +# 495| +# 496|-> return Roots; +# 497| } +# 498| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Support/GenericLoopInfo.h:371: var_decl: Declaring variable "PreOrderLoops". +llvm-17.0.6.src/include/llvm/Support/GenericLoopInfo.h:375: uninit_use: Using uninitialized value "PreOrderLoops". Field "PreOrderLoops.InlineElts" is uninitialized. +# 373| PreOrderLoops.push_back(CurLoop); +# 374| getInnerLoopsInPreorder(*CurLoop, PreOrderLoops); +# 375|-> return PreOrderLoops; +# 376| } +# 377| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/include/llvm/Support/PluginLoader.h:35: constructor_uses_global_object: The constructor of global object "llvm::LoadOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LoadOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| // This causes operator= above to be invoked for every -load option. +# 34| static cl::opt> +# 35|-> LoadOpt("load", cl::value_desc("pluginfilename"), +# 36| cl::desc("Load the specified plugin")); +# 37| #endif + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/include/llvm/Support/thread.h:134: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/include/llvm/Support/thread.h:134: leaked_storage: Ignoring storage allocated by "Callee.release()" leaks it. +# 132| StackSizeInBytes); +# 133| if (Thread != native_handle_type()) +# 134|-> Callee.release(); +# 135| } +# 136| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h:200: var_decl: Declaring variable "Result". +llvm-17.0.6.src/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h:216: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 214| } +# 215| +# 216|-> return Result; +# 217| } +# 218| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysis.cpp:66: constructor_uses_global_object: The constructor of global object "llvm::DisableBasicAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableBasicAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| /// Allow disabling BasicAA from the AA results. This is particularly useful +# 65| /// when testing to isolate a single AA implementation. +# 66|-> cl::opt DisableBasicAA("disable-basic-aa", cl::Hidden, cl::init(false)); +# 67| } // namespace llvm +# 68| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:23: constructor_uses_global_object: The constructor of global object "PrintAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| using namespace llvm; +# 22| +# 23|-> static cl::opt PrintAll("print-all-alias-modref-info", cl::ReallyHidden); +# 24| +# 25| static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:25: constructor_uses_global_object: The constructor of global object "PrintNoAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintNoAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| static cl::opt PrintAll("print-all-alias-modref-info", cl::ReallyHidden); +# 24| +# 25|-> static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); +# 26| static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27| static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:26: constructor_uses_global_object: The constructor of global object "PrintMayAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMayAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); +# 26|-> static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27| static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); +# 28| static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:27: constructor_uses_global_object: The constructor of global object "PrintPartialAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintPartialAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| static cl::opt PrintNoAlias("print-no-aliases", cl::ReallyHidden); +# 26| static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27|-> static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); +# 28| static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); +# 29| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:28: constructor_uses_global_object: The constructor of global object "PrintMustAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMustAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| static cl::opt PrintMayAlias("print-may-aliases", cl::ReallyHidden); +# 27| static cl::opt PrintPartialAlias("print-partial-aliases", cl::ReallyHidden); +# 28|-> static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); +# 29| +# 30| static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:30: constructor_uses_global_object: The constructor of global object "PrintNoModRef" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintNoModRef" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| static cl::opt PrintMustAlias("print-must-aliases", cl::ReallyHidden); +# 29| +# 30|-> static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); +# 31| static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32| static cl::opt PrintMod("print-mod", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:31: constructor_uses_global_object: The constructor of global object "PrintRef" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintRef" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); +# 31|-> static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32| static cl::opt PrintMod("print-mod", cl::ReallyHidden); +# 33| static cl::opt PrintModRef("print-modref", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:32: constructor_uses_global_object: The constructor of global object "PrintMod" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintMod" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| static cl::opt PrintNoModRef("print-no-modref", cl::ReallyHidden); +# 31| static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32|-> static cl::opt PrintMod("print-mod", cl::ReallyHidden); +# 33| static cl::opt PrintModRef("print-modref", cl::ReallyHidden); +# 34| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:33: constructor_uses_global_object: The constructor of global object "PrintModRef" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintModRef" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| static cl::opt PrintRef("print-ref", cl::ReallyHidden); +# 32| static cl::opt PrintMod("print-mod", cl::ReallyHidden); +# 33|-> static cl::opt PrintModRef("print-modref", cl::ReallyHidden); +# 34| +# 35| static cl::opt EvalAAMD("evaluate-aa-metadata", cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasAnalysisEvaluator.cpp:35: constructor_uses_global_object: The constructor of global object "EvalAAMD" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EvalAAMD" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| static cl::opt PrintModRef("print-modref", cl::ReallyHidden); +# 34| +# 35|-> static cl::opt EvalAAMD("evaluate-aa-metadata", cl::ReallyHidden); +# 36| +# 37| static void PrintResults(AliasResult AR, bool P, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AliasSetTracker.cpp:38: constructor_uses_global_object: The constructor of global object "SaturationThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SaturationThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| +# 37| static cl::opt +# 38|-> SaturationThreshold("alias-set-saturation-threshold", cl::Hidden, +# 39| cl::init(250), +# 40| cl::desc("The maximum number of pointers may-alias " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/AssumptionCache.cpp:40: constructor_uses_global_object: The constructor of global object "VerifyAssumptionCache" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyAssumptionCache" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| +# 39| static cl::opt +# 40|-> VerifyAssumptionCache("verify-assumption-cache", cl::Hidden, +# 41| cl::desc("Enable verification of assumption cache"), +# 42| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:68: constructor_uses_global_object: The constructor of global object "EnableRecPhiAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRecPhiAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| +# 67| /// Enable analysis of recursive PHI nodes. +# 68|-> static cl::opt EnableRecPhiAnalysis("basic-aa-recphi", cl::Hidden, +# 69| cl::init(true)); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:71: constructor_uses_global_object: The constructor of global object "EnableSeparateStorageAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSeparateStorageAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::init(true)); +# 70| +# 71|-> static cl::opt EnableSeparateStorageAnalysis("basic-aa-separate-storage", +# 72| cl::Hidden, cl::init(false)); +# 73| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:538: var_decl: Declaring variable "Decomposed". +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:552: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 550| } +# 551| Decomposed.Base = V; +# 552|-> return Decomposed; +# 553| } +# 554| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:538: var_decl: Declaring variable "Decomposed". +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:586: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 584| +# 585| Decomposed.Base = V; +# 586|-> return Decomposed; +# 587| } +# 588| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:538: var_decl: Declaring variable "Decomposed". +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:627: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 625| if (AllocTypeSize.isScalable()) { +# 626| Decomposed.Base = V; +# 627|-> return Decomposed; +# 628| } +# 629| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:538: var_decl: Declaring variable "Decomposed". +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:638: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 636| if (AllocTypeSize.isScalable()) { +# 637| Decomposed.Base = V; +# 638|-> return Decomposed; +# 639| } +# 640| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:538: var_decl: Declaring variable "Decomposed". +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:692: uninit_use: Using uninitialized value "Decomposed". Field "Decomposed.VarIndices.InlineElts" is uninitialized. +# 690| Decomposed.Base = V; +# 691| SearchLimitReached++; +# 692|-> return Decomposed; +# 693| } +# 694| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:1058: tainted_data_return: Called function "V2Size.getValue()", and a possible return value is known to be less than zero. +llvm-17.0.6.src/lib/Analysis/BasicAliasAnalysis.cpp:1058: underflow: The cast of "V2Size.getValue()" to a signed type could result in a negative number. +# 1056| // If an inbounds GEP would have to start from an out of bounds address +# 1057| // for the two to alias, then we can assume noalias. +# 1058|-> if (*DecompGEP1.InBounds && DecompGEP1.VarIndices.empty() && +# 1059| V2Size.hasValue() && DecompGEP1.Offset.sge(V2Size.getValue()) && +# 1060| isBaseOfObject(DecompGEP2.Base)) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:35: constructor_uses_global_object: The constructor of global object "ViewBlockFreqPropagationDAG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewBlockFreqPropagationDAG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| #define DEBUG_TYPE "block-freq" +# 34| +# 35|-> static cl::opt ViewBlockFreqPropagationDAG( +# 36| "view-block-freq-propagation-dags", cl::Hidden, +# 37| cl::desc("Pop up a window to show a dag displaying how block " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:51: constructor_uses_global_object: The constructor of global object "llvm::ViewBlockFreqFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewBlockFreqFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| namespace llvm { +# 50| cl::opt +# 51|-> ViewBlockFreqFuncName("view-bfi-func-name", cl::Hidden, +# 52| cl::desc("The option to specify " +# 53| "the name of the function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:57: constructor_uses_global_object: The constructor of global object "llvm::ViewHotFreqPercent" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewHotFreqPercent" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| cl::opt +# 57|-> ViewHotFreqPercent("view-hot-freq-percent", cl::init(10), cl::Hidden, +# 58| cl::desc("An integer in percent used to specify " +# 59| "the hot blocks/edges to be displayed " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:65: constructor_uses_global_object: The constructor of global object "llvm::PGOViewCounts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PGOViewCounts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| // Command line option to turn on CFG dot or text dump after profile annotation. +# 65|-> cl::opt PGOViewCounts( +# 66| "pgo-view-counts", cl::Hidden, +# 67| cl::desc("A boolean option to show CFG dag or text with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:81: constructor_uses_global_object: The constructor of global object "llvm::PrintBlockFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintBlockFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| clEnumValN(PGOVCT_Text, "text", "show in text."))); +# 80| +# 81|-> static cl::opt PrintBlockFreq( +# 82| "print-bfi", cl::init(false), cl::Hidden, +# 83| cl::desc("Print the block frequency info.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfo.cpp:85: constructor_uses_global_object: The constructor of global object "llvm::PrintBlockFreqFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintBlockFreqFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("Print the block frequency info.")); +# 84| +# 85|-> cl::opt PrintBlockFreqFuncName( +# 86| "print-bfi-func-name", cl::Hidden, +# 87| cl::desc("The option to specify the name of the function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:44: constructor_uses_global_object: The constructor of global object "llvm::CheckBFIUnknownBlockQueries" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::CheckBFIUnknownBlockQueries" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| namespace llvm { +# 44|-> cl::opt CheckBFIUnknownBlockQueries( +# 45| "check-bfi-unknown-block-queries", +# 46| cl::init(false), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:50: constructor_uses_global_object: The constructor of global object "llvm::UseIterativeBFIInference" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseIterativeBFIInference" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| "for debugging missed BFI updates")); +# 49| +# 50|-> cl::opt UseIterativeBFIInference( +# 51| "use-iterative-bfi-inference", cl::Hidden, +# 52| cl::desc("Apply an iterative post-processing to infer correct BFI counts")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:54: constructor_uses_global_object: The constructor of global object "llvm::IterativeBFIMaxIterationsPerBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::IterativeBFIMaxIterationsPerBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::desc("Apply an iterative post-processing to infer correct BFI counts")); +# 53| +# 54|-> cl::opt IterativeBFIMaxIterationsPerBlock( +# 55| "iterative-bfi-max-iterations-per-block", cl::init(1000), cl::Hidden, +# 56| cl::desc("Iterative inference: maximum number of update iterations " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BlockFrequencyInfoImpl.cpp:59: constructor_uses_global_object: The constructor of global object "llvm::IterativeBFIPrecision" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::IterativeBFIPrecision" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| "per block")); +# 58| +# 59|-> cl::opt IterativeBFIPrecision( +# 60| "iterative-bfi-precision", cl::init(1e-12), cl::Hidden, +# 61| cl::desc("Iterative inference: delta convergence precision; smaller values " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BranchProbabilityInfo.cpp:54: constructor_uses_global_object: The constructor of global object "PrintBranchProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBranchProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| #define DEBUG_TYPE "branch-prob" +# 53| +# 54|-> static cl::opt PrintBranchProb( +# 55| "print-bpi", cl::init(false), cl::Hidden, +# 56| cl::desc("Print the branch probability info.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/BranchProbabilityInfo.cpp:58: constructor_uses_global_object: The constructor of global object "PrintBranchProbFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBranchProbFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::desc("Print the branch probability info.")); +# 57| +# 58|-> cl::opt PrintBranchProbFuncName( +# 59| "print-bpi-func-name", cl::Hidden, +# 60| cl::desc("The option to specify the name of the function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFG.cpp:24: constructor_uses_global_object: The constructor of global object "DefaultMaxBBsToExplore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultMaxBBsToExplore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| // two basic blocks. This is kept reasonably small to limit compile time when +# 23| // repeatedly used by clients of this analysis (such as captureTracking). +# 24|-> static cl::opt DefaultMaxBBsToExplore( +# 25| "dom-tree-reachability-max-bbs-to-explore", cl::Hidden, +# 26| cl::desc("Max number of BBs to explore for reachability analysis"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:31: constructor_uses_global_object: The constructor of global object "CFGFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CFGFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt +# 31|-> CFGFuncName("cfg-func-name", cl::Hidden, +# 32| cl::desc("The name of a function (or its substring)" +# 33| " whose CFG is viewed/printed.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:35: constructor_uses_global_object: The constructor of global object "CFGDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CFGDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| " whose CFG is viewed/printed.")); +# 34| +# 35|-> static cl::opt CFGDotFilenamePrefix( +# 36| "cfg-dot-filename-prefix", cl::Hidden, +# 37| cl::desc("The prefix used for the CFG dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:39: constructor_uses_global_object: The constructor of global object "HideUnreachablePaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HideUnreachablePaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::desc("The prefix used for the CFG dot file names.")); +# 38| +# 39|-> static cl::opt HideUnreachablePaths("cfg-hide-unreachable-paths", +# 40| cl::init(false)); +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:42: constructor_uses_global_object: The constructor of global object "HideDeoptimizePaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HideDeoptimizePaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::init(false)); +# 41| +# 42|-> static cl::opt HideDeoptimizePaths("cfg-hide-deoptimize-paths", +# 43| cl::init(false)); +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:45: constructor_uses_global_object: The constructor of global object "HideColdPaths" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HideColdPaths" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::init(false)); +# 44| +# 45|-> static cl::opt HideColdPaths( +# 46| "cfg-hide-cold-paths", cl::init(0.0), +# 47| cl::desc("Hide blocks with relative frequency below the given value")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:49: constructor_uses_global_object: The constructor of global object "ShowHeatColors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowHeatColors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::desc("Hide blocks with relative frequency below the given value")); +# 48| +# 49|-> static cl::opt ShowHeatColors("cfg-heat-colors", cl::init(true), +# 50| cl::Hidden, +# 51| cl::desc("Show heat colors in CFG")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:53: constructor_uses_global_object: The constructor of global object "UseRawEdgeWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseRawEdgeWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| cl::desc("Show heat colors in CFG")); +# 52| +# 53|-> static cl::opt UseRawEdgeWeight("cfg-raw-weights", cl::init(false), +# 54| cl::Hidden, +# 55| cl::desc("Use raw weights for labels. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CFGPrinter.cpp:59: constructor_uses_global_object: The constructor of global object "ShowEdgeWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowEdgeWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| +# 58| static cl::opt +# 59|-> ShowEdgeWeight("cfg-weights", cl::init(false), cl::Hidden, +# 60| cl::desc("Show edges labeled with weights")); +# 61| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CGSCCPassManager.cpp:41: constructor_uses_global_object: The constructor of global object "llvm::AbortOnMaxDevirtIterationsReached" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::AbortOnMaxDevirtIterationsReached" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| // template typedefs. +# 40| namespace llvm { +# 41|-> static cl::opt AbortOnMaxDevirtIterationsReached( +# 42| "abort-on-max-devirt-iterations-reached", +# 43| cl::desc("Abort when the max iterations for devirtualization CGSCC repeat " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/CGSCCPassManager.cpp:377: var_decl: Declaring variable "CallCounts". +llvm-17.0.6.src/lib/Analysis/CGSCCPassManager.cpp:394: uninit_use: Using uninitialized value "CallCounts". Field "CallCounts.NumEntries" is uninitialized. +# 392| } +# 393| +# 394|-> return CallCounts; +# 395| }; +# 396| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallGraphSCCPass.cpp:47: constructor_uses_global_object: The constructor of global object "llvm::MaxDevirtIterations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::MaxDevirtIterations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| namespace llvm { +# 47|-> cl::opt MaxDevirtIterations("max-devirt-iterations", cl::ReallyHidden, +# 48| cl::init(4)); +# 49| } + +Error: USE_AFTER_FREE (CWE-416): +llvm-17.0.6.src/lib/Analysis/CallGraphSCCPass.cpp:638: assign: Assigning: "P" = "CGP". +llvm-17.0.6.src/lib/Analysis/CallGraphSCCPass.cpp:639: freed_arg: "schedulePass" frees "P". +llvm-17.0.6.src/lib/Analysis/CallGraphSCCPass.cpp:642: deref_arg: Calling "push" dereferences freed pointer "CGP". +# 640| +# 641| // [4] Push new manager into PMS +# 642|-> PMS.push(CGP); +# 643| } +# 644| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:37: constructor_uses_global_object: The constructor of global object "ShowHeatColors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowHeatColors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| // FIXME: +# 36| // Need to show real counts when profile data is available +# 37|-> static cl::opt ShowHeatColors("callgraph-heat-colors", cl::init(false), +# 38| cl::Hidden, +# 39| cl::desc("Show heat colors in call-graph")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:42: constructor_uses_global_object: The constructor of global object "ShowEdgeWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowEdgeWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> ShowEdgeWeight("callgraph-show-weights", cl::init(false), cl::Hidden, +# 43| cl::desc("Show edges labeled with weights")); +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:46: constructor_uses_global_object: The constructor of global object "CallMultiGraph" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CallMultiGraph" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| +# 45| static cl::opt +# 46|-> CallMultiGraph("callgraph-multigraph", cl::init(false), cl::Hidden, +# 47| cl::desc("Show call-multigraph (do not remove parallel edges)")); +# 48| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CallPrinter.cpp:49: constructor_uses_global_object: The constructor of global object "CallGraphDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CallGraphDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::desc("Show call-multigraph (do not remove parallel edges)")); +# 48| +# 49|-> static cl::opt CallGraphDotFilenamePrefix( +# 50| "callgraph-dot-filename-prefix", cl::Hidden, +# 51| cl::desc("The prefix used for the CallGraph dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CaptureTracking.cpp:48: constructor_uses_global_object: The constructor of global object "DefaultMaxUsesToExplore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultMaxUsesToExplore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| /// don't have this cap at all. +# 47| static cl::opt +# 48|-> DefaultMaxUsesToExplore("capture-tracking-max-uses-to-explore", cl::Hidden, +# 49| cl::desc("Maximal number of uses to explore."), +# 50| cl::init(100)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:1748: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(V)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:1748: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1746| } +# 1747| if (Ty->isDoubleTy()) +# 1748|-> return ConstantFP::get(Ty->getContext(), APFloat(V)); +# 1749| llvm_unreachable("Can only constant fold half/float/double"); +# 1750| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:2151: var_decl: Declaring variable "AlmostOne". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:2152: uninit_use_in_call: Using uninitialized value "AlmostOne.U" when calling "next". +# 2150| APFloat FractU(U - FloorU); +# 2151| APFloat AlmostOne(U.getSemantics(), 1); +# 2152|-> AlmostOne.next(/*nextDown*/ true); +# 2153| return ConstantFP::get(Ty->getContext(), minimum(FractU, AlmostOne)); +# 2154| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:2229: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2.)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:2229: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2227| case Intrinsic::exp2: +# 2228| // Fold exp2(x) as pow(2, x), in case the host lacks a C99 library. +# 2229|-> return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); +# 2230| case Intrinsic::sin: +# 2231| return ConstantFoldFP(sin, APF, Ty); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:2321: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2.)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:2321: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2319| if (TLI->has(Func)) +# 2320| // Fold exp2(x) as pow(2, x), in case the host lacks a C99 library. +# 2321|-> return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); +# 2322| break; +# 2323| case LibFunc_fabs: + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3038: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0f)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3038: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3036| // It's tempting to just return C3 here, but that would give the +# 3037| // wrong result if C3 was -0.0. +# 3038|-> return ConstantFP::get(Ty->getContext(), APFloat(0.0f) + C3); +# 3039| } +# 3040| [[fallthrough]]; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3423: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(709.)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3423: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3421| // FIXME: These boundaries are slightly conservative. +# 3422| if (OpC->getType()->isDoubleTy()) +# 3423|-> return !(Op < APFloat(-745.0) || Op > APFloat(709.0)); +# 3424| if (OpC->getType()->isFloatTy()) +# 3425| return !(Op < APFloat(-103.0f) || Op > APFloat(88.0f)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3425: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(88f)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3425: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3423| return !(Op < APFloat(-745.0) || Op > APFloat(709.0)); +# 3424| if (OpC->getType()->isFloatTy()) +# 3425|-> return !(Op < APFloat(-103.0f) || Op > APFloat(88.0f)); +# 3426| break; +# 3427| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3433: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1023.)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3433: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3431| // FIXME: These boundaries are slightly conservative. +# 3432| if (OpC->getType()->isDoubleTy()) +# 3433|-> return !(Op < APFloat(-1074.0) || Op > APFloat(1023.0)); +# 3434| if (OpC->getType()->isFloatTy()) +# 3435| return !(Op < APFloat(-149.0f) || Op > APFloat(127.0f)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3435: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(127f)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3435: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3433| return !(Op < APFloat(-1074.0) || Op > APFloat(1023.0)); +# 3434| if (OpC->getType()->isFloatTy()) +# 3435|-> return !(Op < APFloat(-149.0f) || Op > APFloat(127.0f)); +# 3436| break; +# 3437| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3481: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(710.)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3481: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3479| // FIXME: These boundaries are slightly conservative. +# 3480| if (OpC->getType()->isDoubleTy()) +# 3481|-> return !(Op < APFloat(-710.0) || Op > APFloat(710.0)); +# 3482| if (OpC->getType()->isFloatTy()) +# 3483| return !(Op < APFloat(-89.0f) || Op > APFloat(89.0f)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3483: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(89f)". +llvm-17.0.6.src/lib/Analysis/ConstantFolding.cpp:3483: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3481| return !(Op < APFloat(-710.0) || Op > APFloat(710.0)); +# 3482| if (OpC->getType()->isFloatTy()) +# 3483|-> return !(Op < APFloat(-89.0f) || Op > APFloat(89.0f)); +# 3484| break; +# 3485| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CostModel.cpp:31: constructor_uses_global_object: The constructor of global object "CostKind" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CostKind" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt CostKind( +# 32| "cost-kind", cl::desc("Target cost kind"), +# 33| cl::init(TargetTransformInfo::TCK_RecipThroughput), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/CostModel.cpp:43: constructor_uses_global_object: The constructor of global object "TypeBasedIntrinsicCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TypeBasedIntrinsicCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| "size-latency", "Code size and latency"))); +# 42| +# 43|-> static cl::opt TypeBasedIntrinsicCost("type-based-intrinsic-cost", +# 44| cl::desc("Calculate intrinsics cost based only on argument types"), +# 45| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDG.cpp:19: constructor_uses_global_object: The constructor of global object "SimplifyDDG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SimplifyDDG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| using namespace llvm; +# 18| +# 19|-> static cl::opt SimplifyDDG( +# 20| "ddg-simplify", cl::init(true), cl::Hidden, +# 21| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDG.cpp:24: constructor_uses_global_object: The constructor of global object "CreatePiBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CreatePiBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| "Simplify DDG by merging nodes that have less interesting edges.")); +# 23| +# 24|-> static cl::opt CreatePiBlocks("ddg-pi-blocks", cl::init(true), cl::Hidden, +# 25| cl::desc("Create pi-block nodes.")); +# 26| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/DDG.cpp:310: var_decl: Declaring variable "DI". +llvm-17.0.6.src/lib/Analysis/DDG.cpp:311: uninit_use_in_call: Using uninitialized value "DI". Field "DI.CommonLevels" is uninitialized when calling "make_unique". +# 309| Function *F = L.getHeader()->getParent(); +# 310| DependenceInfo DI(F, &AR.AA, &AR.SE, &AR.LI); +# 311|-> return std::make_unique(L, AR.LI, DI); +# 312| } +# 313| AnalysisKey DDGAnalysis::Key; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDGPrinter.cpp:21: constructor_uses_global_object: The constructor of global object "DotOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 19| using namespace llvm; +# 20| +# 21|-> static cl::opt DotOnly("dot-ddg-only", cl::Hidden, +# 22| cl::desc("simple ddg dot graph")); +# 23| static cl::opt DDGDotFilenamePrefix( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DDGPrinter.cpp:23: constructor_uses_global_object: The constructor of global object "DDGDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DDGDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| static cl::opt DotOnly("dot-ddg-only", cl::Hidden, +# 22| cl::desc("simple ddg dot graph")); +# 23|-> static cl::opt DDGDotFilenamePrefix( +# 24| "dot-ddg-filename-prefix", cl::init("ddg"), cl::Hidden, +# 25| cl::desc("The prefix used for the DDG dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DependenceAnalysis.cpp:109: constructor_uses_global_object: The constructor of global object "Delinearize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Delinearize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 107| +# 108| static cl::opt +# 109|-> Delinearize("da-delinearize", cl::init(true), cl::Hidden, +# 110| cl::desc("Try to delinearize array references.")); +# 111| static cl::opt DisableDelinearizationChecks( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DependenceAnalysis.cpp:111: constructor_uses_global_object: The constructor of global object "DisableDelinearizationChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDelinearizationChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| Delinearize("da-delinearize", cl::init(true), cl::Hidden, +# 110| cl::desc("Try to delinearize array references.")); +# 111|-> static cl::opt DisableDelinearizationChecks( +# 112| "da-disable-delinearization-checks", cl::Hidden, +# 113| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/DependenceAnalysis.cpp:119: constructor_uses_global_object: The constructor of global object "MIVMaxLevelThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MIVMaxLevelThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| "dimension to underflow or overflow into another dimension.")); +# 118| +# 119|-> static cl::opt MIVMaxLevelThreshold( +# 120| "da-miv-max-level-threshold", cl::init(7), cl::Hidden, +# 121| cl::desc("Maximum depth allowed for the recursive algorithm used to " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/GlobalsModRef.cpp:54: constructor_uses_global_object: The constructor of global object "EnableUnsafeGlobalsModRefAliasResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableUnsafeGlobalsModRefAliasResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // sensitivity and no known issues. The option also makes it easy to evaluate +# 53| // the performance impact of these results. +# 54|-> static cl::opt EnableUnsafeGlobalsModRefAliasResults( +# 55| "enable-unsafe-globalsmodref-alias-results", cl::init(false), cl::Hidden); +# 56| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:29: constructor_uses_global_object: The constructor of global object "llvm::DisableBranches" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableBranches" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| namespace llvm { +# 28| cl::opt +# 29|-> DisableBranches("no-ir-sim-branch-matching", cl::init(false), +# 30| cl::ReallyHidden, +# 31| cl::desc("disable similarity matching, and outlining, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:35: constructor_uses_global_object: The constructor of global object "llvm::DisableIndirectCalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableIndirectCalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| cl::opt +# 35|-> DisableIndirectCalls("no-ir-sim-indirect-calls", cl::init(false), +# 36| cl::ReallyHidden, +# 37| cl::desc("disable outlining indirect calls.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:40: constructor_uses_global_object: The constructor of global object "llvm::MatchCallsByName" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::MatchCallsByName" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| +# 39| cl::opt +# 40|-> MatchCallsByName("ir-sim-calls-by-name", cl::init(false), cl::ReallyHidden, +# 41| cl::desc("only allow matching call instructions if the " +# 42| "name and type signature match.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:45: constructor_uses_global_object: The constructor of global object "llvm::DisableIntrinsics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableIntrinsics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| cl::opt +# 45|-> DisableIntrinsics("no-ir-sim-intrinsics", cl::init(false), cl::ReallyHidden, +# 46| cl::desc("Don't match or outline intrinsics")); +# 47| } // namespace llvm + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:1030: var_decl: Declaring variable "ResultGVN" without initializer. +llvm-17.0.6.src/lib/Analysis/IRSimilarityIdentifier.cpp:1062: uninit_use_in_call: Using uninitialized value "ResultGVN" when calling "insert". +# 1060| +# 1061| // Whatever GVN is found, we mark it as used. +# 1062|-> UsedGVNs.insert(ResultGVN); +# 1063| +# 1064| unsigned CanonNum = *SourceCand.getCanonicalNum(ResultGVN); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ImportedFunctionsInliningStatistics.cpp:27: constructor_uses_global_object: The constructor of global object "llvm::InlinerFunctionImportStats" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::InlinerFunctionImportStats" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| +# 26| namespace llvm { +# 27|-> cl::opt InlinerFunctionImportStats( +# 28| "inliner-function-import-stats", +# 29| cl::init(InlinerFunctionImportStatsOpts::No), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IndirectCallPromotionAnalysis.cpp:28: constructor_uses_global_object: The constructor of global object "ICPRemainingPercentThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ICPRemainingPercentThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| // The percent threshold for the direct-call target (this call site vs the +# 27| // remaining call count) for it to be considered as the promotion target. +# 28|-> static cl::opt ICPRemainingPercentThreshold( +# 29| "icp-remaining-percent-threshold", cl::init(30), cl::Hidden, +# 30| cl::desc("The percentage threshold against remaining unpromoted indirect " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IndirectCallPromotionAnalysis.cpp:36: constructor_uses_global_object: The constructor of global object "ICPTotalPercentThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ICPTotalPercentThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| // total call count) for it to be considered as the promotion target. +# 35| static cl::opt +# 36|-> ICPTotalPercentThreshold("icp-total-percent-threshold", cl::init(5), +# 37| cl::Hidden, +# 38| cl::desc("The percentage threshold against total " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/IndirectCallPromotionAnalysis.cpp:44: constructor_uses_global_object: The constructor of global object "MaxNumPromotions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxNumPromotions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| // callsite. +# 43| static cl::opt +# 44|-> MaxNumPromotions("icp-max-prom", cl::init(3), cl::Hidden, +# 45| cl::desc("Max number of promotions for a single indirect " +# 46| "call callsite")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:43: constructor_uses_global_object: The constructor of global object "InlineRemarkAttribute" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineRemarkAttribute" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| /// Flag to add inline messages as callsite attributes 'inline-remark'. +# 42| static cl::opt +# 43|-> InlineRemarkAttribute("inline-remark-attribute", cl::init(false), +# 44| cl::Hidden, +# 45| cl::desc("Enable adding inline-remark attribute to" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:49: constructor_uses_global_object: The constructor of global object "EnableInlineDeferral" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableInlineDeferral" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| " to be not inlined")); +# 48| +# 49|-> static cl::opt EnableInlineDeferral("inline-deferral", cl::init(false), +# 50| cl::Hidden, +# 51| cl::desc("Enable deferred inlining")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:56: constructor_uses_global_object: The constructor of global object "InlineDeferralScale" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineDeferralScale" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| // number tells shouldBeDeferred to only take the secondary cost into account. +# 55| static cl::opt +# 56|-> InlineDeferralScale("inline-deferral-scale", +# 57| cl::desc("Scale to limit the cost of inline deferral"), +# 58| cl::init(2), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineAdvisor.cpp:61: constructor_uses_global_object: The constructor of global object "AnnotateInlinePhase" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AnnotateInlinePhase" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| +# 60| static cl::opt +# 61|-> AnnotateInlinePhase("annotate-inline-phase", cl::Hidden, cl::init(false), +# 62| cl::desc("If true, annotate inline advisor remarks " +# 63| "with LTO and pass information.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:57: constructor_uses_global_object: The constructor of global object "DefaultThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| static cl::opt +# 57|-> DefaultThreshold("inlinedefault-threshold", cl::Hidden, cl::init(225), +# 58| cl::desc("Default amount of inlining to perform")); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:65: constructor_uses_global_object: The constructor of global object "IgnoreTTIInlineCompatible" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreTTIInlineCompatible" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| // some use cases. If we avoid adding the attribute, we need an option to avoid +# 64| // checking these attributes. +# 65|-> static cl::opt IgnoreTTIInlineCompatible( +# 66| "ignore-tti-inline-compatible", cl::Hidden, cl::init(false), +# 67| cl::desc("Ignore TTI attributes compatibility check between callee/caller " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:70: constructor_uses_global_object: The constructor of global object "PrintInstructionComments" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintInstructionComments" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| "during inline cost calculation")); +# 69| +# 70|-> static cl::opt PrintInstructionComments( +# 71| "print-instruction-comments", cl::Hidden, cl::init(false), +# 72| cl::desc("Prints comments for instruction based on inline cost analysis")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:74: constructor_uses_global_object: The constructor of global object "InlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| cl::desc("Prints comments for instruction based on inline cost analysis")); +# 73| +# 74|-> static cl::opt InlineThreshold( +# 75| "inline-threshold", cl::Hidden, cl::init(225), +# 76| cl::desc("Control the amount of inlining to perform (default = 225)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:78: constructor_uses_global_object: The constructor of global object "HintThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HintThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| cl::desc("Control the amount of inlining to perform (default = 225)")); +# 77| +# 78|-> static cl::opt HintThreshold( +# 79| "inlinehint-threshold", cl::Hidden, cl::init(325), +# 80| cl::desc("Threshold for inlining functions with inline hint")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:83: constructor_uses_global_object: The constructor of global object "ColdCallSiteThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdCallSiteThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| +# 82| static cl::opt +# 83|-> ColdCallSiteThreshold("inline-cold-callsite-threshold", cl::Hidden, +# 84| cl::init(45), +# 85| cl::desc("Threshold for inlining cold callsites")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:87: constructor_uses_global_object: The constructor of global object "InlineEnableCostBenefitAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineEnableCostBenefitAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| cl::desc("Threshold for inlining cold callsites")); +# 86| +# 87|-> static cl::opt InlineEnableCostBenefitAnalysis( +# 88| "inline-enable-cost-benefit-analysis", cl::Hidden, cl::init(false), +# 89| cl::desc("Enable the cost-benefit analysis for the inliner")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:91: constructor_uses_global_object: The constructor of global object "InlineSavingsMultiplier" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineSavingsMultiplier" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| cl::desc("Enable the cost-benefit analysis for the inliner")); +# 90| +# 91|-> static cl::opt InlineSavingsMultiplier( +# 92| "inline-savings-multiplier", cl::Hidden, cl::init(8), +# 93| cl::desc("Multiplier to multiply cycle savings by during inlining")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:96: constructor_uses_global_object: The constructor of global object "InlineSizeAllowance" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineSizeAllowance" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| +# 95| static cl::opt +# 96|-> InlineSizeAllowance("inline-size-allowance", cl::Hidden, cl::init(100), +# 97| cl::desc("The maximum size of a callee that get's " +# 98| "inlined without sufficient cycle savings")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:103: constructor_uses_global_object: The constructor of global object "ColdThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| // PGO before we actually hook up inliner with analysis passes such as BPI and +# 102| // BFI. +# 103|-> static cl::opt ColdThreshold( +# 104| "inlinecold-threshold", cl::Hidden, cl::init(45), +# 105| cl::desc("Threshold for inlining functions with cold attribute")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:108: constructor_uses_global_object: The constructor of global object "HotCallSiteThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HotCallSiteThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| +# 107| static cl::opt +# 108|-> HotCallSiteThreshold("hot-callsite-threshold", cl::Hidden, cl::init(3000), +# 109| cl::desc("Threshold for hot callsites ")); +# 110| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:111: constructor_uses_global_object: The constructor of global object "LocallyHotCallSiteThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LocallyHotCallSiteThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| cl::desc("Threshold for hot callsites ")); +# 110| +# 111|-> static cl::opt LocallyHotCallSiteThreshold( +# 112| "locally-hot-callsite-threshold", cl::Hidden, cl::init(525), +# 113| cl::desc("Threshold for locally hot callsites ")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:115: constructor_uses_global_object: The constructor of global object "ColdCallSiteRelFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdCallSiteRelFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 113| cl::desc("Threshold for locally hot callsites ")); +# 114| +# 115|-> static cl::opt ColdCallSiteRelFreq( +# 116| "cold-callsite-rel-freq", cl::Hidden, cl::init(2), +# 117| cl::desc("Maximum block frequency, expressed as a percentage of caller's " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:121: constructor_uses_global_object: The constructor of global object "HotCallSiteRelFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HotCallSiteRelFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| "profile information.")); +# 120| +# 121|-> static cl::opt HotCallSiteRelFreq( +# 122| "hot-callsite-rel-freq", cl::Hidden, cl::init(60), +# 123| cl::desc("Minimum block frequency, expressed as a multiple of caller's " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:128: constructor_uses_global_object: The constructor of global object "InstrCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InstrCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| +# 127| static cl::opt +# 128|-> InstrCost("inline-instr-cost", cl::Hidden, cl::init(5), +# 129| cl::desc("Cost of a single instruction when inlining")); +# 130| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:132: constructor_uses_global_object: The constructor of global object "MemAccessCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemAccessCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 130| +# 131| static cl::opt +# 132|-> MemAccessCost("inline-memaccess-cost", cl::Hidden, cl::init(0), +# 133| cl::desc("Cost of load/store instruction when inlining")); +# 134| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:135: constructor_uses_global_object: The constructor of global object "CallPenalty" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CallPenalty" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::desc("Cost of load/store instruction when inlining")); +# 134| +# 135|-> static cl::opt CallPenalty( +# 136| "inline-call-penalty", cl::Hidden, cl::init(25), +# 137| cl::desc("Call penalty that is applied per callsite when inlining")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:140: constructor_uses_global_object: The constructor of global object "StackSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> StackSizeThreshold("inline-max-stacksize", cl::Hidden, +# 141| cl::init(std::numeric_limits::max()), +# 142| cl::desc("Do not inline functions with a stack size " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:145: constructor_uses_global_object: The constructor of global object "RecurStackSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RecurStackSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 143| "that exceeds the specified limit")); +# 144| +# 145|-> static cl::opt RecurStackSizeThreshold( +# 146| "recursive-inline-max-stacksize", cl::Hidden, +# 147| cl::init(InlineConstants::TotalAllocaSizeRecursiveCaller), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:151: constructor_uses_global_object: The constructor of global object "OptComputeFullInlineCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptComputeFullInlineCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 149| "size that exceeds the specified limit")); +# 150| +# 151|-> static cl::opt OptComputeFullInlineCost( +# 152| "inline-cost-full", cl::Hidden, +# 153| cl::desc("Compute the full inline cost of a call site even when the cost " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:156: constructor_uses_global_object: The constructor of global object "InlineCallerSupersetNoBuiltin" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineCallerSupersetNoBuiltin" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 154| "exceeds the threshold.")); +# 155| +# 156|-> static cl::opt InlineCallerSupersetNoBuiltin( +# 157| "inline-caller-superset-nobuiltin", cl::Hidden, cl::init(true), +# 158| cl::desc("Allow inlining when caller has a superset of callee's nobuiltin " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineCost.cpp:161: constructor_uses_global_object: The constructor of global object "DisableGEPConstOperand" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableGEPConstOperand" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 159| "attributes.")); +# 160| +# 161|-> static cl::opt DisableGEPConstOperand( +# 162| "disable-gep-const-evaluation", cl::Hidden, cl::init(false), +# 163| cl::desc("Disables evaluation of GetElementPtr with constant operands")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineOrder.cpp:27: constructor_uses_global_object: The constructor of global object "UseInlinePriority" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseInlinePriority" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| enum class InlinePriorityMode : int { Size, Cost, CostBenefit, ML }; +# 26| +# 27|-> static cl::opt UseInlinePriority( +# 28| "inline-priority-mode", cl::init(InlinePriorityMode::Size), cl::Hidden, +# 29| cl::desc("Choose the priority mode to use in module inline"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InlineOrder.cpp:38: constructor_uses_global_object: The constructor of global object "ModuleInlinerTopPriorityThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ModuleInlinerTopPriorityThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| clEnumValN(InlinePriorityMode::ML, "ml", "Use ML."))); +# 37| +# 38|-> static cl::opt ModuleInlinerTopPriorityThreshold( +# 39| "moudle-inliner-top-priority-threshold", cl::Hidden, cl::init(0), +# 40| cl::desc("The cost threshold for call sites that get inlined without the " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/InteractiveModelRunner.cpp:21: constructor_uses_global_object: The constructor of global object "DebugReply" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugReply" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 19| using namespace llvm; +# 20| +# 21|-> static cl::opt DebugReply( +# 22| "interactive-model-runner-echo-reply", cl::init(false), cl::Hidden, +# 23| cl::desc("The InteractiveModelRunner will echo back to stderr " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/LazyCallGraph.cpp:1005: var_decl: Declaring variable "DeletedRefSCCs". +llvm-17.0.6.src/lib/Analysis/LazyCallGraph.cpp:1134: uninit_use: Using uninitialized value "DeletedRefSCCs". Field "DeletedRefSCCs.InlineElts" is uninitialized. +# 1132| // SCCs are no longer in an interesting state (they are totally empty) but +# 1133| // the pointers will remain stable for the life of the graph itself. +# 1134|-> return DeletedRefSCCs; +# 1135| } +# 1136| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/LazyCallGraph.cpp:1158: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/Analysis/LazyCallGraph.cpp:1186: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1184| if (llvm::all_of(TargetNs, +# 1185| [&](Node *TargetN) { return &SourceN == TargetN; })) +# 1186|-> return Result; +# 1187| +# 1188| // If all targets are in the same SCC as the source, because no call edges + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/LazyCallGraph.cpp:1158: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/Analysis/LazyCallGraph.cpp:1194: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1192| return G->lookupSCC(*TargetN) == &SourceC; +# 1193| })) +# 1194|-> return Result; +# 1195| +# 1196| // We build somewhat synthetic new RefSCCs by providing a postorder mapping + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/LazyCallGraph.cpp:1158: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/Analysis/LazyCallGraph.cpp:1319: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1317| N->LowLink = -1; +# 1318| // Return the empty result immediately. +# 1319|-> return Result; +# 1320| } +# 1321| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/LazyValueInfo.cpp:672: var_decl: Declaring variable "NonNullPointers". +llvm-17.0.6.src/lib/Analysis/LazyValueInfo.cpp:675: uninit_use: Using uninitialized value "NonNullPointers". Field "NonNullPointers.TheMap.NumEntries" is uninitialized. +# 673| for (Instruction &I : *BB) +# 674| AddNonNullPointersByInstruction(&I, NonNullPointers); +# 675|-> return NonNullPointers; +# 676| }); +# 677| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/Loads.cpp:448: constructor_uses_global_object: The constructor of global object "llvm::DefMaxInstsToScan" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DefMaxInstsToScan" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 446| /// without documented explanation. +# 447| cl::opt +# 448|-> llvm::DefMaxInstsToScan("available-load-scan-limit", cl::init(6), cl::Hidden, +# 449| cl::desc("Use this to specify the default maximum number of instructions " +# 450| "to scan backward from a given instruction, when searching for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:76: constructor_uses_global_object: The constructor of global object "VectorizationFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VectorizationFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| +# 75| static cl::opt +# 76|-> VectorizationFactor("force-vector-width", cl::Hidden, +# 77| cl::desc("Sets the SIMD width. Zero is autoselect."), +# 78| cl::location(VectorizerParams::VectorizationFactor)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:82: constructor_uses_global_object: The constructor of global object "VectorizationInterleave" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VectorizationInterleave" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| +# 81| static cl::opt +# 82|-> VectorizationInterleave("force-vector-interleave", cl::Hidden, +# 83| cl::desc("Sets the vectorization interleave count. " +# 84| "Zero is autoselect."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:89: constructor_uses_global_object: The constructor of global object "RuntimeMemoryCheckThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RuntimeMemoryCheckThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| unsigned VectorizerParams::VectorizationInterleave; +# 88| +# 89|-> static cl::opt RuntimeMemoryCheckThreshold( +# 90| "runtime-memory-check-threshold", cl::Hidden, +# 91| cl::desc("When performing memory disambiguation checks at runtime do not " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:97: constructor_uses_global_object: The constructor of global object "MemoryCheckMergeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemoryCheckMergeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| +# 96| /// The maximum iterations used to merge memory checks +# 97|-> static cl::opt MemoryCheckMergeThreshold( +# 98| "memory-check-merge-threshold", cl::Hidden, +# 99| cl::desc("Maximum number of comparisons done when trying to merge " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:108: constructor_uses_global_object: The constructor of global object "MaxDependences" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxDependences" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| /// We collect dependences up to this threshold. +# 107| static cl::opt +# 108|-> MaxDependences("max-dependences", cl::Hidden, +# 109| cl::desc("Maximum number of dependences collected by " +# 110| "loop-access analysis (default = 100)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:124: constructor_uses_global_object: The constructor of global object "EnableMemAccessVersioning" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemAccessVersioning" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| /// } else +# 123| /// ... +# 124|-> static cl::opt EnableMemAccessVersioning( +# 125| "enable-mem-access-versioning", cl::init(true), cl::Hidden, +# 126| cl::desc("Enable symbolic stride memory access versioning")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:130: constructor_uses_global_object: The constructor of global object "EnableForwardingConflictDetection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableForwardingConflictDetection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| /// Enable store-to-load forwarding conflict detection. This option can +# 129| /// be disabled for correctness testing. +# 130|-> static cl::opt EnableForwardingConflictDetection( +# 131| "store-to-load-forwarding-conflict-detection", cl::Hidden, +# 132| cl::desc("Enable conflict detection in loop-access analysis"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:135: constructor_uses_global_object: The constructor of global object "MaxForkedSCEVDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxForkedSCEVDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::init(true)); +# 134| +# 135|-> static cl::opt MaxForkedSCEVDepth( +# 136| "max-forked-scev-depth", cl::Hidden, +# 137| cl::desc("Maximum recursion depth when finding forked SCEVs (default = 5)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopAccessAnalysis.cpp:140: constructor_uses_global_object: The constructor of global object "SpeculateUnitStride" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SpeculateUnitStride" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| cl::init(5)); +# 139| +# 140|-> static cl::opt SpeculateUnitStride( +# 141| "laa-speculate-unit-stride", cl::Hidden, +# 142| cl::desc("Speculate that non-constant strides are unit in LAA"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopCacheAnalysis.cpp:45: constructor_uses_global_object: The constructor of global object "DefaultTripCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultTripCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| #define DEBUG_TYPE "loop-cache-cost" +# 44| +# 45|-> static cl::opt DefaultTripCount( +# 46| "default-trip-count", cl::init(100), cl::Hidden, +# 47| cl::desc("Use this to specify the default trip count of a loop")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopCacheAnalysis.cpp:52: constructor_uses_global_object: The constructor of global object "TemporalReuseThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TemporalReuseThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| // reuse if they access either the same memory location, or a memory location +# 51| // with distance smaller than a configurable threshold. +# 52|-> static cl::opt TemporalReuseThreshold( +# 53| "temporal-reuse-threshold", cl::init(2), cl::Hidden, +# 54| cl::desc("Use this to specify the max. distance between array elements " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/LoopInfo.cpp:53: constructor_uses_global_object: The constructor of global object "VerifyLoopInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyLoopInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| #endif +# 52| static cl::opt +# 53|-> VerifyLoopInfoX("verify-loop-info", cl::location(VerifyLoopInfo), +# 54| cl::Hidden, cl::desc("Verify loop info (time consuming)")); +# 55| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/LoopNestAnalysis.cpp:183: var_decl: Declaring variable "Instr". +llvm-17.0.6.src/lib/Analysis/LoopNestAnalysis.cpp:188: uninit_use: Using uninitialized value "Instr". Field "Instr.InlineElts" is uninitialized. +# 186| LLVM_DEBUG(dbgs() << "The loop Nest is Perfect, returning empty " +# 187| "instruction vector. \n";); +# 188|-> return Instr; +# 189| +# 190| case InvalidLoopStructure: + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/LoopNestAnalysis.cpp:183: var_decl: Declaring variable "Instr". +llvm-17.0.6.src/lib/Analysis/LoopNestAnalysis.cpp:193: uninit_use: Using uninitialized value "Instr". Field "Instr.InlineElts" is uninitialized. +# 191| LLVM_DEBUG(dbgs() << "Not perfectly nested: invalid loop structure. " +# 192| "Instruction vector is empty.\n";); +# 193|-> return Instr; +# 194| +# 195| case OuterLoopLowerBoundUnknown: + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/LoopNestAnalysis.cpp:183: var_decl: Declaring variable "Instr". +llvm-17.0.6.src/lib/Analysis/LoopNestAnalysis.cpp:198: uninit_use: Using uninitialized value "Instr". Field "Instr.InlineElts" is uninitialized. +# 196| LLVM_DEBUG(dbgs() << "Cannot compute loop bounds of OuterLoop: " +# 197| << OuterLoop << "\nInstruction vector is empty.\n";); +# 198|-> return Instr; +# 199| +# 200| case ImperfectLoopNest: + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/LoopNestAnalysis.cpp:242: var_decl: Declaring variable "LV". +llvm-17.0.6.src/lib/Analysis/LoopNestAnalysis.cpp:258: uninit_use: Using uninitialized value "LV". Field "LV.InlineElts" is uninitialized. +# 256| } +# 257| +# 258|-> return LV; +# 259| } +# 260| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:35: constructor_uses_global_object: The constructor of global object "InteractiveChannelBaseName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveChannelBaseName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| using namespace llvm; +# 34| +# 35|-> static cl::opt InteractiveChannelBaseName( +# 36| "inliner-interactive-channel-base", cl::Hidden, +# 37| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:46: constructor_uses_global_object: The constructor of global object "InteractiveIncludeDefault" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveIncludeDefault" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| .str(); +# 45| static cl::opt +# 46|-> InteractiveIncludeDefault("inliner-interactive-include-default", cl::Hidden, +# 47| cl::desc(InclDefaultMsg)); +# 48| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:82: constructor_uses_global_object: The constructor of global object "SizeIncreaseThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SizeIncreaseThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| #define DEBUG_TYPE "inline-ml" +# 81| +# 82|-> static cl::opt SizeIncreaseThreshold( +# 83| "ml-advisor-size-increase-threshold", cl::Hidden, +# 84| cl::desc("Maximum factor by which expected native size may increase before " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MLInlineAdvisor.cpp:88: constructor_uses_global_object: The constructor of global object "KeepFPICache" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "KeepFPICache" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| cl::init(2.0)); +# 87| +# 88|-> static cl::opt KeepFPICache( +# 89| "ml-advisor-keep-fpi-cache", cl::Hidden, +# 90| cl::desc( + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).slt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: return_local_addr_alias: Returning pointer "" which points to local variable "LHS". +# 978| switch (Options.EvalMode) { +# 979| case ObjectSizeOpts::Mode::Min: +# 980|-> return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982| return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).slt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:980: return_local_addr_alias: Returning pointer "" which points to local variable "RHS". +# 978| switch (Options.EvalMode) { +# 979| case ObjectSizeOpts::Mode::Min: +# 980|-> return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982| return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).sgt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: return_local_addr_alias: Returning pointer "" which points to local variable "LHS". +# 980| return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982|-> return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 983| case ObjectSizeOpts::Mode::ExactSizeFromOffset: +# 984| return (getSizeWithOverflow(LHS).eq(getSizeWithOverflow(RHS))) ? LHS + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: identity_transfer: Passing "llvm::APInt(getSizeWithOverflow(LHS)).sgt(llvm::APInt(getSizeWithOverflow(RHS))) ? LHS : RHS" as argument 1 to constructor for class "pair", which sets "" to that argument. +llvm-17.0.6.src/lib/Analysis/MemoryBuiltins.cpp:982: return_local_addr_alias: Returning pointer "" which points to local variable "RHS". +# 980| return (getSizeWithOverflow(LHS).slt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 981| case ObjectSizeOpts::Mode::Max: +# 982|-> return (getSizeWithOverflow(LHS).sgt(getSizeWithOverflow(RHS))) ? LHS : RHS; +# 983| case ObjectSizeOpts::Mode::ExactSizeFromOffset: +# 984| return (getSizeWithOverflow(LHS).eq(getSizeWithOverflow(RHS))) ? LHS + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryDependenceAnalysis.cpp:73: constructor_uses_global_object: The constructor of global object "BlockScanLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockScanLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| // Limit for the number of instructions to scan in a block. +# 72| +# 73|-> static cl::opt BlockScanLimit( +# 74| "memdep-block-scan-limit", cl::Hidden, cl::init(100), +# 75| cl::desc("The number of instructions to scan in a block in memory " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryDependenceAnalysis.cpp:79: constructor_uses_global_object: The constructor of global object "BlockNumberLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockNumberLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> BlockNumberLimit("memdep-block-number-limit", cl::Hidden, cl::init(200), +# 80| cl::desc("The number of blocks to scan during memory " +# 81| "dependency analysis (default = 200)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryProfileInfo.cpp:23: constructor_uses_global_object: The constructor of global object "MemProfLifetimeAccessDensityColdThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemProfLifetimeAccessDensityColdThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| // Upper bound on lifetime access density (accesses per byte per lifetime sec) +# 22| // for marking an allocation cold. +# 23|-> cl::opt MemProfLifetimeAccessDensityColdThreshold( +# 24| "memprof-lifetime-access-density-cold-threshold", cl::init(0.05), +# 25| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryProfileInfo.cpp:31: constructor_uses_global_object: The constructor of global object "MemProfAveLifetimeColdThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemProfAveLifetimeColdThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| // Lower bound on lifetime to mark an allocation cold (in addition to accesses +# 30| // per byte per sec above). This is to avoid pessimizing short lived objects. +# 31|-> cl::opt MemProfAveLifetimeColdThreshold( +# 32| "memprof-ave-lifetime-cold-threshold", cl::init(200), cl::Hidden, +# 33| cl::desc("The average lifetime (s) for an allocation to be considered " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemoryProfileInfo.cpp:38: constructor_uses_global_object: The constructor of global object "MemProfMinAveLifetimeAccessDensityHotThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemProfMinAveLifetimeAccessDensityHotThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| // Lower bound on average lifetime accesses density (total life time access +# 37| // density / alloc count) for marking an allocation hot. +# 38|-> cl::opt MemProfMinAveLifetimeAccessDensityHotThreshold( +# 39| "memprof-min-ave-lifetime-access-density-hot-threshold", cl::init(1000), +# 40| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemorySSA.cpp:63: constructor_uses_global_object: The constructor of global object "DotCFGMSSA[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotCFGMSSA[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| +# 62| static cl::opt +# 63|-> DotCFGMSSA("dot-cfg-mssa", +# 64| cl::value_desc("file name for generated dot file"), +# 65| cl::desc("file name for generated dot file"), cl::init("")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemorySSA.cpp:74: constructor_uses_global_object: The constructor of global object "MaxCheckLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxCheckLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| true) +# 73| +# 74|-> static cl::opt MaxCheckLimit( +# 75| "memssa-check-limit", cl::Hidden, cl::init(100), +# 76| cl::desc("The maximum number of stores/phis MemorySSA" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/MemorySSA.cpp:87: constructor_uses_global_object: The constructor of global object "VerifyMemorySSAX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyMemorySSAX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| +# 86| static cl::opt +# 87|-> VerifyMemorySSAX("verify-memoryssa", cl::location(VerifyMemorySSA), +# 88| cl::Hidden, cl::desc("Enable verification of MemorySSA.")); +# 89| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Analysis/MemorySSAUpdater.cpp:289: tainted_data_return: Called function "MP->getBasicBlockIndex(BB)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Analysis/MemorySSAUpdater.cpp:289: assign: Assigning: "i" = "MP->getBasicBlockIndex(BB)". +llvm-17.0.6.src/lib/Analysis/MemorySSAUpdater.cpp:296: overflow_sink: "i", which might have overflowed, is passed to "MP->setIncomingValue(i, NewDef)". +# 294| if (BlockBB != BB) +# 295| break; +# 296|-> MP->setIncomingValue(i, NewDef); +# 297| ++i; +# 298| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ModuleSummaryAnalysis.cpp:71: constructor_uses_global_object: The constructor of global object "FSEC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSEC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| } // namespace llvm +# 70| +# 71|-> static cl::opt FSEC( +# 72| "force-summary-edges-cold", cl::Hidden, cl::location(ForceSummaryEdgesCold), +# 73| cl::desc("Force all edges in the function summary to cold"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ModuleSummaryAnalysis.cpp:79: constructor_uses_global_object: The constructor of global object "ModuleSummaryDotFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ModuleSummaryDotFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| clEnumValN(FunctionSummary::FSHT_All, "all", "All edges."))); +# 78| +# 79|-> static cl::opt ModuleSummaryDotFile( +# 80| "module-summary-dot-file", cl::Hidden, cl::value_desc("filename"), +# 81| cl::desc("File to emit dot graph of new summary into")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ObjCARCAnalysisUtils.cpp:24: constructor_uses_global_object: The constructor of global object "EnableARCOptimizations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableARCOptimizations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| /// A handy option to enable/disable all ARC Optimizations. +# 23| bool llvm::objcarc::EnableARCOpts; +# 24|-> static cl::opt EnableARCOptimizations( +# 25| "enable-objc-arc-opts", cl::desc("enable/disable all ARC Optimizations"), +# 26| cl::location(EnableARCOpts), cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/PHITransAddr.cpp:24: constructor_uses_global_object: The constructor of global object "EnableAddPhiTranslation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAddPhiTranslation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| using namespace llvm; +# 23| +# 24|-> static cl::opt EnableAddPhiTranslation( +# 25| "gvn-add-phi-translation", cl::init(false), cl::Hidden, +# 26| cl::desc("Enable phi-translation of add instructions")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ProfileSummaryInfo.cpp:36: constructor_uses_global_object: The constructor of global object "PartialProfile" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PartialProfile" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| } // namespace llvm +# 35| +# 36|-> static cl::opt PartialProfile( +# 37| "partial-profile", cl::Hidden, cl::init(false), +# 38| cl::desc("Specify the current profile is used as a partial profile.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ProfileSummaryInfo.cpp:40: constructor_uses_global_object: The constructor of global object "ScalePartialSampleProfileWorkingSetSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ScalePartialSampleProfileWorkingSetSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| cl::desc("Specify the current profile is used as a partial profile.")); +# 39| +# 40|-> cl::opt ScalePartialSampleProfileWorkingSetSize( +# 41| "scale-partial-sample-profile-working-set-size", cl::Hidden, cl::init(true), +# 42| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ProfileSummaryInfo.cpp:47: constructor_uses_global_object: The constructor of global object "PartialSampleProfileWorkingSetSizeScaleFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PartialSampleProfileWorkingSetSizeScaleFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| "being compiled.")); +# 46| +# 47|-> static cl::opt PartialSampleProfileWorkingSetSizeScaleFactor( +# 48| "partial-sample-profile-working-set-size-scale-factor", cl::Hidden, +# 49| cl::init(0.008), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/RegionInfo.cpp:42: constructor_uses_global_object: The constructor of global object "VerifyRegionInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyRegionInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> VerifyRegionInfoX( +# 43| "verify-region-info", +# 44| cl::location(RegionInfoBase>::VerifyRegionInfo), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/RegionInfo.cpp:47: constructor_uses_global_object: The constructor of global object "printStyleX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "printStyleX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| cl::desc("Verify region info (time consuming)")); +# 46| +# 47|-> static cl::opt printStyleX("print-region-style", +# 48| cl::location(RegionInfo::printStyle), +# 49| cl::Hidden, + +Error: USE_AFTER_FREE (CWE-416): +llvm-17.0.6.src/lib/Analysis/RegionPass.cpp:264: freed_arg: "schedulePass" frees "RGPM". +llvm-17.0.6.src/lib/Analysis/RegionPass.cpp:267: deref_arg: Calling "push" dereferences freed pointer "RGPM". +# 265| +# 266| // [4] Push new manager into PMS +# 267|-> PMS.push(RGPM); +# 268| } +# 269| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/RegionPrinter.cpp:28: constructor_uses_global_object: The constructor of global object "onlySimpleRegions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "onlySimpleRegions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| /// onlySimpleRegion - Show only the simple regions in the RegionViewer. +# 27| static cl::opt +# 28|-> onlySimpleRegions("only-simple-regions", +# 29| cl::desc("Show only simple regions in the graphviz viewer"), +# 30| cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:153: constructor_uses_global_object: The constructor of global object "MaxBruteForceIterations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxBruteForceIterations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| +# 152| static cl::opt +# 153|-> MaxBruteForceIterations("scalar-evolution-max-iterations", cl::ReallyHidden, +# 154| cl::desc("Maximum number of iterations SCEV will " +# 155| "symbolically execute a constant " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:159: constructor_uses_global_object: The constructor of global object "VerifySCEVOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifySCEVOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 157| cl::init(100)); +# 158| +# 159|-> static cl::opt VerifySCEVOpt( +# 160| "verify-scev", cl::Hidden, cl::location(VerifySCEV), +# 161| cl::desc("Verify ScalarEvolution's backedge taken counts (slow)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:162: constructor_uses_global_object: The constructor of global object "VerifySCEVStrict" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifySCEVStrict" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 160| "verify-scev", cl::Hidden, cl::location(VerifySCEV), +# 161| cl::desc("Verify ScalarEvolution's backedge taken counts (slow)")); +# 162|-> static cl::opt VerifySCEVStrict( +# 163| "verify-scev-strict", cl::Hidden, +# 164| cl::desc("Enable stricter verification with -verify-scev is passed")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:166: constructor_uses_global_object: The constructor of global object "VerifyIR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyIR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 164| cl::desc("Enable stricter verification with -verify-scev is passed")); +# 165| +# 166|-> static cl::opt VerifyIR( +# 167| "scev-verify-ir", cl::Hidden, +# 168| cl::desc("Verify IR correctness when making sensitive SCEV queries (slow)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:171: constructor_uses_global_object: The constructor of global object "MulOpsInlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MulOpsInlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 169| cl::init(false)); +# 170| +# 171|-> static cl::opt MulOpsInlineThreshold( +# 172| "scev-mulops-inline-threshold", cl::Hidden, +# 173| cl::desc("Threshold for inlining multiplication operands into a SCEV"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:176: constructor_uses_global_object: The constructor of global object "AddOpsInlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddOpsInlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 174| cl::init(32)); +# 175| +# 176|-> static cl::opt AddOpsInlineThreshold( +# 177| "scev-addops-inline-threshold", cl::Hidden, +# 178| cl::desc("Threshold for inlining addition operands into a SCEV"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:181: constructor_uses_global_object: The constructor of global object "MaxSCEVCompareDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxSCEVCompareDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 179| cl::init(500)); +# 180| +# 181|-> static cl::opt MaxSCEVCompareDepth( +# 182| "scalar-evolution-max-scev-compare-depth", cl::Hidden, +# 183| cl::desc("Maximum depth of recursive SCEV complexity comparisons"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:186: constructor_uses_global_object: The constructor of global object "MaxSCEVOperationsImplicationDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxSCEVOperationsImplicationDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 184| cl::init(32)); +# 185| +# 186|-> static cl::opt MaxSCEVOperationsImplicationDepth( +# 187| "scalar-evolution-max-scev-operations-implication-depth", cl::Hidden, +# 188| cl::desc("Maximum depth of recursive SCEV operations implication analysis"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:191: constructor_uses_global_object: The constructor of global object "MaxValueCompareDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxValueCompareDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 189| cl::init(2)); +# 190| +# 191|-> static cl::opt MaxValueCompareDepth( +# 192| "scalar-evolution-max-value-compare-depth", cl::Hidden, +# 193| cl::desc("Maximum depth of recursive value complexity comparisons"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:197: constructor_uses_global_object: The constructor of global object "MaxArithDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxArithDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 195| +# 196| static cl::opt +# 197|-> MaxArithDepth("scalar-evolution-max-arith-depth", cl::Hidden, +# 198| cl::desc("Maximum depth of recursive arithmetics"), +# 199| cl::init(32)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:201: constructor_uses_global_object: The constructor of global object "MaxConstantEvolvingDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxConstantEvolvingDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 199| cl::init(32)); +# 200| +# 201|-> static cl::opt MaxConstantEvolvingDepth( +# 202| "scalar-evolution-max-constant-evolving-depth", cl::Hidden, +# 203| cl::desc("Maximum depth of recursive constant evolving"), cl::init(32)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:206: constructor_uses_global_object: The constructor of global object "MaxCastDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxCastDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 204| +# 205| static cl::opt +# 206|-> MaxCastDepth("scalar-evolution-max-cast-depth", cl::Hidden, +# 207| cl::desc("Maximum depth of recursive SExt/ZExt/Trunc"), +# 208| cl::init(8)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:211: constructor_uses_global_object: The constructor of global object "MaxAddRecSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxAddRecSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 209| +# 210| static cl::opt +# 211|-> MaxAddRecSize("scalar-evolution-max-add-rec-size", cl::Hidden, +# 212| cl::desc("Max coefficients in AddRec during evolving"), +# 213| cl::init(8)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:216: constructor_uses_global_object: The constructor of global object "HugeExprThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeExprThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 214| +# 215| static cl::opt +# 216|-> HugeExprThreshold("scalar-evolution-huge-expr-threshold", cl::Hidden, +# 217| cl::desc("Size of the expression which is considered huge"), +# 218| cl::init(4096)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:220: constructor_uses_global_object: The constructor of global object "RangeIterThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RangeIterThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 218| cl::init(4096)); +# 219| +# 220|-> static cl::opt RangeIterThreshold( +# 221| "scev-range-iter-threshold", cl::Hidden, +# 222| cl::desc("Threshold for switching to iteratively computing SCEV ranges"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:226: constructor_uses_global_object: The constructor of global object "ClassifyExpressions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClassifyExpressions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 224| +# 225| static cl::opt +# 226|-> ClassifyExpressions("scalar-evolution-classify-expressions", +# 227| cl::Hidden, cl::init(true), +# 228| cl::desc("When printing analysis, include information on every instruction")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:230: constructor_uses_global_object: The constructor of global object "UseExpensiveRangeSharpening" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseExpensiveRangeSharpening" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 228| cl::desc("When printing analysis, include information on every instruction")); +# 229| +# 230|-> static cl::opt UseExpensiveRangeSharpening( +# 231| "scalar-evolution-use-expensive-range-sharpening", cl::Hidden, +# 232| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:236: constructor_uses_global_object: The constructor of global object "MaxPhiSCCAnalysisSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxPhiSCCAnalysisSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 234| "be costly in terms of compile time")); +# 235| +# 236|-> static cl::opt MaxPhiSCCAnalysisSize( +# 237| "scalar-evolution-max-scc-analysis-depth", cl::Hidden, +# 238| cl::desc("Maximum amount of nodes to process while searching SCEVUnknown " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:243: constructor_uses_global_object: The constructor of global object "EnableFiniteLoopControl" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFiniteLoopControl" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 241| +# 242| static cl::opt +# 243|-> EnableFiniteLoopControl("scalar-evolution-finite-loop", cl::Hidden, +# 244| cl::desc("Handle <= and >= in finite loops"), +# 245| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:247: constructor_uses_global_object: The constructor of global object "UseContextForNoWrapFlagInference" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseContextForNoWrapFlagInference" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 245| cl::init(true)); +# 246| +# 247|-> static cl::opt UseContextForNoWrapFlagInference( +# 248| "scalar-evolution-use-context-for-no-wrap-flag-strenghening", cl::Hidden, +# 249| cl::desc("Infer nuw/nsw flags using context where suitable"), + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:3142: underflow: The decrement operator on the unsigned variable "Idx" might result in an underflow. +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:3224: overflow_sink: "Idx", which might have underflowed, is passed to "Ops[Idx]". +# 3222| +# 3223| // Skip over the add expression until we get to a multiply. +# 3224|-> while (Idx < Ops.size() && Ops[Idx]->getSCEVType() < scMulExpr) +# 3225| ++Idx; +# 3226| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:3882: underflow: The decrement operator on the unsigned variable "Idx" might result in an underflow. +llvm-17.0.6.src/lib/Analysis/ScalarEvolution.cpp:3893: overflow_sink: "Idx", which might have underflowed, is passed to "Ops[Idx]". +# 3891| +# 3892| // Find the first operation of the same kind +# 3893|-> while (Idx < Ops.size() && Ops[Idx]->getSCEVType() < Kind) +# 3894| ++Idx; +# 3895| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ScopedNoAliasAA.cpp:51: constructor_uses_global_object: The constructor of global object "EnableScopedNoAlias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableScopedNoAlias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| // can also be achieved by stripping the associated metadata tags from IR, but +# 50| // this option is sometimes more convenient. +# 51|-> static cl::opt EnableScopedNoAlias("enable-scoped-noalias", +# 52| cl::init(true), cl::Hidden); +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/StackSafetyAnalysis.cpp:62: constructor_uses_global_object: The constructor of global object "StackSafetyMaxIterations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSafetyMaxIterations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| +# 62|-> static cl::opt StackSafetyMaxIterations("stack-safety-max-iterations", +# 63| cl::init(20), cl::Hidden); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/StackSafetyAnalysis.cpp:65: constructor_uses_global_object: The constructor of global object "StackSafetyPrint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSafetyPrint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::init(20), cl::Hidden); +# 64| +# 65|-> static cl::opt StackSafetyPrint("stack-safety-print", cl::init(false), +# 66| cl::Hidden); +# 67| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/StackSafetyAnalysis.cpp:68: constructor_uses_global_object: The constructor of global object "StackSafetyRun" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackSafetyRun" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| cl::Hidden); +# 67| +# 68|-> static cl::opt StackSafetyRun("stack-safety-run", cl::init(false), +# 69| cl::Hidden); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetLibraryInfo.cpp:20: constructor_uses_global_object: The constructor of global object "ClVectorLibrary" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClVectorLibrary" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 18| using namespace llvm; +# 19| +# 20|-> static cl::opt ClVectorLibrary( +# 21| "vector-library", cl::Hidden, cl::desc("Vector functions library"), +# 22| cl::init(TargetLibraryInfoImpl::NoLibrary), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetTransformInfo.cpp:31: constructor_uses_global_object: The constructor of global object "EnableReduxCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableReduxCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| #define DEBUG_TYPE "tti" +# 30| +# 31|-> static cl::opt EnableReduxCost("costmodel-reduxcost", cl::init(false), +# 32| cl::Hidden, +# 33| cl::desc("Recognize reduction patterns.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetTransformInfo.cpp:35: constructor_uses_global_object: The constructor of global object "CacheLineSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CacheLineSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| cl::desc("Recognize reduction patterns.")); +# 34| +# 35|-> static cl::opt CacheLineSize( +# 36| "cache-line-size", cl::init(0), cl::Hidden, +# 37| cl::desc("Use this to override the target cache line size when " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TargetTransformInfo.cpp:40: constructor_uses_global_object: The constructor of global object "PredictableBranchThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PredictableBranchThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| "specified by the user.")); +# 39| +# 40|-> static cl::opt PredictableBranchThreshold( +# 41| "predictable-branch-threshold", cl::init(99), cl::Hidden, +# 42| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TrainingLogger.cpp:32: constructor_uses_global_object: The constructor of global object "UseSimpleLogger" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseSimpleLogger" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| // FIXME(mtrofin): remove the flag altogether +# 31| static cl::opt +# 32|-> UseSimpleLogger("tfutils-use-simplelogger", cl::init(true), cl::Hidden, +# 33| cl::desc("Output simple (non-protobuf) log.")); +# 34| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/TypeBasedAliasAnalysis.cpp:130: constructor_uses_global_object: The constructor of global object "EnableTBAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTBAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| // achieved by stripping the !tbaa tags from IR, but this option is sometimes +# 129| // more convenient. +# 130|-> static cl::opt EnableTBAA("enable-tbaa", cl::init(true), cl::Hidden); +# 131| +# 132| namespace { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/ValueTracking.cpp:85: constructor_uses_global_object: The constructor of global object "DomConditionsMaxUses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DomConditionsMaxUses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| // Controls the number of uses of the value searched for possible +# 84| // dominating comparisons. +# 85|-> static cl::opt DomConditionsMaxUses("dom-conditions-max-uses", +# 86| cl::Hidden, cl::init(20)); +# 87| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:35: constructor_uses_global_object: The constructor of global object "MaxInterleaveGroupFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxInterleaveGroupFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| /// Maximum factor for an interleaved memory access. +# 35|-> static cl::opt MaxInterleaveGroupFactor( +# 36| "max-interleave-group-factor", cl::Hidden, +# 37| cl::desc("Maximum factor for an interleaved access group (default = 8)"), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:846: var_decl: Declaring variable "MaskVec". +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:851: uninit_use: Using uninitialized value "MaskVec". Field "MaskVec.InlineElts" is uninitialized. +# 849| MaskVec.push_back(i); +# 850| +# 851|-> return MaskVec; +# 852| } +# 853| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:856: var_decl: Declaring variable "Mask". +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:861: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 859| Mask.push_back(j * VF + i); +# 860| +# 861|-> return Mask; +# 862| } +# 863| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:866: var_decl: Declaring variable "Mask". +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:870: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 868| Mask.push_back(Start + i * Stride); +# 869| +# 870|-> return Mask; +# 871| } +# 872| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:876: var_decl: Declaring variable "Mask". +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:883: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 881| Mask.push_back(-1); +# 882| +# 883|-> return Mask; +# 884| } +# 885| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:894: var_decl: Declaring variable "UnaryMask". +llvm-17.0.6.src/lib/Analysis/VectorUtils.cpp:900: uninit_use: Using uninitialized value "UnaryMask". Field "UnaryMask.InlineElts" is uninitialized. +# 898| UnaryMask.push_back(UnaryElt); +# 899| } +# 900|-> return UnaryMask; +# 901| } +# 902| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1011: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, this->HexIntToVal(this->TokStart + 2, this->CurPtr), false))". +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1011: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1009| // hexadecimal number for when exponential notation is not precise enough. +# 1010| // Half, BFloat, Float, and double only. +# 1011|-> APFloatVal = APFloat(APFloat::IEEEdouble(), +# 1012| APInt(64, HexIntToVal(TokStart + 2, CurPtr))); +# 1013| return lltok::APFloat; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1022: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), llvm::APInt(80U, llvm::ArrayRef(Pair)))". +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1022: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1020| // F80HexFPConstant - x87 long double in hexadecimal format (10 bytes) +# 1021| FP80HexToIntPair(TokStart+3, CurPtr, Pair); +# 1022|-> APFloatVal = APFloat(APFloat::x87DoubleExtended(), APInt(80, Pair)); +# 1023| return lltok::APFloat; +# 1024| case 'L': + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1027: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), llvm::APInt(128U, llvm::ArrayRef(Pair)))". +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1027: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1025| // F128HexFPConstant - IEEE 128-bit in hexadecimal format (16 bytes) +# 1026| HexToIntPair(TokStart+3, CurPtr, Pair); +# 1027|-> APFloatVal = APFloat(APFloat::IEEEquad(), APInt(128, Pair)); +# 1028| return lltok::APFloat; +# 1029| case 'M': + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1032: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, llvm::ArrayRef(Pair)))". +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1032: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1030| // PPC128HexFPConstant - PowerPC 128-bit in hexadecimal format (16 bytes) +# 1031| HexToIntPair(TokStart+3, CurPtr, Pair); +# 1032|-> APFloatVal = APFloat(APFloat::PPCDoubleDouble(), APInt(128, Pair)); +# 1033| return lltok::APFloat; +# 1034| case 'H': + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1035: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), llvm::APInt(16U, this->HexIntToVal(this->TokStart + 3, this->CurPtr), false))". +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1035: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1033| return lltok::APFloat; +# 1034| case 'H': +# 1035|-> APFloatVal = APFloat(APFloat::IEEEhalf(), +# 1036| APInt(16,HexIntToVal(TokStart+3, CurPtr))); +# 1037| return lltok::APFloat; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1040: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::BFloat(), llvm::APInt(16U, this->HexIntToVal(this->TokStart + 3, this->CurPtr), false))". +llvm-17.0.6.src/lib/AsmParser/LLLexer.cpp:1040: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1038| case 'R': +# 1039| // Brain floating point +# 1040|-> APFloatVal = APFloat(APFloat::BFloat(), +# 1041| APInt(16, HexIntToVal(TokStart + 3, CurPtr))); +# 1042| return lltok::APFloat; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:3651: var_decl: Declaring variable "Fn". +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:3659: uninit_use_in_call: Using uninitialized value "Fn.APFloatVal.U" when calling "~ValID". +# 3657| parseValID(Label, PFS) || +# 3658| parseToken(lltok::rparen, "expected ')' in block address expression")) +# 3659|-> return true; +# 3660| +# 3661| if (Fn.Kind != ValID::t_GlobalID && Fn.Kind != ValID::t_GlobalName) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:3651: var_decl: Declaring variable "Label". +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:3659: uninit_use_in_call: Using uninitialized value "Label.APFloatVal.U" when calling "~ValID". +# 3657| parseValID(Label, PFS) || +# 3658| parseToken(lltok::rparen, "expected ')' in block address expression")) +# 3659|-> return true; +# 3660| +# 3661| if (Fn.Kind != ValID::t_GlobalID && Fn.Kind != ValID::t_GlobalName) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:6736: var_decl: Declaring variable "CalleeID". +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:6752: uninit_use_in_call: Using uninitialized value "CalleeID.APFloatVal.U" when calling "~ValID". +# 6750| parseToken(lltok::kw_unwind, "expected 'unwind' in invoke") || +# 6751| parseTypeAndBasicBlock(UnwindBB, PFS)) +# 6752|-> return true; +# 6753| +# 6754| // If RetType is a non-function pointer type, then this is the short syntax + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:7033: var_decl: Declaring variable "CalleeID". +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:7047: uninit_use_in_call: Using uninitialized value "CalleeID.APFloatVal.U" when calling "~ValID". +# 7045| parseTypeAndBasicBlock(DefaultDest, PFS) || +# 7046| parseToken(lltok::lsquare, "expected '[' in callbr")) +# 7047|-> return true; +# 7048| +# 7049| // parse the destination list. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:7439: var_decl: Declaring variable "CalleeID". +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:7447: uninit_use_in_call: Using uninitialized value "CalleeID.APFloatVal.U" when calling "~ValID". +# 7445| parseToken(lltok::kw_call, +# 7446| "expected 'tail call', 'musttail call', or 'notail call'")) +# 7447|-> return true; +# 7448| +# 7449| FastMathFlags FMF = EatFastMathFlagsIfPresent(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:7439: var_decl: Declaring variable "CalleeID". +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:7459: uninit_use_in_call: Using uninitialized value "CalleeID.APFloatVal.U" when calling "~ValID". +# 7457| parseFnAttributeValuePairs(FnAttrs, FwdRefAttrGrps, false, BuiltinLoc) || +# 7458| parseOptionalOperandBundles(BundleList, PFS)) +# 7459|-> return true; +# 7460| +# 7461| // If RetType is a non-function pointer type, then this is the short syntax + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:8111: var_decl: Declaring variable "Label". +llvm-17.0.6.src/lib/AsmParser/LLParser.cpp:8118: uninit_use_in_call: Using uninitialized value "Label.APFloatVal.U" when calling "~ValID". +# 8116| parseToken(lltok::comma, "expected comma in uselistorder_bb directive") || +# 8117| parseUseListOrderIndexes(Indexes)) +# 8118|-> return true; +# 8119| +# 8120| // Check the function. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:32: temporary: Creating temporary of type "llvm::LLParser" in "llvm::LLParser(F.getBuffer(), SM, Err, M, Index, (M ? M->getContext() : OptContext.emplace()), Slots)". +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:32: uninit_use_in_call: Using uninitialized value ".Lex.APFloatVal.U" when calling "~LLParser". +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:32: uninit_use_in_call: Using uninitialized value ".OPLex.APFloatVal.U" when calling "~LLParser". +# 30| +# 31| std::optional OptContext; +# 32|-> return LLParser(F.getBuffer(), SM, Err, M, Index, +# 33| M ? M->getContext() : OptContext.emplace(), Slots) +# 34| .Run(UpgradeDebugInfo, DataLayoutCallback); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:153: temporary: Creating temporary of type "llvm::LLParser" in "llvm::LLParser(F.getBuffer(), SM, Err, NULL, Index, unusedContext, NULL)". +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:153: uninit_use_in_call: Using uninitialized value ".Lex.APFloatVal.U" when calling "~LLParser". +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:153: uninit_use_in_call: Using uninitialized value ".OPLex.APFloatVal.U" when calling "~LLParser". +# 151| // index, but we need to initialize it. +# 152| LLVMContext unusedContext; +# 153|-> return LLParser(F.getBuffer(), SM, Err, nullptr, &Index, unusedContext) +# 154| .Run(true, [](StringRef, StringRef) { return std::nullopt; }); +# 155| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:193: temporary: Creating temporary of type "llvm::LLParser" in "llvm::LLParser(Asm, SM, Err, const_cast(M), NULL, M->getContext(), NULL)". +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:193: uninit_use_in_call: Using uninitialized value ".Lex.APFloatVal.U" when calling "~LLParser". +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:193: uninit_use_in_call: Using uninitialized value ".OPLex.APFloatVal.U" when calling "~LLParser". +# 191| SM.AddNewSourceBuffer(std::move(Buf), SMLoc()); +# 192| Constant *C; +# 193|-> if (LLParser(Asm, SM, Err, const_cast(&M), nullptr, M.getContext()) +# 194| .parseStandaloneConstantValue(C, Slots)) +# 195| return nullptr; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:222: temporary: Creating temporary of type "llvm::LLParser" in "llvm::LLParser(Asm, SM, Err, const_cast(M), NULL, M->getContext(), NULL)". +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:222: uninit_use_in_call: Using uninitialized value ".Lex.APFloatVal.U" when calling "~LLParser". +llvm-17.0.6.src/lib/AsmParser/Parser.cpp:222: uninit_use_in_call: Using uninitialized value ".OPLex.APFloatVal.U" when calling "~LLParser". +# 220| SM.AddNewSourceBuffer(std::move(Buf), SMLoc()); +# 221| Type *Ty; +# 222|-> if (LLParser(Asm, SM, Err, const_cast(&M), nullptr, M.getContext()) +# 223| .parseTypeAtBeginning(Ty, Read, Slots)) +# 224| return nullptr; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/BinaryFormat/XCOFF.cpp:163: var_decl: Declaring variable "Res". +llvm-17.0.6.src/lib/BinaryFormat/XCOFF.cpp:184: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 182| // Pop the last space. +# 183| Res.pop_back(); +# 184|-> return Res; +# 185| } +# 186| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Bitcode/Reader/BitReader.cpp:86: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/lib/Bitcode/Reader/BitReader.cpp:86: leaked_storage: Failing to save or free storage allocated by "Owner.release()" leaks it. +# 84| // Release the buffer if we didn't take ownership of it since we never owned +# 85| // it anyway. +# 86|-> (void)Owner.release(); +# 87| +# 88| if (Error Err = ModuleOrErr.takeError()) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Bitcode/Reader/BitReader.cpp:112: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/lib/Bitcode/Reader/BitReader.cpp:112: leaked_storage: Ignoring storage allocated by "Owner.release()" leaks it. +# 110| ErrorOr> ModuleOrErr = expectedToErrorOrAndEmitErrors( +# 111| Ctx, getOwningLazyBitcodeModule(std::move(Owner), Ctx)); +# 112|-> Owner.release(); +# 113| +# 114| if (ModuleOrErr.getError()) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:93: constructor_uses_global_object: The constructor of global object "PrintSummaryGUIDs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintSummaryGUIDs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| using namespace llvm; +# 92| +# 93|-> static cl::opt PrintSummaryGUIDs( +# 94| "print-summary-global-ids", cl::init(false), cl::Hidden, +# 95| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:98: constructor_uses_global_object: The constructor of global object "ExpandConstantExprs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandConstantExprs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| "Print the global id for each value when reading the module summary")); +# 97| +# 98|-> static cl::opt ExpandConstantExprs( +# 99| "expand-constant-exprs", cl::Hidden, +# 100| cl::desc( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3042: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), llvm::APInt(16U, (uint16_t)Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3042: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3040| return error("Invalid float const record"); +# 3041| if (CurTy->isHalfTy()) +# 3042|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEhalf(), +# 3043| APInt(16, (uint16_t)Record[0]))); +# 3044| else if (CurTy->isBFloatTy()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3045: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::BFloat(), llvm::APInt(16U, (uint32_t)Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3045: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3043| APInt(16, (uint16_t)Record[0]))); +# 3044| else if (CurTy->isBFloatTy()) +# 3045|-> V = ConstantFP::get(Context, APFloat(APFloat::BFloat(), +# 3046| APInt(16, (uint32_t)Record[0]))); +# 3047| else if (CurTy->isFloatTy()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3048: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, (uint32_t)Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3048: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3046| APInt(16, (uint32_t)Record[0]))); +# 3047| else if (CurTy->isFloatTy()) +# 3048|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEsingle(), +# 3049| APInt(32, (uint32_t)Record[0]))); +# 3050| else if (CurTy->isDoubleTy()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3051: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, Record[0UL], false))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3051: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3049| APInt(32, (uint32_t)Record[0]))); +# 3050| else if (CurTy->isDoubleTy()) +# 3051|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEdouble(), +# 3052| APInt(64, Record[0]))); +# 3053| else if (CurTy->isX86_FP80Ty()) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3058: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), llvm::APInt(80U, llvm::ArrayRef(Rearrange)))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3058: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3056| Rearrange[0] = (Record[1] & 0xffffLL) | (Record[0] << 16); +# 3057| Rearrange[1] = Record[0] >> 48; +# 3058|-> V = ConstantFP::get(Context, APFloat(APFloat::x87DoubleExtended(), +# 3059| APInt(80, Rearrange))); +# 3060| } else if (CurTy->isFP128Ty()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3061: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3061: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3059| APInt(80, Rearrange))); +# 3060| } else if (CurTy->isFP128Ty()) +# 3061|-> V = ConstantFP::get(Context, APFloat(APFloat::IEEEquad(), +# 3062| APInt(128, Record))); +# 3063| else if (CurTy->isPPC_FP128Ty()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3064: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, llvm::ArrayRef(Record)))". +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:3064: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3062| APInt(128, Record))); +# 3063| else if (CurTy->isPPC_FP128Ty()) +# 3064|-> V = ConstantFP::get(Context, APFloat(APFloat::PPCDoubleDouble(), +# 3065| APInt(128, Record))); +# 3066| else + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingAllocs" is moved (indicated by "std::move(PendingAllocs)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: use_after_move: "PendingAllocs" is used after it has been already moved. +# 7284| PendingAllocs.clear(); +# 7285| } +# 7286|-> auto FS = std::make_unique( +# 7287| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7288| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingCallsites" is moved (indicated by "std::move(PendingCallsites)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: use_after_move: "PendingCallsites" is used after it has been already moved. +# 7284| PendingAllocs.clear(); +# 7285| } +# 7286|-> auto FS = std::make_unique( +# 7287| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7288| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingParamAccesses" is moved (indicated by "std::move(PendingParamAccesses)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: use_after_move: "PendingParamAccesses" is used after it has been already moved. +# 7284| PendingAllocs.clear(); +# 7285| } +# 7286|-> auto FS = std::make_unique( +# 7287| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7288| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeCheckedLoadConstVCalls" is moved (indicated by "std::move(PendingTypeCheckedLoadConstVCalls)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: use_after_move: "PendingTypeCheckedLoadConstVCalls" is used after it has been already moved. +# 7284| PendingAllocs.clear(); +# 7285| } +# 7286|-> auto FS = std::make_unique( +# 7287| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7288| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeCheckedLoadVCalls" is moved (indicated by "std::move(PendingTypeCheckedLoadVCalls)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: use_after_move: "PendingTypeCheckedLoadVCalls" is used after it has been already moved. +# 7284| PendingAllocs.clear(); +# 7285| } +# 7286|-> auto FS = std::make_unique( +# 7287| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7288| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeTestAssumeConstVCalls" is moved (indicated by "std::move(PendingTypeTestAssumeConstVCalls)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: use_after_move: "PendingTypeTestAssumeConstVCalls" is used after it has been already moved. +# 7284| PendingAllocs.clear(); +# 7285| } +# 7286|-> auto FS = std::make_unique( +# 7287| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7288| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeTestAssumeVCalls" is moved (indicated by "std::move(PendingTypeTestAssumeVCalls)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: use_after_move: "PendingTypeTestAssumeVCalls" is used after it has been already moved. +# 7284| PendingAllocs.clear(); +# 7285| } +# 7286|-> auto FS = std::make_unique( +# 7287| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7288| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeTests" is moved (indicated by "std::move(PendingTypeTests)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: use_after_move: "PendingTypeTests" is used after it has been already moved. +# 7284| PendingAllocs.clear(); +# 7285| } +# 7286|-> auto FS = std::make_unique( +# 7287| Flags, InstCount, getDecodedFFlags(RawFunFlags), /*EntryCount=*/0, +# 7288| std::move(Refs), std::move(Calls), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingAllocs" is moved (indicated by "std::move(PendingAllocs)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7430: use_after_move: "PendingAllocs" is used after it has been already moved. +# 7428| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7429| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7430|-> auto FS = std::make_unique( +# 7431| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7432| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingCallsites" is moved (indicated by "std::move(PendingCallsites)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7430: use_after_move: "PendingCallsites" is used after it has been already moved. +# 7428| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7429| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7430|-> auto FS = std::make_unique( +# 7431| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7432| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingParamAccesses" is moved (indicated by "std::move(PendingParamAccesses)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7430: use_after_move: "PendingParamAccesses" is used after it has been already moved. +# 7428| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7429| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7430|-> auto FS = std::make_unique( +# 7431| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7432| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeCheckedLoadConstVCalls" is moved (indicated by "std::move(PendingTypeCheckedLoadConstVCalls)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7430: use_after_move: "PendingTypeCheckedLoadConstVCalls" is used after it has been already moved. +# 7428| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7429| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7430|-> auto FS = std::make_unique( +# 7431| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7432| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeCheckedLoadVCalls" is moved (indicated by "std::move(PendingTypeCheckedLoadVCalls)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7430: use_after_move: "PendingTypeCheckedLoadVCalls" is used after it has been already moved. +# 7428| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7429| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7430|-> auto FS = std::make_unique( +# 7431| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7432| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeTestAssumeConstVCalls" is moved (indicated by "std::move(PendingTypeTestAssumeConstVCalls)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7430: use_after_move: "PendingTypeTestAssumeConstVCalls" is used after it has been already moved. +# 7428| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7429| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7430|-> auto FS = std::make_unique( +# 7431| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7432| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeTestAssumeVCalls" is moved (indicated by "std::move(PendingTypeTestAssumeVCalls)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7430: use_after_move: "PendingTypeTestAssumeVCalls" is used after it has been already moved. +# 7428| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7429| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7430|-> auto FS = std::make_unique( +# 7431| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7432| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7286: move: "PendingTypeTests" is moved (indicated by "std::move(PendingTypeTests)"). +llvm-17.0.6.src/lib/Bitcode/Reader/BitcodeReader.cpp:7430: use_after_move: "PendingTypeTests" is used after it has been already moved. +# 7428| ValueInfo VI = std::get<0>(getValueInfoFromValueId(ValueID)); +# 7429| setSpecialRefs(Refs, NumRORefs, NumWORefs); +# 7430|-> auto FS = std::make_unique( +# 7431| Flags, InstCount, getDecodedFFlags(RawFunFlags), EntryCount, +# 7432| std::move(Refs), std::move(Edges), std::move(PendingTypeTests), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/MetadataLoader.cpp:78: constructor_uses_global_object: The constructor of global object "ImportFullTypeDefinitions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ImportFullTypeDefinitions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| /// Flag whether we need to import full type definitions for ThinLTO. +# 77| /// Currently needed for Darwin and LLDB. +# 78|-> static cl::opt ImportFullTypeDefinitions( +# 79| "import-full-type-definitions", cl::init(false), cl::Hidden, +# 80| cl::desc("Import full type definitions for ThinLTO.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Reader/MetadataLoader.cpp:82: constructor_uses_global_object: The constructor of global object "DisableLazyLoading" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLazyLoading" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| cl::desc("Import full type definitions for ThinLTO.")); +# 81| +# 82|-> static cl::opt DisableLazyLoading( +# 83| "disable-ondemand-mds-loading", cl::init(false), cl::Hidden, +# 84| cl::desc("Force disable the lazy-loading on-demand of metadata when " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Writer/BitcodeWriter.cpp:87: constructor_uses_global_object: The constructor of global object "IndexThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IndexThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| +# 86| static cl::opt +# 87|-> IndexThreshold("bitcode-mdindex-threshold", cl::Hidden, cl::init(25), +# 88| cl::desc("Number of metadatas above which we emit an index " +# 89| "to enable lazy-loading")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Writer/BitcodeWriter.cpp:90: constructor_uses_global_object: The constructor of global object "FlushThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FlushThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| cl::desc("Number of metadatas above which we emit an index " +# 89| "to enable lazy-loading")); +# 90|-> static cl::opt FlushThreshold( +# 91| "bitcode-flush-threshold", cl::Hidden, cl::init(512), +# 92| cl::desc("The threshold (unit M) for flushing LLVM bitcode.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Bitcode/Writer/BitcodeWriter.cpp:94: constructor_uses_global_object: The constructor of global object "WriteRelBFToSummary" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WriteRelBFToSummary" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| cl::desc("The threshold (unit M) for flushing LLVM bitcode.")); +# 93| +# 94|-> static cl::opt WriteRelBFToSummary( +# 95| "write-relbf-to-summary", cl::Hidden, cl::init(false), +# 96| cl::desc("Write relative block frequency to function summary ")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AggressiveAntiDepBreaker.cpp:45: constructor_uses_global_object: The constructor of global object "DebugDiv" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugDiv" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| // If DebugDiv > 0 then only break antidep with (ID % DebugDiv) == DebugMod +# 44| static cl::opt +# 45|-> DebugDiv("agg-antidep-debugdiv", +# 46| cl::desc("Debug control for aggressive anti-dep breaker"), +# 47| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AggressiveAntiDepBreaker.cpp:50: constructor_uses_global_object: The constructor of global object "DebugMod" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugMod" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> DebugMod("agg-antidep-debugmod", +# 51| cl::desc("Debug control for aggressive anti-dep breaker"), +# 52| cl::init(0), cl::Hidden); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/AccelTable.cpp:408: var_decl: Declaring variable "UA". +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/AccelTable.cpp:415: uninit_use: Using uninitialized value "UA". Field "UA.InlineElts" is uninitialized. +# 413| } +# 414| UA.push_back({dwarf::DW_IDX_die_offset, dwarf::DW_FORM_ref4}); +# 415|-> return UA; +# 416| } +# 417| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:134: constructor_uses_global_object: The constructor of global object "BasicBlockProfileDump[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BasicBlockProfileDump[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| #define DEBUG_TYPE "asm-printer" +# 133| +# 134|-> static cl::opt BasicBlockProfileDump( +# 135| "mbb-profile-dump", cl::Hidden, +# 136| cl::desc("Basic block profile dump for external cost modelling. If " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp:30: constructor_uses_global_object: The constructor of global object "TrimVarLocs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TrimVarLocs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| /// If true, we drop variable location ranges which exist entirely outside the +# 29| /// variable's lexical scope instruction ranges. +# 30|-> static cl::opt TrimVarLocs("trim-var-locs", cl::Hidden, cl::init(true)); +# 31| +# 32| std::optional + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:964: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:967: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 965| auto *Array = dyn_cast(Var->getType()); +# 966| if (!Array || Array->getTag() != dwarf::DW_TAG_array_type) +# 967|-> return Result; +# 968| if (auto *DLVar = Array->getDataLocation()) +# 969| Result.push_back(DLVar); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:964: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:1003: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1001| } +# 1002| } +# 1003|-> return Result; +# 1004| } +# 1005| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:1010: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:1049: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1047| if (!Res.second) { +# 1048| assert(false && "dependency cycle in local variables"); +# 1049|-> return Result; +# 1050| } +# 1051| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:69: constructor_uses_global_object: The constructor of global object "UseDwarfRangesBaseAddressSpecifier" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseDwarfRangesBaseAddressSpecifier" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| STATISTIC(NumCSParams, "Number of dbg call site params created"); +# 68| +# 69|-> static cl::opt UseDwarfRangesBaseAddressSpecifier( +# 70| "use-dwarf-ranges-base-address-specifier", cl::Hidden, +# 71| cl::desc("Use base address specifiers in debug_ranges"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:73: constructor_uses_global_object: The constructor of global object "GenerateARangeSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateARangeSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::desc("Use base address specifiers in debug_ranges"), cl::init(false)); +# 72| +# 73|-> static cl::opt GenerateARangeSection("generate-arange-section", +# 74| cl::Hidden, +# 75| cl::desc("Generate dwarf aranges"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:79: constructor_uses_global_object: The constructor of global object "GenerateDwarfTypeUnits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateDwarfTypeUnits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> GenerateDwarfTypeUnits("generate-type-units", cl::Hidden, +# 80| cl::desc("Generate DWARF4 type units."), +# 81| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:83: constructor_uses_global_object: The constructor of global object "SplitDwarfCrossCuReferences" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitDwarfCrossCuReferences" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| cl::init(false)); +# 82| +# 83|-> static cl::opt SplitDwarfCrossCuReferences( +# 84| "split-dwarf-cross-cu-references", cl::Hidden, +# 85| cl::desc("Enable cross-cu references in DWO files"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:89: constructor_uses_global_object: The constructor of global object "UnknownLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnknownLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| enum DefaultOnOff { Default, Enable, Disable }; +# 88| +# 89|-> static cl::opt UnknownLocations( +# 90| "use-unknown-locations", cl::Hidden, +# 91| cl::desc("Make an absence of debug location information explicit."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:96: constructor_uses_global_object: The constructor of global object "AccelTables" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AccelTables" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| cl::init(Default)); +# 95| +# 96|-> static cl::opt AccelTables( +# 97| "accel-tables", cl::Hidden, cl::desc("Output dwarf accelerator tables."), +# 98| cl::values(clEnumValN(AccelTableKind::Default, "Default", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:106: constructor_uses_global_object: The constructor of global object "DwarfInlinedStrings" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfInlinedStrings" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| +# 105| static cl::opt +# 106|-> DwarfInlinedStrings("dwarf-inlined-strings", cl::Hidden, +# 107| cl::desc("Use inlined strings rather than string section."), +# 108| cl::values(clEnumVal(Default, "Default for platform"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:114: constructor_uses_global_object: The constructor of global object "NoDwarfRangesSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoDwarfRangesSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| +# 113| static cl::opt +# 114|-> NoDwarfRangesSection("no-dwarf-ranges-section", cl::Hidden, +# 115| cl::desc("Disable emission .debug_ranges section."), +# 116| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:118: constructor_uses_global_object: The constructor of global object "DwarfSectionsAsReferences" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfSectionsAsReferences" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| cl::init(false)); +# 117| +# 118|-> static cl::opt DwarfSectionsAsReferences( +# 119| "dwarf-sections-as-references", cl::Hidden, +# 120| cl::desc("Use sections+offset as references rather than labels."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:126: constructor_uses_global_object: The constructor of global object "UseGNUDebugMacro" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseGNUDebugMacro" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| +# 125| static cl::opt +# 126|-> UseGNUDebugMacro("use-gnu-debug-macro", cl::Hidden, +# 127| cl::desc("Emit the GNU .debug_macro format with DWARF <5"), +# 128| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:130: constructor_uses_global_object: The constructor of global object "DwarfOpConvert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfOpConvert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| cl::init(false)); +# 129| +# 130|-> static cl::opt DwarfOpConvert( +# 131| "dwarf-op-convert", cl::Hidden, +# 132| cl::desc("Enable use of the DWARFv5 DW_OP_convert operator"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:144: constructor_uses_global_object: The constructor of global object "DwarfLinkageNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfLinkageNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 142| +# 143| static cl::opt +# 144|-> DwarfLinkageNames("dwarf-linkage-names", cl::Hidden, +# 145| cl::desc("Which DWARF linkage-name attributes to emit."), +# 146| cl::values(clEnumValN(DefaultLinkageNames, "Default", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:153: constructor_uses_global_object: The constructor of global object "MinimizeAddrInV5Option" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MinimizeAddrInV5Option" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| cl::init(DefaultLinkageNames)); +# 152| +# 153|-> static cl::opt MinimizeAddrInV5Option( +# 154| "minimize-addr-in-v5", cl::Hidden, +# 155| cl::desc("Always use DW_AT_ranges in DWARFv5 whenever it could allow more " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1569: var_decl: Declaring variable "LocEntry". +llvm-17.0.6.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1570: uninit_use_in_call: Using uninitialized value "LocEntry". Field "LocEntry.Constant" is uninitialized when calling "DbgValueLoc". +# 1568| MachineLocation MLoc(VI.getEntryValueRegister(), /*IsIndirect*/ true); +# 1569| auto LocEntry = DbgValueLocEntry(MLoc); +# 1570|-> RegVar->initializeDbgValue(DbgValueLoc(VI.Expr, LocEntry)); +# 1571| } +# 1572| LLVM_DEBUG(dbgs() << "Created DbgVariable for " << VI.Var->getName() + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:41: constructor_uses_global_object: The constructor of global object "MaxNumBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxNumBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> MaxNumBlocks("debug-ata-max-blocks", cl::init(10000), +# 42| cl::desc("Maximum num basic blocks before debug info dropped"), +# 43| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:46: constructor_uses_global_object: The constructor of global object "EnableMemLocFragFill" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemLocFragFill" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| /// Option for debugging the pass, determines if the memory location fragment +# 45| /// filling happens after generating the variable locations. +# 46|-> static cl::opt EnableMemLocFragFill("mem-loc-frag-fill", cl::init(true), +# 47| cl::Hidden); +# 48| /// Print the results of the analysis. Respects -filter-print-funcs. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:49: constructor_uses_global_object: The constructor of global object "PrintResults" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintResults" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::Hidden); +# 48| /// Print the results of the analysis. Respects -filter-print-funcs. +# 49|-> static cl::opt PrintResults("print-debug-ata", cl::init(false), +# 50| cl::Hidden); +# 51| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/AssignmentTrackingAnalysis.cpp:56: constructor_uses_global_object: The constructor of global object "CoalesceAdjacentFragmentsOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CoalesceAdjacentFragmentsOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| /// construction for each explicitly stated variable fragment. +# 55| static cl::opt +# 56|-> CoalesceAdjacentFragmentsOpt("debug-ata-coalesce-frags", cl::Hidden); +# 57| +# 58| // Implicit conversions are disabled for enum class types, so unfortunately we + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/AtomicExpandPass.cpp:1792: var_decl: Declaring variable "RTLibType" without initializer. +llvm-17.0.6.src/lib/CodeGen/AtomicExpandPass.cpp:1819: uninit_use_in_call: Using uninitialized value "RTLibType" when calling "getLibcallName". +# 1817| } +# 1818| +# 1819|-> if (!TLI->getLibcallName(RTLibType)) { +# 1820| // This target does not implement the requested atomic libcall so give up. +# 1821| return false; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BasicBlockSections.cpp:89: constructor_uses_global_object: The constructor of global object "llvm::BBSectionsColdTextPrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::BBSectionsColdTextPrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| // section granularity. Defaults to ".text.split." which is recognized by lld +# 88| // via the `-z keep-text-section-prefix` flag. +# 89|-> cl::opt llvm::BBSectionsColdTextPrefix( +# 90| "bbsections-cold-text-prefix", +# 91| cl::desc("The text prefix to use for cold basic block clusters"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BasicBlockSections.cpp:94: constructor_uses_global_object: The constructor of global object "BBSectionsDetectSourceDrift" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BBSectionsDetectSourceDrift" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| cl::init(".text.split."), cl::Hidden); +# 93| +# 94|-> static cl::opt BBSectionsDetectSourceDrift( +# 95| "bbsections-detect-source-drift", +# 96| cl::desc("This checks if there is a fdo instr. profile hash " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BasicTargetTransformInfo.cpp:28: constructor_uses_global_object: The constructor of global object "llvm::PartialUnrollingThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PartialUnrollingThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| // provide a definition. +# 27| cl::opt +# 28|-> llvm::PartialUnrollingThreshold("partial-unrolling-threshold", cl::init(0), +# 29| cl::desc("Threshold for partial unrolling"), +# 30| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BranchFolding.cpp:73: constructor_uses_global_object: The constructor of global object "FlagEnableTailMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FlagEnableTailMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| STATISTIC(NumTailCalls, "Number of tail calls optimized"); +# 72| +# 73|-> static cl::opt FlagEnableTailMerge("enable-tail-merge", +# 74| cl::init(cl::BOU_UNSET), cl::Hidden); +# 75| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BranchFolding.cpp:78: constructor_uses_global_object: The constructor of global object "TailMergeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailMergeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| // Throttle for huge numbers of predecessors (compile speed problems) +# 77| static cl::opt +# 78|-> TailMergeThreshold("tail-merge-threshold", +# 79| cl::desc("Max number of predecessors to consider tail merging"), +# 80| cl::init(150), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/BranchFolding.cpp:85: constructor_uses_global_object: The constructor of global object "TailMergeSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailMergeSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| // TODO: This should be replaced with a target query. +# 84| static cl::opt +# 85|-> TailMergeSize("tail-merge-size", +# 86| cl::desc("Min number of instructions to consider tail merging"), +# 87| cl::init(3), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CFIInstrInserter.cpp:31: constructor_uses_global_object: The constructor of global object "VerifyCFI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyCFI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt VerifyCFI("verify-cfiinstrs", +# 32| cl::desc("Verify Call Frame Information instructions"), +# 33| cl::init(false), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/CallBrPrepare.cpp:86: var_decl: Declaring variable "CBRs". +llvm-17.0.6.src/lib/CodeGen/CallBrPrepare.cpp:91: uninit_use: Using uninitialized value "CBRs". Field "CBRs.InlineElts" is uninitialized. +# 89| if (!CBR->getType()->isVoidTy() && !CBR->use_empty()) +# 90| CBRs.push_back(CBR); +# 91|-> return CBRs; +# 92| } +# 93| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:135: constructor_uses_global_object: The constructor of global object "DisableBranchOpts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBranchOpts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| STATISTIC(NumStoreExtractExposed, "Number of store(extractelement) exposed"); +# 134| +# 135|-> static cl::opt DisableBranchOpts( +# 136| "disable-cgp-branch-opts", cl::Hidden, cl::init(false), +# 137| cl::desc("Disable branch optimizations in CodeGenPrepare")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:140: constructor_uses_global_object: The constructor of global object "DisableGCOpts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableGCOpts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> DisableGCOpts("disable-cgp-gc-opts", cl::Hidden, cl::init(false), +# 141| cl::desc("Disable GC optimizations in CodeGenPrepare")); +# 142| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:144: constructor_uses_global_object: The constructor of global object "DisableSelectToBranch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSelectToBranch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 142| +# 143| static cl::opt +# 144|-> DisableSelectToBranch("disable-cgp-select2branch", cl::Hidden, +# 145| cl::init(false), +# 146| cl::desc("Disable select to branch conversion.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:149: constructor_uses_global_object: The constructor of global object "AddrSinkUsingGEPs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkUsingGEPs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| +# 148| static cl::opt +# 149|-> AddrSinkUsingGEPs("addr-sink-using-gep", cl::Hidden, cl::init(true), +# 150| cl::desc("Address sinking in CGP using GEPs.")); +# 151| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:153: constructor_uses_global_object: The constructor of global object "EnableAndCmpSinking" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAndCmpSinking" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| +# 152| static cl::opt +# 153|-> EnableAndCmpSinking("enable-andcmp-sinking", cl::Hidden, cl::init(true), +# 154| cl::desc("Enable sinkinig and/cmp into branches.")); +# 155| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:156: constructor_uses_global_object: The constructor of global object "DisableStoreExtract" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableStoreExtract" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 154| cl::desc("Enable sinkinig and/cmp into branches.")); +# 155| +# 156|-> static cl::opt DisableStoreExtract( +# 157| "disable-cgp-store-extract", cl::Hidden, cl::init(false), +# 158| cl::desc("Disable store(extract) optimizations in CodeGenPrepare")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:160: constructor_uses_global_object: The constructor of global object "StressStoreExtract" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressStoreExtract" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 158| cl::desc("Disable store(extract) optimizations in CodeGenPrepare")); +# 159| +# 160|-> static cl::opt StressStoreExtract( +# 161| "stress-cgp-store-extract", cl::Hidden, cl::init(false), +# 162| cl::desc("Stress test store(extract) optimizations in CodeGenPrepare")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:164: constructor_uses_global_object: The constructor of global object "DisableExtLdPromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableExtLdPromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 162| cl::desc("Stress test store(extract) optimizations in CodeGenPrepare")); +# 163| +# 164|-> static cl::opt DisableExtLdPromotion( +# 165| "disable-cgp-ext-ld-promotion", cl::Hidden, cl::init(false), +# 166| cl::desc("Disable ext(promotable(ld)) -> promoted(ext(ld)) optimization in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:169: constructor_uses_global_object: The constructor of global object "StressExtLdPromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressExtLdPromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 167| "CodeGenPrepare")); +# 168| +# 169|-> static cl::opt StressExtLdPromotion( +# 170| "stress-cgp-ext-ld-promotion", cl::Hidden, cl::init(false), +# 171| cl::desc("Stress test ext(promotable(ld)) -> promoted(ext(ld)) " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:174: constructor_uses_global_object: The constructor of global object "DisablePreheaderProtect" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePreheaderProtect" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 172| "optimization in CodeGenPrepare")); +# 173| +# 174|-> static cl::opt DisablePreheaderProtect( +# 175| "disable-preheader-prot", cl::Hidden, cl::init(false), +# 176| cl::desc("Disable protection against removing loop preheaders")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:178: constructor_uses_global_object: The constructor of global object "ProfileGuidedSectionPrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileGuidedSectionPrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 176| cl::desc("Disable protection against removing loop preheaders")); +# 177| +# 178|-> static cl::opt ProfileGuidedSectionPrefix( +# 179| "profile-guided-section-prefix", cl::Hidden, cl::init(true), +# 180| cl::desc("Use profile info to add section prefix for hot/cold functions")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:182: constructor_uses_global_object: The constructor of global object "ProfileUnknownInSpecialSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileUnknownInSpecialSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 180| cl::desc("Use profile info to add section prefix for hot/cold functions")); +# 181| +# 182|-> static cl::opt ProfileUnknownInSpecialSection( +# 183| "profile-unknown-in-special-section", cl::Hidden, +# 184| cl::desc("In profiling mode like sampleFDO, if a function doesn't have " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:192: constructor_uses_global_object: The constructor of global object "BBSectionsGuidedSectionPrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BBSectionsGuidedSectionPrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 190| "RAM for example. ")); +# 191| +# 192|-> static cl::opt BBSectionsGuidedSectionPrefix( +# 193| "bbsections-guided-section-prefix", cl::Hidden, cl::init(true), +# 194| cl::desc("Use the basic-block-sections profile to determine the text " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:201: constructor_uses_global_object: The constructor of global object "FreqRatioToSkipMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FreqRatioToSkipMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 199| "profiles.")); +# 200| +# 201|-> static cl::opt FreqRatioToSkipMerge( +# 202| "cgp-freq-ratio-to-skip-merge", cl::Hidden, cl::init(2), +# 203| cl::desc("Skip merging empty blocks if (frequency of empty block) / " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:206: constructor_uses_global_object: The constructor of global object "ForceSplitStore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceSplitStore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 204| "(frequency of destination block) is greater than this ratio")); +# 205| +# 206|-> static cl::opt ForceSplitStore( +# 207| "force-split-store", cl::Hidden, cl::init(false), +# 208| cl::desc("Force store splitting no matter what the target query says.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:210: constructor_uses_global_object: The constructor of global object "EnableTypePromotionMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTypePromotionMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 208| cl::desc("Force store splitting no matter what the target query says.")); +# 209| +# 210|-> static cl::opt EnableTypePromotionMerge( +# 211| "cgp-type-promotion-merge", cl::Hidden, +# 212| cl::desc("Enable merging of redundant sexts when one is dominating" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:216: constructor_uses_global_object: The constructor of global object "DisableComplexAddrModes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableComplexAddrModes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 214| cl::init(true)); +# 215| +# 216|-> static cl::opt DisableComplexAddrModes( +# 217| "disable-complex-addr-modes", cl::Hidden, cl::init(false), +# 218| cl::desc("Disables combining addressing modes with different parts " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:222: constructor_uses_global_object: The constructor of global object "AddrSinkNewPhis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkNewPhis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 220| +# 221| static cl::opt +# 222|-> AddrSinkNewPhis("addr-sink-new-phis", cl::Hidden, cl::init(false), +# 223| cl::desc("Allow creation of Phis in Address sinking.")); +# 224| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:225: constructor_uses_global_object: The constructor of global object "AddrSinkNewSelects" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkNewSelects" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 223| cl::desc("Allow creation of Phis in Address sinking.")); +# 224| +# 225|-> static cl::opt AddrSinkNewSelects( +# 226| "addr-sink-new-select", cl::Hidden, cl::init(true), +# 227| cl::desc("Allow creation of selects in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:229: constructor_uses_global_object: The constructor of global object "AddrSinkCombineBaseReg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineBaseReg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 227| cl::desc("Allow creation of selects in Address sinking.")); +# 228| +# 229|-> static cl::opt AddrSinkCombineBaseReg( +# 230| "addr-sink-combine-base-reg", cl::Hidden, cl::init(true), +# 231| cl::desc("Allow combining of BaseReg field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:233: constructor_uses_global_object: The constructor of global object "AddrSinkCombineBaseGV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineBaseGV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 231| cl::desc("Allow combining of BaseReg field in Address sinking.")); +# 232| +# 233|-> static cl::opt AddrSinkCombineBaseGV( +# 234| "addr-sink-combine-base-gv", cl::Hidden, cl::init(true), +# 235| cl::desc("Allow combining of BaseGV field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:237: constructor_uses_global_object: The constructor of global object "AddrSinkCombineBaseOffs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineBaseOffs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 235| cl::desc("Allow combining of BaseGV field in Address sinking.")); +# 236| +# 237|-> static cl::opt AddrSinkCombineBaseOffs( +# 238| "addr-sink-combine-base-offs", cl::Hidden, cl::init(true), +# 239| cl::desc("Allow combining of BaseOffs field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:241: constructor_uses_global_object: The constructor of global object "AddrSinkCombineScaledReg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AddrSinkCombineScaledReg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 239| cl::desc("Allow combining of BaseOffs field in Address sinking.")); +# 240| +# 241|-> static cl::opt AddrSinkCombineScaledReg( +# 242| "addr-sink-combine-scaled-reg", cl::Hidden, cl::init(true), +# 243| cl::desc("Allow combining of ScaledReg field in Address sinking.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:246: constructor_uses_global_object: The constructor of global object "EnableGEPOffsetSplit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGEPOffsetSplit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 244| +# 245| static cl::opt +# 246|-> EnableGEPOffsetSplit("cgp-split-large-offset-gep", cl::Hidden, +# 247| cl::init(true), +# 248| cl::desc("Enable splitting large offset of GEP.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:250: constructor_uses_global_object: The constructor of global object "EnableICMP_EQToICMP_ST" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableICMP_EQToICMP_ST" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 248| cl::desc("Enable splitting large offset of GEP.")); +# 249| +# 250|-> static cl::opt EnableICMP_EQToICMP_ST( +# 251| "cgp-icmp-eq2icmp-st", cl::Hidden, cl::init(false), +# 252| cl::desc("Enable ICMP_EQ to ICMP_S(L|G)T conversion.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:255: constructor_uses_global_object: The constructor of global object "VerifyBFIUpdates" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyBFIUpdates" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 253| +# 254| static cl::opt +# 255|-> VerifyBFIUpdates("cgp-verify-bfi-updates", cl::Hidden, cl::init(false), +# 256| cl::desc("Enable BFI update verification for " +# 257| "CodeGenPrepare.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:260: constructor_uses_global_object: The constructor of global object "OptimizePhiTypes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptimizePhiTypes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 258| +# 259| static cl::opt +# 260|-> OptimizePhiTypes("cgp-optimize-phi-types", cl::Hidden, cl::init(true), +# 261| cl::desc("Enable converting phi types in CodeGenPrepare")); +# 262| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:264: constructor_uses_global_object: The constructor of global object "HugeFuncThresholdInCGPP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeFuncThresholdInCGPP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 262| +# 263| static cl::opt +# 264|-> HugeFuncThresholdInCGPP("cgpp-huge-func", cl::init(10000), cl::Hidden, +# 265| cl::desc("Least BB number of huge function.")); +# 266| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/CodeGenPrepare.cpp:268: constructor_uses_global_object: The constructor of global object "MaxAddressUsersToScan" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxAddressUsersToScan" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 266| +# 267| static cl::opt +# 268|-> MaxAddressUsersToScan("cgp-max-address-users-to-scan", cl::init(100), +# 269| cl::Hidden, +# 270| cl::desc("Max number of address users to look at")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ComplexDeinterleavingPass.cpp:83: constructor_uses_global_object: The constructor of global object "ComplexDeinterleavingEnabled" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ComplexDeinterleavingEnabled" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| STATISTIC(NumComplexTransformations, "Amount of complex patterns transformed"); +# 82| +# 83|-> static cl::opt ComplexDeinterleavingEnabled( +# 84| "enable-complex-deinterleaving", +# 85| cl::desc("Enable generation of complex instructions"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/DFAPacketizer.cpp:48: constructor_uses_global_object: The constructor of global object "InstrLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InstrLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| #define DEBUG_TYPE "packets" +# 47| +# 48|-> static cl::opt InstrLimit("dfa-instr-limit", cl::Hidden, +# 49| cl::init(0), cl::desc("If present, stops packetizing after N instructions")); +# 50| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/EarlyIfConversion.cpp:48: constructor_uses_global_object: The constructor of global object "BlockInstrLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockInstrLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| // This bypasses all other heuristics, so it should be set fairly high. +# 47| static cl::opt +# 48|-> BlockInstrLimit("early-ifcvt-limit", cl::init(30), cl::Hidden, +# 49| cl::desc("Maximum number of instructions per speculated block.")); +# 50| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/EarlyIfConversion.cpp:52: constructor_uses_global_object: The constructor of global object "Stress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Stress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| +# 51| // Stress testing mode - disable heuristics. +# 52|-> static cl::opt Stress("stress-early-ifcvt", cl::Hidden, +# 53| cl::desc("Turn all knobs to 11")); +# 54| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/EdgeBundles.cpp:26: constructor_uses_global_object: The constructor of global object "ViewEdgeBundles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewEdgeBundles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> ViewEdgeBundles("view-edge-bundles", cl::Hidden, +# 27| cl::desc("Pop up a window to show edge bundle graphs")); +# 28| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandLargeDivRem.cpp:36: constructor_uses_global_object: The constructor of global object "ExpandDivRemBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandDivRemBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> ExpandDivRemBits("expand-div-rem-bits", cl::Hidden, +# 37| cl::init(llvm::IntegerType::MAX_INT_BITS), +# 38| cl::desc("div and rem instructions on integers with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandLargeFpConvert.cpp:35: constructor_uses_global_object: The constructor of global object "ExpandFpConvertBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandFpConvertBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> ExpandFpConvertBits("expand-fp-convert-bits", cl::Hidden, +# 36| cl::init(llvm::IntegerType::MAX_INT_BITS), +# 37| cl::desc("fp convert instructions on integers with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:47: constructor_uses_global_object: The constructor of global object "MemCmpEqZeroNumLoadsPerBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemCmpEqZeroNumLoadsPerBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| STATISTIC(NumMemCmpInlined, "Number of inlined memcmp calls"); +# 46| +# 47|-> static cl::opt MemCmpEqZeroNumLoadsPerBlock( +# 48| "memcmp-num-loads-per-block", cl::Hidden, cl::init(1), +# 49| cl::desc("The number of loads per basic block for inline expansion of " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:52: constructor_uses_global_object: The constructor of global object "MaxLoadsPerMemcmp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxLoadsPerMemcmp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| "memcmp that is only being compared against zero.")); +# 51| +# 52|-> static cl::opt MaxLoadsPerMemcmp( +# 53| "max-loads-per-memcmp", cl::Hidden, +# 54| cl::desc("Set maximum number of loads used in expanded memcmp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:56: constructor_uses_global_object: The constructor of global object "MaxLoadsPerMemcmpOptSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxLoadsPerMemcmpOptSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| cl::desc("Set maximum number of loads used in expanded memcmp")); +# 55| +# 56|-> static cl::opt MaxLoadsPerMemcmpOptSize( +# 57| "max-loads-per-memcmp-opt-size", cl::Hidden, +# 58| cl::desc("Set maximum number of loads used in expanded memcmp for -Os/Oz")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:199: var_decl: Declaring variable "LoadSequence". +llvm-17.0.6.src/lib/CodeGen/ExpandMemCmp.cpp:210: uninit_use: Using uninitialized value "LoadSequence". Field "LoadSequence.InlineElts" is uninitialized. +# 208| LoadSequence.push_back({MaxLoadSize, Offset - (MaxLoadSize - Size)}); +# 209| NumLoadsNonOneByte = 1; +# 210|-> return LoadSequence; +# 211| } +# 212| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandVectorPredication.cpp:48: constructor_uses_global_object: The constructor of global object "EVLTransformOverride[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EVLTransformOverride[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| // Override options. +# 48|-> static cl::opt EVLTransformOverride( +# 49| "expandvp-override-evl-transform", cl::init(""), cl::Hidden, +# 50| cl::desc("Options: " VPINTERNAL_VPLEGAL_CASES + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ExpandVectorPredication.cpp:56: constructor_uses_global_object: The constructor of global object "MaskTransformOverride[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaskTransformOverride[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| "testing).")); +# 55| +# 56|-> static cl::opt MaskTransformOverride( +# 57| "expandvp-override-mask-transform", cl::init(""), cl::Hidden, +# 58| cl::desc("Options: " VPINTERNAL_VPLEGAL_CASES + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:40: constructor_uses_global_object: The constructor of global object "FixupSCSExtendSlotSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixupSCSExtendSlotSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| STATISTIC(NumSpillSlotsExtended, "Number of spill slots extended"); +# 39| +# 40|-> static cl::opt FixupSCSExtendSlotSize( +# 41| "fixup-scs-extend-slot-size", cl::Hidden, cl::init(false), +# 42| cl::desc("Allow spill in spill slot of greater size than register size"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:45: constructor_uses_global_object: The constructor of global object "PassGCPtrInCSR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PassGCPtrInCSR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::Hidden); +# 44| +# 45|-> static cl::opt PassGCPtrInCSR( +# 46| "fixup-allow-gcptr-in-csr", cl::Hidden, cl::init(false), +# 47| cl::desc("Allow passing GC Pointer arguments in callee saved registers")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:49: constructor_uses_global_object: The constructor of global object "EnableCopyProp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCopyProp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::desc("Allow passing GC Pointer arguments in callee saved registers")); +# 48| +# 49|-> static cl::opt EnableCopyProp( +# 50| "fixup-scs-enable-copy-propagation", cl::Hidden, cl::init(true), +# 51| cl::desc("Enable simple copy propagation during register reloading")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/FixupStatepointCallerSaved.cpp:55: constructor_uses_global_object: The constructor of global object "MaxStatepointsWithRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxStatepointsWithRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| // This is purely debugging option. +# 54| // It may be handy for investigating statepoint spilling issues. +# 55|-> static cl::opt MaxStatepointsWithRegs( +# 56| "fixup-max-csr-statepoints", cl::Hidden, +# 57| cl::desc("Max number of statepoints allowed to pass GC Ptrs in registers")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Combiner.cpp:31: constructor_uses_global_object: The constructor of global object "llvm::GICombinerOptionCategory" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "llvm::GICombinerOptionCategory" might be created before "GlobalParser" is available. +# 29| +# 30| namespace llvm { +# 31|-> cl::OptionCategory GICombinerOptionCategory( +# 32| "GlobalISel Combiner", +# 33| "Control the rules which are enabled. These options all take a comma " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp:47: constructor_uses_global_object: The constructor of global object "ForceLegalIndexing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceLegalIndexing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| // addressing. +# 46| static cl::opt +# 47|-> ForceLegalIndexing("force-legal-indexing", cl::Hidden, cl::init(false), +# 48| cl::desc("Force all indexed operations to be " +# 49| "legal for the GlobalISel combiner")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp:1323: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(sqrt(Result.convertToDouble()))". +llvm-17.0.6.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp:1323: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1321| Result.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, +# 1322| &Unused); +# 1323|-> Result = APFloat(sqrt(Result.convertToDouble())); +# 1324| break; +# 1325| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp:1330: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(log2(Result.convertToDouble()))". +llvm-17.0.6.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp:1330: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1328| Result.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, +# 1329| &Unused); +# 1330|-> Result = APFloat(log2(Result.convertToDouble())); +# 1331| break; +# 1332| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp:4687: var_decl: Declaring variable "NewOpcode" without initializer. +llvm-17.0.6.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp:4703: uninit_use_in_call: Using uninitialized value "NewOpcode" when calling "get". +# 4701| } +# 4702| Observer.changingInstr(MI); +# 4703|-> MI.setDesc(B.getTII().get(NewOpcode)); +# 4704| MI.removeOperand(4); +# 4705| Observer.changedInstr(MI); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/IRTranslator.cpp:98: constructor_uses_global_object: The constructor of global object "EnableCSEInIRTranslator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCSEInIRTranslator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| +# 97| static cl::opt +# 98|-> EnableCSEInIRTranslator("enable-cse-in-irtranslator", +# 99| cl::desc("Should enable CSE in irtranslator"), +# 100| cl::Optional, cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Legalizer.cpp:39: constructor_uses_global_object: The constructor of global object "EnableCSEInLegalizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCSEInLegalizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> EnableCSEInLegalizer("enable-cse-in-legalizer", +# 40| cl::desc("Should enable CSE in Legalizer"), +# 41| cl::Optional, cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Legalizer.cpp:44: constructor_uses_global_object: The constructor of global object "AllowGInsertAsArtifact" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowGInsertAsArtifact" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| // This is a temporary hack, should be removed soon. +# 44|-> static cl::opt AllowGInsertAsArtifact( +# 45| "allow-ginsert-as-artifact", +# 46| cl::desc("Allow G_INSERT to be considered an artifact. Hack around AMDGPU " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:6179: var_decl: Declaring variable "TwoPExpFP". +llvm-17.0.6.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:6182: uninit_use_in_call: Using uninitialized value "TwoPExpFP.U" when calling "convertFromAPInt". +# 6180| : APFloat::IEEEdouble(), +# 6181| APInt::getZero(SrcTy.getSizeInBits())); +# 6182|-> TwoPExpFP.convertFromAPInt(TwoPExpInt, false, APFloat::rmNearestTiesToEven); +# 6183| +# 6184| MachineInstrBuilder FPTOSI = MIRBuilder.buildFPTOSI(DstTy, Src); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/LegalizerInfo.cpp:32: constructor_uses_global_object: The constructor of global object "llvm::DisableGISelLegalityCheck" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DisableGISelLegalityCheck" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| #define DEBUG_TYPE "legalizer-info" +# 31| +# 32|-> cl::opt llvm::DisableGISelLegalityCheck( +# 33| "disable-gisel-legality-check", +# 34| cl::desc("Don't verify that MIR is fully legal between GlobalISel passes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/RegBankSelect.cpp:53: constructor_uses_global_object: The constructor of global object "RegBankSelectMode" itself makes use of global object "llvm::cl::AllSubCommands" defined in another compilation unit. The order of construction is unspecified, so "RegBankSelectMode" might be created before "llvm::cl::AllSubCommands" is available. +# 51| using namespace llvm; +# 52| +# 53|-> static cl::opt RegBankSelectMode( +# 54| cl::desc("Mode of the RegBankSelect pass"), cl::Hidden, cl::Optional, +# 55| cl::values(clEnumValN(RegBankSelect::Mode::Fast, "regbankselect-fast", + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Utils.cpp:781: var_decl: Declaring variable "DstVal". +llvm-17.0.6.src/lib/CodeGen/GlobalISel/Utils.cpp:782: uninit_use_in_call: Using uninitialized value "DstVal.U" when calling "convertFromAPInt". +# 780| if (auto MaybeSrcVal = getIConstantVRegVal(Src, MRI)) { +# 781| APFloat DstVal(getFltSemanticForLLT(DstTy)); +# 782|-> DstVal.convertFromAPInt(*MaybeSrcVal, Opcode == TargetOpcode::G_SITOFP, +# 783| APFloat::rmNearestTiesToEven); +# 784| return DstVal; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:108: constructor_uses_global_object: The constructor of global object "EnableGlobalMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| // FIXME: This is only useful as a last-resort way to disable the pass. +# 107| static cl::opt +# 108|-> EnableGlobalMerge("enable-global-merge", cl::Hidden, +# 109| cl::desc("Enable the global merge pass"), +# 110| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:113: constructor_uses_global_object: The constructor of global object "GlobalMergeMaxOffset" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalMergeMaxOffset" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| +# 112| static cl::opt +# 113|-> GlobalMergeMaxOffset("global-merge-max-offset", cl::Hidden, +# 114| cl::desc("Set maximum offset for global merge pass"), +# 115| cl::init(0)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:117: constructor_uses_global_object: The constructor of global object "GlobalMergeGroupByUse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalMergeGroupByUse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 115| cl::init(0)); +# 116| +# 117|-> static cl::opt GlobalMergeGroupByUse( +# 118| "global-merge-group-by-use", cl::Hidden, +# 119| cl::desc("Improve global merge pass to look at uses"), cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:121: constructor_uses_global_object: The constructor of global object "GlobalMergeIgnoreSingleUse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalMergeIgnoreSingleUse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| cl::desc("Improve global merge pass to look at uses"), cl::init(true)); +# 120| +# 121|-> static cl::opt GlobalMergeIgnoreSingleUse( +# 122| "global-merge-ignore-single-use", cl::Hidden, +# 123| cl::desc("Improve global merge pass to ignore globals only used alone"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:127: constructor_uses_global_object: The constructor of global object "EnableGlobalMergeOnConst" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMergeOnConst" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 125| +# 126| static cl::opt +# 127|-> EnableGlobalMergeOnConst("global-merge-on-const", cl::Hidden, +# 128| cl::desc("Enable global merge pass on constants"), +# 129| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:134: constructor_uses_global_object: The constructor of global object "EnableGlobalMergeOnExternal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMergeOnExternal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| // it if only we are sure this optimization could always benefit all targets. +# 133| static cl::opt +# 134|-> EnableGlobalMergeOnExternal("global-merge-on-external", cl::Hidden, +# 135| cl::desc("Enable global merge pass on external linkage")); +# 136| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:53: constructor_uses_global_object: The constructor of global object "ForceHardwareLoops" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceHardwareLoops" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| static cl::opt +# 53|-> ForceHardwareLoops("force-hardware-loops", cl::Hidden, cl::init(false), +# 54| cl::desc("Force hardware loops intrinsics to be inserted")); +# 55| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:57: constructor_uses_global_object: The constructor of global object "ForceHardwareLoopPHI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceHardwareLoopPHI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| static cl::opt +# 57|-> ForceHardwareLoopPHI( +# 58| "force-hardware-loop-phi", cl::Hidden, cl::init(false), +# 59| cl::desc("Force hardware loop counter to be updated through a phi")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:62: constructor_uses_global_object: The constructor of global object "ForceNestedLoop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceNestedLoop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> ForceNestedLoop("force-nested-hardware-loop", cl::Hidden, cl::init(false), +# 63| cl::desc("Force allowance of nested hardware loops")); +# 64| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:66: constructor_uses_global_object: The constructor of global object "LoopDecrement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoopDecrement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| static cl::opt +# 66|-> LoopDecrement("hardware-loop-decrement", cl::Hidden, cl::init(1), +# 67| cl::desc("Set the loop decrement value")); +# 68| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:70: constructor_uses_global_object: The constructor of global object "CounterBitWidth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CounterBitWidth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| +# 69| static cl::opt +# 70|-> CounterBitWidth("hardware-loop-counter-bitwidth", cl::Hidden, cl::init(32), +# 71| cl::desc("Set the loop counter bitwidth")); +# 72| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/HardwareLoops.cpp:74: constructor_uses_global_object: The constructor of global object "ForceGuardLoopEntry" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceGuardLoopEntry" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| +# 73| static cl::opt +# 74|-> ForceGuardLoopEntry( +# 75| "force-hardware-loop-guard", cl::Hidden, cl::init(false), +# 76| cl::desc("Force generation of loop guard intrinsic")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:61: constructor_uses_global_object: The constructor of global object "IfCvtFnStart" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtFnStart" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| +# 60| // Hidden options for help debugging. +# 61|-> static cl::opt IfCvtFnStart("ifcvt-fn-start", cl::init(-1), cl::Hidden); +# 62| static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63| static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:62: constructor_uses_global_object: The constructor of global object "IfCvtFnStop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtFnStop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| // Hidden options for help debugging. +# 61| static cl::opt IfCvtFnStart("ifcvt-fn-start", cl::init(-1), cl::Hidden); +# 62|-> static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63| static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); +# 64| static cl::opt DisableSimple("disable-ifcvt-simple", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:63: constructor_uses_global_object: The constructor of global object "IfCvtLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| static cl::opt IfCvtFnStart("ifcvt-fn-start", cl::init(-1), cl::Hidden); +# 62| static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63|-> static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); +# 64| static cl::opt DisableSimple("disable-ifcvt-simple", +# 65| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:64: constructor_uses_global_object: The constructor of global object "DisableSimple" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSimple" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| static cl::opt IfCvtFnStop("ifcvt-fn-stop", cl::init(-1), cl::Hidden); +# 63| static cl::opt IfCvtLimit("ifcvt-limit", cl::init(-1), cl::Hidden); +# 64|-> static cl::opt DisableSimple("disable-ifcvt-simple", +# 65| cl::init(false), cl::Hidden); +# 66| static cl::opt DisableSimpleF("disable-ifcvt-simple-false", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:66: constructor_uses_global_object: The constructor of global object "DisableSimpleF" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSimpleF" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| static cl::opt DisableSimple("disable-ifcvt-simple", +# 65| cl::init(false), cl::Hidden); +# 66|-> static cl::opt DisableSimpleF("disable-ifcvt-simple-false", +# 67| cl::init(false), cl::Hidden); +# 68| static cl::opt DisableTriangle("disable-ifcvt-triangle", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:68: constructor_uses_global_object: The constructor of global object "DisableTriangle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTriangle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| static cl::opt DisableSimpleF("disable-ifcvt-simple-false", +# 67| cl::init(false), cl::Hidden); +# 68|-> static cl::opt DisableTriangle("disable-ifcvt-triangle", +# 69| cl::init(false), cl::Hidden); +# 70| static cl::opt DisableTriangleR("disable-ifcvt-triangle-rev", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:70: constructor_uses_global_object: The constructor of global object "DisableTriangleR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTriangleR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| static cl::opt DisableTriangle("disable-ifcvt-triangle", +# 69| cl::init(false), cl::Hidden); +# 70|-> static cl::opt DisableTriangleR("disable-ifcvt-triangle-rev", +# 71| cl::init(false), cl::Hidden); +# 72| static cl::opt DisableTriangleF("disable-ifcvt-triangle-false", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:72: constructor_uses_global_object: The constructor of global object "DisableTriangleF" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTriangleF" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| static cl::opt DisableTriangleR("disable-ifcvt-triangle-rev", +# 71| cl::init(false), cl::Hidden); +# 72|-> static cl::opt DisableTriangleF("disable-ifcvt-triangle-false", +# 73| cl::init(false), cl::Hidden); +# 74| static cl::opt DisableDiamond("disable-ifcvt-diamond", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:74: constructor_uses_global_object: The constructor of global object "DisableDiamond" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDiamond" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| static cl::opt DisableTriangleF("disable-ifcvt-triangle-false", +# 73| cl::init(false), cl::Hidden); +# 74|-> static cl::opt DisableDiamond("disable-ifcvt-diamond", +# 75| cl::init(false), cl::Hidden); +# 76| static cl::opt DisableForkedDiamond("disable-ifcvt-forked-diamond", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:76: constructor_uses_global_object: The constructor of global object "DisableForkedDiamond" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableForkedDiamond" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| static cl::opt DisableDiamond("disable-ifcvt-diamond", +# 75| cl::init(false), cl::Hidden); +# 76|-> static cl::opt DisableForkedDiamond("disable-ifcvt-forked-diamond", +# 77| cl::init(false), cl::Hidden); +# 78| static cl::opt IfCvtBranchFold("ifcvt-branch-fold", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/IfConversion.cpp:78: constructor_uses_global_object: The constructor of global object "IfCvtBranchFold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IfCvtBranchFold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| static cl::opt DisableForkedDiamond("disable-ifcvt-forked-diamond", +# 77| cl::init(false), cl::Hidden); +# 78|-> static cl::opt IfCvtBranchFold("ifcvt-branch-fold", +# 79| cl::init(true), cl::Hidden); +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ImplicitNullChecks.cpp:62: constructor_uses_global_object: The constructor of global object "PageSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PageSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| using namespace llvm; +# 61| +# 62|-> static cl::opt PageSize("imp-null-check-page-size", +# 63| cl::desc("The page size of the target in bytes"), +# 64| cl::init(4096), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ImplicitNullChecks.cpp:66: constructor_uses_global_object: The constructor of global object "MaxInstsToConsider" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxInstsToConsider" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| cl::init(4096), cl::Hidden); +# 65| +# 66|-> static cl::opt MaxInstsToConsider( +# 67| "imp-null-max-insts-to-consider", +# 68| cl::desc("The max number of instructions to consider hoisting loads over " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InlineSpiller.cpp:75: constructor_uses_global_object: The constructor of global object "DisableHoisting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableHoisting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| STATISTIC(NumRemats, "Number of rematerialized defs for spilling"); +# 74| +# 75|-> static cl::opt DisableHoisting("disable-spill-hoist", cl::Hidden, +# 76| cl::desc("Disable inline spill hoisting")); +# 77| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InlineSpiller.cpp:78: constructor_uses_global_object: The constructor of global object "RestrictStatepointRemat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RestrictStatepointRemat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| cl::desc("Disable inline spill hoisting")); +# 77| static cl::opt +# 78|-> RestrictStatepointRemat("restrict-statepoint-remat", +# 79| cl::init(false), cl::Hidden, +# 80| cl::desc("Restrict remat for statepoint operands")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InterleavedAccessPass.cpp:78: constructor_uses_global_object: The constructor of global object "LowerInterleavedAccesses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LowerInterleavedAccesses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| #define DEBUG_TYPE "interleaved-access" +# 77| +# 78|-> static cl::opt LowerInterleavedAccesses( +# 79| "lower-interleaved-accesses", +# 80| cl::desc("Enable lowering interleaved accesses to intrinsics"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/InterleavedLoadCombinePass.cpp:57: constructor_uses_global_object: The constructor of global object "::DisableInterleavedLoadCombine" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisableInterleavedLoadCombine" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| /// Option to disable the pass +# 57|-> static cl::opt DisableInterleavedLoadCombine( +# 58| "disable-" DEBUG_TYPE, cl::init(false), cl::Hidden, +# 59| cl::desc("Disable combining of interleaved loads")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LLVMTargetMachine.cpp:37: constructor_uses_global_object: The constructor of global object "EnableTrapUnreachable" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTrapUnreachable" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static cl::opt +# 37|-> EnableTrapUnreachable("trap-unreachable", cl::Hidden, +# 38| cl::desc("Enable generating trap for unreachable")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp:141: constructor_uses_global_object: The constructor of global object "EmulateOldLDV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmulateOldLDV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 139| // Act more like the VarLoc implementation, by propagating some locations too +# 140| // far and ignoring some transfers. +# 141|-> static cl::opt EmulateOldLDV("emulate-old-livedebugvalues", cl::Hidden, +# 142| cl::desc("Act like old LiveDebugValues did"), +# 143| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp:155: constructor_uses_global_object: The constructor of global object "StackWorkingSetLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackWorkingSetLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| // consuming all the developer's memory. +# 154| static cl::opt +# 155|-> StackWorkingSetLimit("livedebugvalues-max-stack-slots", cl::Hidden, +# 156| cl::desc("livedebugvalues-stack-ws-limit"), +# 157| cl::init(250)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:41: constructor_uses_global_object: The constructor of global object "ForceInstrRefLDV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceInstrRefLDV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> ForceInstrRefLDV("force-instr-ref-livedebugvalues", cl::Hidden, +# 42| cl::desc("Use instruction-ref based LiveDebugValues with " +# 43| "normal DBG_VALUE inputs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:46: constructor_uses_global_object: The constructor of global object "ValueTrackingVariableLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ValueTrackingVariableLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| cl::init(false)); +# 45| +# 46|-> static cl::opt ValueTrackingVariableLocations( +# 47| "experimental-debug-variable-locations", +# 48| cl::desc("Use experimental new value-tracking variable locations")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:52: constructor_uses_global_object: The constructor of global object "InputBBLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InputBBLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| // Options to prevent pathological compile-time behavior. If InputBBLimit and +# 51| // InputDbgValueLimit are both exceeded, range extension is disabled. +# 52|-> static cl::opt InputBBLimit( +# 53| "livedebugvalues-input-bb-limit", +# 54| cl::desc("Maximum input basic blocks before DBG_VALUE limit applies"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp:56: constructor_uses_global_object: The constructor of global object "InputDbgValueLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InputDbgValueLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| cl::desc("Maximum input basic blocks before DBG_VALUE limit applies"), +# 55| cl::init(10000), cl::Hidden); +# 56|-> static cl::opt InputDbgValueLimit( +# 57| "livedebugvalues-input-dbg-value-limit", +# 58| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveDebugVariables.cpp:70: constructor_uses_global_object: The constructor of global object "EnableLDV" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLDV" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| +# 69| static cl::opt +# 70|-> EnableLDV("live-debug-variables", cl::init(true), +# 71| cl::desc("Enable the live debug variables pass"), cl::Hidden); +# 72| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/CodeGen/LiveDebugVariables.cpp:168: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/lib/CodeGen/LiveDebugVariables.cpp:168: leaked_storage: Ignoring storage allocated by "this->LocNos.release()" leaks it. +# 166| std::copy(Other.loc_nos_begin(), Other.loc_nos_end(), loc_nos_begin()); +# 167| } else { +# 168|-> LocNos.release(); +# 169| } +# 170| LocNoCount = Other.getLocNoCount(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/LiveInterval.cpp:725: var_decl: Declaring variable "Updater". +llvm-17.0.6.src/lib/CodeGen/LiveInterval.cpp:729: uninit_use_in_call: Using uninitialized value "Updater.ReadI" when calling "~LiveRangeUpdater". +llvm-17.0.6.src/lib/CodeGen/LiveInterval.cpp:729: uninit_use_in_call: Using uninitialized value "Updater.WriteI" when calling "~LiveRangeUpdater". +# 727| if (S.valno == RHSValNo) +# 728| Updater.add(S.start, S.end, LHSValNo); +# 729|-> } +# 730| +# 731| /// MergeValueNumberInto - This method is called when two value nubmers + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/LiveIntervals.cpp:79: constructor_uses_global_object: The constructor of global object "llvm::UseSegmentSetForPhysRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseSegmentSetForPhysRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| namespace llvm { +# 78| +# 79|-> cl::opt UseSegmentSetForPhysRegs( +# 80| "use-segment-set-for-physregs", cl::Hidden, cl::init(true), +# 81| cl::desc( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/LiveRangeCalc.cpp:63: var_decl: Declaring variable "Updater". +llvm-17.0.6.src/lib/CodeGen/LiveRangeCalc.cpp:81: uninit_use_in_call: Using uninitialized value "Updater.ReadI" when calling "setDest". +llvm-17.0.6.src/lib/CodeGen/LiveRangeCalc.cpp:81: uninit_use_in_call: Using uninitialized value "Updater.WriteI" when calling "setDest". +# 79| Map[MBB] = LiveOutPair(I.Value, nullptr); +# 80| } +# 81|-> Updater.setDest(&I.LR); +# 82| Updater.add(Start, End, I.Value); +# 83| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/LiveRangeCalc.cpp:63: var_decl: Declaring variable "Updater". +llvm-17.0.6.src/lib/CodeGen/LiveRangeCalc.cpp:85: uninit_use_in_call: Using uninitialized value "Updater.ReadI" when calling "~LiveRangeUpdater". +llvm-17.0.6.src/lib/CodeGen/LiveRangeCalc.cpp:85: uninit_use_in_call: Using uninitialized value "Updater.WriteI" when calling "~LiveRangeUpdater". +# 83| } +# 84| LiveIn.clear(); +# 85|-> } +# 86| +# 87| void LiveRangeCalc::extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRCanonicalizerPass.cpp:41: constructor_uses_global_object: The constructor of global object "CanonicalizeFunctionNumber" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CanonicalizeFunctionNumber" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> CanonicalizeFunctionNumber("canon-nth-function", cl::Hidden, cl::init(~0u), +# 42| cl::value_desc("N"), +# 43| cl::desc("Function number to canonicalize.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRFSDiscriminator.cpp:38: constructor_uses_global_object: The constructor of global object "ImprovedFSDiscriminator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ImprovedFSDiscriminator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| // TODO(xur): Remove this option and related code once we make true as the +# 37| // default. +# 38|-> cl::opt ImprovedFSDiscriminator( +# 39| "improved-fs-discriminator", cl::Hidden, cl::init(false), +# 40| cl::desc("New FS discriminators encoding (incompatible with the original " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRPrinter.cpp:65: constructor_uses_global_object: The constructor of global object "SimplifyMIR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SimplifyMIR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| using namespace llvm; +# 64| +# 65|-> static cl::opt SimplifyMIR( +# 66| "simplify-mir", cl::Hidden, +# 67| cl::desc("Leave out unnecessary information when printing MIR")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRPrinter.cpp:69: constructor_uses_global_object: The constructor of global object "PrintLocations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintLocations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::desc("Leave out unnecessary information when printing MIR")); +# 68| +# 69|-> static cl::opt PrintLocations("mir-debug-loc", cl::Hidden, cl::init(true), +# 70| cl::desc("Print MIR debug-locations")); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:44: constructor_uses_global_object: The constructor of global object "ShowFSBranchProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowFSBranchProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| #define DEBUG_TYPE "fs-profile-loader" +# 43| +# 44|-> static cl::opt ShowFSBranchProb( +# 45| "show-fs-branchprob", cl::Hidden, cl::init(false), +# 46| cl::desc("Print setting flow sensitive branch probabilities")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:47: constructor_uses_global_object: The constructor of global object "FSProfileDebugProbDiffThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSProfileDebugProbDiffThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| "show-fs-branchprob", cl::Hidden, cl::init(false), +# 46| cl::desc("Print setting flow sensitive branch probabilities")); +# 47|-> static cl::opt FSProfileDebugProbDiffThreshold( +# 48| "fs-profile-debug-prob-diff-threshold", cl::init(10), +# 49| cl::desc("Only show debug message if the branch probility is greater than " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:52: constructor_uses_global_object: The constructor of global object "FSProfileDebugBWThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSProfileDebugBWThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| "this value (in percentage).")); +# 51| +# 52|-> static cl::opt FSProfileDebugBWThreshold( +# 53| "fs-profile-debug-bw-threshold", cl::init(10000), +# 54| cl::desc("Only show debug message if the source branch weight is greater " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:57: constructor_uses_global_object: The constructor of global object "ViewBFIBefore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewBFIBefore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| " than this value.")); +# 56| +# 57|-> static cl::opt ViewBFIBefore("fs-viewbfi-before", cl::Hidden, +# 58| cl::init(false), +# 59| cl::desc("View BFI before MIR loader")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRSampleProfile.cpp:60: constructor_uses_global_object: The constructor of global object "ViewBFIAfter" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ViewBFIAfter" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(false), +# 59| cl::desc("View BFI before MIR loader")); +# 60|-> static cl::opt ViewBFIAfter("fs-viewbfi-after", cl::Hidden, +# 61| cl::init(false), +# 62| cl::desc("View BFI after MIR loader")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MIRVRegNamerUtils.cpp:19: constructor_uses_global_object: The constructor of global object "UseStableNamerHash" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseStableNamerHash" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 17| +# 18| static cl::opt +# 19|-> UseStableNamerHash("mir-vreg-namer-use-stable-hash", cl::init(false), +# 20| cl::Hidden, +# 21| cl::desc("Use Stable Hashing for MIR VReg Renaming")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MLRegallocEvictAdvisor.cpp:57: constructor_uses_global_object: The constructor of global object "InteractiveChannelBaseName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveChannelBaseName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| #endif +# 56| +# 57|-> static cl::opt InteractiveChannelBaseName( +# 58| "regalloc-evict-interactive-channel-base", cl::Hidden, +# 59| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MLRegallocPriorityAdvisor.cpp:44: constructor_uses_global_object: The constructor of global object "InteractiveChannelBaseName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InteractiveChannelBaseName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| using namespace llvm; +# 43| +# 44|-> static cl::opt InteractiveChannelBaseName( +# 45| "regalloc-priority-interactive-channel-base", cl::Hidden, +# 46| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBasicBlock.cpp:45: constructor_uses_global_object: The constructor of global object "PrintSlotIndexes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintSlotIndexes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| #define DEBUG_TYPE "codegen" +# 44| +# 45|-> static cl::opt PrintSlotIndexes( +# 46| "print-slotindexes", +# 47| cl::desc("When printing machine IR, annotate instructions and blocks with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockFrequencyInfo.cpp:33: constructor_uses_global_object: The constructor of global object "llvm::ViewMachineBlockFreqPropagationDAG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewMachineBlockFreqPropagationDAG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| +# 32| namespace llvm { +# 33|-> static cl::opt ViewMachineBlockFreqPropagationDAG( +# 34| "view-machine-block-freq-propagation-dags", cl::Hidden, +# 35| cl::desc("Pop up a window to show a dag displaying how machine block " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockFrequencyInfo.cpp:48: constructor_uses_global_object: The constructor of global object "llvm::ViewBlockLayoutWithBFI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ViewBlockLayoutWithBFI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| // Similar option above, but used to control BFI display only after MBP pass +# 48|-> cl::opt ViewBlockLayoutWithBFI( +# 49| "view-block-layout-with-bfi", cl::Hidden, +# 50| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockFrequencyInfo.cpp:72: constructor_uses_global_object: The constructor of global object "llvm::PrintMachineBlockFreq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintMachineBlockFreq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| extern cl::opt ViewHotFreqPercent; +# 71| +# 72|-> static cl::opt PrintMachineBlockFreq( +# 73| "print-machine-bfi", cl::init(false), cl::Hidden, +# 74| cl::desc("Print the machine block frequency info.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:87: constructor_uses_global_object: The constructor of global object "AlignAllBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignAllBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| "Potential frequency of taking unconditional branches"); +# 86| +# 87|-> static cl::opt AlignAllBlock( +# 88| "align-all-blocks", +# 89| cl::desc("Force the alignment of all blocks in the function in log2 format " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:93: constructor_uses_global_object: The constructor of global object "AlignAllNonFallThruBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignAllNonFallThruBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| cl::init(0), cl::Hidden); +# 92| +# 93|-> static cl::opt AlignAllNonFallThruBlocks( +# 94| "align-all-nofallthru-blocks", +# 95| cl::desc("Force the alignment of all blocks that have no fall-through " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:100: constructor_uses_global_object: The constructor of global object "MaxBytesForAlignmentOverride" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxBytesForAlignmentOverride" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| cl::init(0), cl::Hidden); +# 99| +# 100|-> static cl::opt MaxBytesForAlignmentOverride( +# 101| "max-bytes-for-alignment", +# 102| cl::desc("Forces the maximum bytes allowed to be emitted when padding for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:107: constructor_uses_global_object: The constructor of global object "ExitBlockBias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExitBlockBias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| +# 106| // FIXME: Find a good default for this flag and remove the flag. +# 107|-> static cl::opt ExitBlockBias( +# 108| "block-placement-exit-block-bias", +# 109| cl::desc("Block frequency percentage a loop exit block needs " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:116: constructor_uses_global_object: The constructor of global object "LoopToColdBlockRatio" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoopToColdBlockRatio" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| // - Outlining: placement of a basic block outside the chain or hot path. +# 115| +# 116|-> static cl::opt LoopToColdBlockRatio( +# 117| "loop-to-cold-block-ratio", +# 118| cl::desc("Outline loop blocks from loop chain if (frequency of loop) / " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:122: constructor_uses_global_object: The constructor of global object "ForceLoopColdBlock" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceLoopColdBlock" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 120| cl::init(5), cl::Hidden); +# 121| +# 122|-> static cl::opt ForceLoopColdBlock( +# 123| "force-loop-cold-block", +# 124| cl::desc("Force outlining cold blocks from loops."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:128: constructor_uses_global_object: The constructor of global object "PreciseRotationCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreciseRotationCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| +# 127| static cl::opt +# 128|-> PreciseRotationCost("precise-rotation-cost", +# 129| cl::desc("Model the cost of loop rotation more " +# 130| "precisely by using profile data."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:134: constructor_uses_global_object: The constructor of global object "ForcePreciseRotationCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForcePreciseRotationCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| +# 133| static cl::opt +# 134|-> ForcePreciseRotationCost("force-precise-rotation-cost", +# 135| cl::desc("Force the use of precise cost " +# 136| "loop rotation strategy."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:139: constructor_uses_global_object: The constructor of global object "MisfetchCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MisfetchCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 137| cl::init(false), cl::Hidden); +# 138| +# 139|-> static cl::opt MisfetchCost( +# 140| "misfetch-cost", +# 141| cl::desc("Cost that models the probabilistic risk of an instruction " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:146: constructor_uses_global_object: The constructor of global object "JumpInstCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpInstCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 144| cl::init(1), cl::Hidden); +# 145| +# 146|-> static cl::opt JumpInstCost("jump-inst-cost", +# 147| cl::desc("Cost of jump instructions."), +# 148| cl::init(1), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:150: constructor_uses_global_object: The constructor of global object "TailDupPlacement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 148| cl::init(1), cl::Hidden); +# 149| static cl::opt +# 150|-> TailDupPlacement("tail-dup-placement", +# 151| cl::desc("Perform tail duplication during placement. " +# 152| "Creates more fallthrough opportunites in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:157: constructor_uses_global_object: The constructor of global object "BranchFoldPlacement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BranchFoldPlacement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 155| +# 156| static cl::opt +# 157|-> BranchFoldPlacement("branch-fold-placement", +# 158| cl::desc("Perform branch folding during placement. " +# 159| "Reduces code size."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:163: constructor_uses_global_object: The constructor of global object "TailDupPlacementThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacementThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| +# 162| // Heuristic for tail duplication. +# 163|-> static cl::opt TailDupPlacementThreshold( +# 164| "tail-dup-placement-threshold", +# 165| cl::desc("Instruction cutoff for tail duplication during layout. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:171: constructor_uses_global_object: The constructor of global object "TailDupPlacementAggressiveThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacementAggressiveThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 169| +# 170| // Heuristic for aggressive tail duplication. +# 171|-> static cl::opt TailDupPlacementAggressiveThreshold( +# 172| "tail-dup-placement-aggressive-threshold", +# 173| cl::desc("Instruction cutoff for aggressive tail duplication during " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:179: constructor_uses_global_object: The constructor of global object "TailDupPlacementPenalty" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupPlacementPenalty" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 177| +# 178| // Heuristic for tail duplication. +# 179|-> static cl::opt TailDupPlacementPenalty( +# 180| "tail-dup-placement-penalty", +# 181| cl::desc("Cost penalty for blocks that can avoid breaking CFG by copying. " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:189: constructor_uses_global_object: The constructor of global object "TailDupProfilePercentThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupProfilePercentThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 187| +# 188| // Heuristic for tail duplication if profile count is used in cost model. +# 189|-> static cl::opt TailDupProfilePercentThreshold( +# 190| "tail-dup-profile-percent-threshold", +# 191| cl::desc("If profile count information is used in tail duplication cost " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:197: constructor_uses_global_object: The constructor of global object "TriangleChainCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TriangleChainCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 195| +# 196| // Heuristic for triangle chains. +# 197|-> static cl::opt TriangleChainCount( +# 198| "triangle-chain-count", +# 199| cl::desc("Number of triangle-shaped-CFG's that need to be in a row for the " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:209: constructor_uses_global_object: The constructor of global object "RenumberBlocksBeforeView" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RenumberBlocksBeforeView" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 207| // With this option on, the basic blocks are renumbered in function layout +# 208| // order. For debugging only. +# 209|-> static cl::opt RenumberBlocksBeforeView( +# 210| "renumber-blocks-before-view", +# 211| cl::desc( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:2562: var_decl: Declaring variable "LoopBlockSet". +llvm-17.0.6.src/lib/CodeGen/MachineBlockPlacement.cpp:2593: uninit_use: Using uninitialized value "LoopBlockSet". Field "LoopBlockSet.vector_.InlineElts" is uninitialized. +# 2591| LoopBlockSet.insert(L.block_begin(), L.block_end()); +# 2592| +# 2593|-> return LoopBlockSet; +# 2594| } +# 2595| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBranchProbabilityInfo.cpp:28: constructor_uses_global_object: The constructor of global object "llvm::StaticLikelyProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::StaticLikelyProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| namespace llvm { +# 27| cl::opt +# 28|-> StaticLikelyProb("static-likely-prob", +# 29| cl::desc("branch probability threshold in percentage" +# 30| "to be considered very likely"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineBranchProbabilityInfo.cpp:33: constructor_uses_global_object: The constructor of global object "llvm::ProfileLikelyProb" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileLikelyProb" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| cl::init(80), cl::Hidden); +# 32| +# 33|-> cl::opt ProfileLikelyProb( +# 34| "profile-likely-prob", +# 35| cl::desc("branch probability threshold in percentage to be considered" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCFGPrinter.cpp:28: constructor_uses_global_object: The constructor of global object "MCFGFuncName[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCFGFuncName[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| +# 27| static cl::opt +# 28|-> MCFGFuncName("mcfg-func-name", cl::Hidden, +# 29| cl::desc("The name of a function (or its substring)" +# 30| " whose CFG is viewed/printed.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCFGPrinter.cpp:32: constructor_uses_global_object: The constructor of global object "MCFGDotFilenamePrefix[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCFGDotFilenamePrefix[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| " whose CFG is viewed/printed.")); +# 31| +# 32|-> static cl::opt MCFGDotFilenamePrefix( +# 33| "mcfg-dot-filename-prefix", cl::Hidden, +# 34| cl::desc("The prefix used for the Machine CFG dot file names.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCFGPrinter.cpp:37: constructor_uses_global_object: The constructor of global object "CFGOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CFGOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static cl::opt +# 37|-> CFGOnly("dot-mcfg-only", cl::init(false), cl::Hidden, +# 38| cl::desc("Print only the CFG without blocks body")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCSE.cpp:65: constructor_uses_global_object: The constructor of global object "CSUsesThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CSUsesThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| // Threshold to avoid excessive cost to compute isProfitableToCSE. +# 64| static cl::opt +# 65|-> CSUsesThreshold("csuses-threshold", cl::Hidden, cl::init(1024), +# 66| cl::desc("Threshold for the size of CSUses")); +# 67| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCombiner.cpp:42: constructor_uses_global_object: The constructor of global object "inc_threshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "inc_threshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> inc_threshold("machine-combiner-inc-threshold", cl::Hidden, +# 43| cl::desc("Incremental depth computation will be used for basic " +# 44| "blocks with more instructions."), cl::init(500)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCombiner.cpp:46: constructor_uses_global_object: The constructor of global object "dump_intrs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "dump_intrs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| "blocks with more instructions."), cl::init(500)); +# 45| +# 46|-> static cl::opt dump_intrs("machine-combiner-dump-subst-intrs", cl::Hidden, +# 47| cl::desc("Dump all substituted intrs"), +# 48| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCombiner.cpp:57: constructor_uses_global_object: The constructor of global object "VerifyPatternOrder" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyPatternOrder" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::init(true)); +# 56| #else +# 57|-> static cl::opt VerifyPatternOrder( +# 58| "machine-combiner-verify-pattern-order", cl::Hidden, +# 59| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCopyPropagation.cpp:88: constructor_uses_global_object: The constructor of global object "MCPUseCopyInstr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCPUseCopyInstr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| "Controls which register COPYs are forwarded"); +# 87| +# 88|-> static cl::opt MCPUseCopyInstr("mcp-use-is-copy-instr", cl::init(false), +# 89| cl::Hidden); +# 90| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineCopyPropagation.cpp:91: constructor_uses_global_object: The constructor of global object "EnableSpillageCopyElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSpillageCopyElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| cl::Hidden); +# 90| static cl::opt +# 91|-> EnableSpillageCopyElimination("enable-spill-copy-elim", cl::Hidden); +# 92| +# 93| namespace { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineDominators.cpp:33: constructor_uses_global_object: The constructor of global object "VerifyMachineDomInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyMachineDomInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| } // namespace llvm +# 32| +# 33|-> static cl::opt VerifyMachineDomInfoX( +# 34| "verify-machine-dom-info", cl::location(VerifyMachineDomInfo), cl::Hidden, +# 35| cl::desc("Verify machine dominator info (time consuming)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunction.cpp:84: constructor_uses_global_object: The constructor of global object "AlignAllFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignAllFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| #define DEBUG_TYPE "codegen" +# 83| +# 84|-> static cl::opt AlignAllFunctions( +# 85| "align-all-functions", +# 86| cl::desc("Force the alignment of all functions in log2 format (e.g. 4 " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunctionSplitter.cpp:53: constructor_uses_global_object: The constructor of global object "PercentileCutoff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PercentileCutoff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| // Intel CPUs. +# 52| static cl::opt +# 53|-> PercentileCutoff("mfs-psi-cutoff", +# 54| cl::desc("Percentile profile summary cutoff used to " +# 55| "determine cold blocks. Unused if set to zero."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunctionSplitter.cpp:58: constructor_uses_global_object: The constructor of global object "ColdCountThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdCountThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::init(999950), cl::Hidden); +# 57| +# 58|-> static cl::opt ColdCountThreshold( +# 59| "mfs-count-threshold", +# 60| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineFunctionSplitter.cpp:64: constructor_uses_global_object: The constructor of global object "SplitAllEHCode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitAllEHCode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| cl::init(1), cl::Hidden); +# 63| +# 64|-> static cl::opt SplitAllEHCode( +# 65| "mfs-split-ehcode", +# 66| cl::desc("Splits all EH code and it's descendants by default."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:62: constructor_uses_global_object: The constructor of global object "AvoidSpeculation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AvoidSpeculation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> AvoidSpeculation("avoid-speculation", +# 63| cl::desc("MachineLICM should avoid speculation"), +# 64| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:67: constructor_uses_global_object: The constructor of global object "HoistCheapInsts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HoistCheapInsts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl::opt +# 67|-> HoistCheapInsts("hoist-cheap-insts", +# 68| cl::desc("MachineLICM should hoist even cheap instructions"), +# 69| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:72: constructor_uses_global_object: The constructor of global object "HoistConstStores" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HoistConstStores" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| +# 71| static cl::opt +# 72|-> HoistConstStores("hoist-const-stores", +# 73| cl::desc("Hoist invariant stores"), +# 74| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:78: constructor_uses_global_object: The constructor of global object "BlockFrequencyRatioThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockFrequencyRatioThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| // is based on empirical data on a single target and is subject to tuning. +# 77| static cl::opt +# 78|-> BlockFrequencyRatioThreshold("block-freq-ratio-threshold", +# 79| cl::desc("Do not hoist instructions if target" +# 80| "block is N times hotter than the source."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineLICM.cpp:86: constructor_uses_global_object: The constructor of global object "DisableHoistingToHotterBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableHoistingToHotterBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> DisableHoistingToHotterBlocks("disable-hoisting-to-hotter-blocks", +# 87| cl::desc("Disable hoisting instructions to" +# 88| " hotter blocks"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineModuleInfo.cpp:35: constructor_uses_global_object: The constructor of global object "DisableDebugInfoPrinting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDebugInfoPrinting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> DisableDebugInfoPrinting("disable-debug-info-print", cl::Hidden, +# 36| cl::desc("Disable debug info printing")); +# 37| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOperand.cpp:36: constructor_uses_global_object: The constructor of global object "PrintRegMaskNumRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintRegMaskNumRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> PrintRegMaskNumRegs("print-regmask-num-regs", +# 37| cl::desc("Number of registers to limit to when " +# 38| "printing regmask operands in IR dumps. " + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/CodeGen/MachineOperand.cpp:1166: overrun-call: Overrunning callee's array of size 8 by passing argument "this->getSuccessOrdering()" (which evaluates to 15) in call to "toIRString". +# 1164| +# 1165| if (getSuccessOrdering() != AtomicOrdering::NotAtomic) +# 1166|-> OS << toIRString(getSuccessOrdering()) << ' '; +# 1167| if (getFailureOrdering() != AtomicOrdering::NotAtomic) +# 1168| OS << toIRString(getFailureOrdering()) << ' '; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/CodeGen/MachineOperand.cpp:1168: overrun-call: Overrunning callee's array of size 8 by passing argument "this->getFailureOrdering()" (which evaluates to 15) in call to "toIRString". +# 1166| OS << toIRString(getSuccessOrdering()) << ' '; +# 1167| if (getFailureOrdering() != AtomicOrdering::NotAtomic) +# 1168|-> OS << toIRString(getFailureOrdering()) << ' '; +# 1169| +# 1170| if (getMemoryType().isValid()) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOutliner.cpp:106: constructor_uses_global_object: The constructor of global object "EnableLinkOnceODROutlining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLinkOnceODROutlining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| // this is off by default. It should, however, be the default behaviour in +# 105| // LTO. +# 106|-> static cl::opt EnableLinkOnceODROutlining( +# 107| "enable-linkonceodr-outlining", cl::Hidden, +# 108| cl::desc("Enable the machine outliner on linkonceodr functions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOutliner.cpp:114: constructor_uses_global_object: The constructor of global object "OutlinerReruns" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutlinerReruns" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| /// as the outliner will run at least one time. The default value is set to 0, +# 113| /// meaning the outliner will run one time and rerun zero times after that. +# 114|-> static cl::opt OutlinerReruns( +# 115| "machine-outliner-reruns", cl::init(0), cl::Hidden, +# 116| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineOutliner.cpp:119: constructor_uses_global_object: The constructor of global object "OutlinerBenefitThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutlinerBenefitThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| "Number of times to rerun the outliner after the initial outline")); +# 118| +# 119|-> static cl::opt OutlinerBenefitThreshold( +# 120| "outliner-benefit-threshold", cl::init(1), cl::Hidden, +# 121| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:114: constructor_uses_global_object: The constructor of global object "EnableSWP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSWP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| +# 113| /// A command line option to turn software pipelining on or off. +# 114|-> static cl::opt EnableSWP("enable-pipeliner", cl::Hidden, cl::init(true), +# 115| cl::desc("Enable Software Pipelining")); +# 116| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:118: constructor_uses_global_object: The constructor of global object "EnableSWPOptSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSWPOptSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| +# 117| /// A command line option to enable SWP at -Os. +# 118|-> static cl::opt EnableSWPOptSize("enable-pipeliner-opt-size", +# 119| cl::desc("Enable SWP at Os."), cl::Hidden, +# 120| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:123: constructor_uses_global_object: The constructor of global object "SwpMaxMii" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpMaxMii" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 121| +# 122| /// A command line argument to limit minimum initial interval for pipelining. +# 123|-> static cl::opt SwpMaxMii("pipeliner-max-mii", +# 124| cl::desc("Size limit for the MII."), +# 125| cl::Hidden, cl::init(27)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:129: constructor_uses_global_object: The constructor of global object "SwpForceII" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpForceII" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 127| /// A command line argument to force pipeliner to use specified initial +# 128| /// interval. +# 129|-> static cl::opt SwpForceII("pipeliner-force-ii", +# 130| cl::desc("Force pipeliner to use specified II."), +# 131| cl::Hidden, cl::init(-1)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:135: constructor_uses_global_object: The constructor of global object "SwpMaxStages" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpMaxStages" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| /// A command line argument to limit the number of stages in the pipeline. +# 134| static cl::opt +# 135|-> SwpMaxStages("pipeliner-max-stages", +# 136| cl::desc("Maximum stages allowed in the generated scheduled."), +# 137| cl::Hidden, cl::init(3)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:142: constructor_uses_global_object: The constructor of global object "SwpPruneDeps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpPruneDeps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 140| /// an unrelated Phi. +# 141| static cl::opt +# 142|-> SwpPruneDeps("pipeliner-prune-deps", +# 143| cl::desc("Prune dependences between unrelated Phi nodes."), +# 144| cl::Hidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:149: constructor_uses_global_object: The constructor of global object "SwpPruneLoopCarried" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpPruneLoopCarried" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| /// dependences. +# 148| static cl::opt +# 149|-> SwpPruneLoopCarried("pipeliner-prune-loop-carried", +# 150| cl::desc("Prune loop carried order dependences."), +# 151| cl::Hidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:157: constructor_uses_global_object: The constructor of global object "SwpIgnoreRecMII" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpIgnoreRecMII" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 155| #endif +# 156| +# 157|-> static cl::opt SwpIgnoreRecMII("pipeliner-ignore-recmii", +# 158| cl::ReallyHidden, +# 159| cl::desc("Ignore RecMII")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:161: constructor_uses_global_object: The constructor of global object "SwpShowResMask" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpShowResMask" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 159| cl::desc("Ignore RecMII")); +# 160| +# 161|-> static cl::opt SwpShowResMask("pipeliner-show-mask", cl::Hidden, +# 162| cl::init(false)); +# 163| static cl::opt SwpDebugResource("pipeliner-dbg-res", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:163: constructor_uses_global_object: The constructor of global object "SwpDebugResource" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwpDebugResource" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| static cl::opt SwpShowResMask("pipeliner-show-mask", cl::Hidden, +# 162| cl::init(false)); +# 163|-> static cl::opt SwpDebugResource("pipeliner-dbg-res", cl::Hidden, +# 164| cl::init(false)); +# 165| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:166: constructor_uses_global_object: The constructor of global object "EmitTestAnnotations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmitTestAnnotations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 164| cl::init(false)); +# 165| +# 166|-> static cl::opt EmitTestAnnotations( +# 167| "pipeliner-annotate-for-testing", cl::Hidden, cl::init(false), +# 168| cl::desc("Instead of emitting the pipelined code, annotate instructions " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:172: constructor_uses_global_object: The constructor of global object "ExperimentalCodeGen" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExperimentalCodeGen" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 170| "-modulo-schedule-test pass")); +# 171| +# 172|-> static cl::opt ExperimentalCodeGen( +# 173| "pipeliner-experimental-cg", cl::Hidden, cl::init(false), +# 174| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:180: constructor_uses_global_object: The constructor of global object "llvm::SwpEnableCopyToPhi" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::SwpEnableCopyToPhi" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 178| +# 179| // A command line option to enable the CopyToPhi DAG mutation. +# 180|-> cl::opt SwpEnableCopyToPhi("pipeliner-enable-copytophi", cl::ReallyHidden, +# 181| cl::init(true), +# 182| cl::desc("Enable CopyToPhi DAG Mutation")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachinePipeliner.cpp:186: constructor_uses_global_object: The constructor of global object "llvm::SwpForceIssueWidth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::SwpForceIssueWidth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 184| /// A command line argument to force pipeliner to use specified issue +# 185| /// width. +# 186|-> cl::opt SwpForceIssueWidth( +# 187| "pipeliner-force-issue-width", +# 188| cl::desc("Force pipeliner to use specified issue width."), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineRegisterInfo.cpp:37: constructor_uses_global_object: The constructor of global object "EnableSubRegLiveness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSubRegLiveness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| using namespace llvm; +# 36| +# 37|-> static cl::opt EnableSubRegLiveness("enable-subreg-liveness", cl::Hidden, +# 38| cl::init(true), cl::desc("Enable subregister liveness tracking.")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:80: constructor_uses_global_object: The constructor of global object "llvm::ForceTopDown" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ForceTopDown" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| namespace llvm { +# 79| +# 80|-> cl::opt ForceTopDown("misched-topdown", cl::Hidden, +# 81| cl::desc("Force top-down list scheduling")); +# 82| cl::opt ForceBottomUp("misched-bottomup", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:82: constructor_uses_global_object: The constructor of global object "llvm::ForceBottomUp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ForceBottomUp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| cl::opt ForceTopDown("misched-topdown", cl::Hidden, +# 81| cl::desc("Force top-down list scheduling")); +# 82|-> cl::opt ForceBottomUp("misched-bottomup", cl::Hidden, +# 83| cl::desc("Force bottom-up list scheduling")); +# 84| cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:85: constructor_uses_global_object: The constructor of global object "llvm::DumpCriticalPathLength" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DumpCriticalPathLength" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("Force bottom-up list scheduling")); +# 84| cl::opt +# 85|-> DumpCriticalPathLength("misched-dcpl", cl::Hidden, +# 86| cl::desc("Print critical path length to stdout")); +# 87| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:88: constructor_uses_global_object: The constructor of global object "llvm::VerifyScheduling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::VerifyScheduling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| cl::desc("Print critical path length to stdout")); +# 87| +# 88|-> cl::opt VerifyScheduling( +# 89| "verify-misched", cl::Hidden, +# 90| cl::desc("Verify machine instrs before and after machine scheduling")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:132: constructor_uses_global_object: The constructor of global object "ReadyListLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReadyListLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 130| /// Avoid quadratic complexity in unusually large basic blocks by limiting the +# 131| /// size of the ready lists. +# 132|-> static cl::opt ReadyListLimit("misched-limit", cl::Hidden, +# 133| cl::desc("Limit ready list to N instructions"), cl::init(256)); +# 134| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:135: constructor_uses_global_object: The constructor of global object "EnableRegPressure" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRegPressure" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::desc("Limit ready list to N instructions"), cl::init(256)); +# 134| +# 135|-> static cl::opt EnableRegPressure("misched-regpressure", cl::Hidden, +# 136| cl::desc("Enable register pressure scheduling."), cl::init(true)); +# 137| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:138: constructor_uses_global_object: The constructor of global object "EnableCyclicPath" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCyclicPath" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| cl::desc("Enable register pressure scheduling."), cl::init(true)); +# 137| +# 138|-> static cl::opt EnableCyclicPath("misched-cyclicpath", cl::Hidden, +# 139| cl::desc("Enable cyclic critical path analysis."), cl::init(true)); +# 140| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:141: constructor_uses_global_object: The constructor of global object "EnableMemOpCluster" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemOpCluster" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 139| cl::desc("Enable cyclic critical path analysis."), cl::init(true)); +# 140| +# 141|-> static cl::opt EnableMemOpCluster("misched-cluster", cl::Hidden, +# 142| cl::desc("Enable memop clustering."), +# 143| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:145: constructor_uses_global_object: The constructor of global object "ForceFastCluster" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceFastCluster" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 143| cl::init(true)); +# 144| static cl::opt +# 145|-> ForceFastCluster("force-fast-cluster", cl::Hidden, +# 146| cl::desc("Switch to fast cluster algorithm with the lost " +# 147| "of some fusion opportunities"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:150: constructor_uses_global_object: The constructor of global object "FastClusterThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FastClusterThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 148| cl::init(false)); +# 149| static cl::opt +# 150|-> FastClusterThreshold("fast-cluster-threshold", cl::Hidden, +# 151| cl::desc("The threshold for fast cluster"), +# 152| cl::init(1000)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:173: constructor_uses_global_object: The constructor of global object "MIResourceCutOff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MIResourceCutOff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 171| +# 172| static cl::opt +# 173|-> MIResourceCutOff("misched-resource-cutoff", cl::Hidden, +# 174| cl::desc("Number of intervals to track"), cl::init(10)); +# 175| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:310: constructor_uses_global_object: The constructor of global object "MachineSchedOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MachineSchedOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 308| static cl::opt> +# 310|-> MachineSchedOpt("misched", +# 311| cl::init(&useDefaultMachineSched), cl::Hidden, +# 312| cl::desc("Machine instruction scheduler to use")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:318: constructor_uses_global_object: The constructor of global object "EnableMachineSched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMachineSched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 316| useDefaultMachineSched); +# 317| +# 318|-> static cl::opt EnableMachineSched( +# 319| "enable-misched", +# 320| cl::desc("Enable the machine instruction scheduling pass."), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineScheduler.cpp:323: constructor_uses_global_object: The constructor of global object "EnablePostRAMachineSched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostRAMachineSched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 321| cl::Hidden); +# 322| +# 323|-> static cl::opt EnablePostRAMachineSched( +# 324| "enable-post-misched", +# 325| cl::desc("Enable the post-ra machine instruction scheduling pass."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:68: constructor_uses_global_object: The constructor of global object "SplitEdges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitEdges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| +# 67| static cl::opt +# 68|-> SplitEdges("machine-sink-split", +# 69| cl::desc("Split critical edges during machine sinking"), +# 70| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:73: constructor_uses_global_object: The constructor of global object "UseBlockFreqInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseBlockFreqInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| static cl::opt +# 73|-> UseBlockFreqInfo("machine-sink-bfi", +# 74| cl::desc("Use block frequency info to find successors to sink"), +# 75| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:77: constructor_uses_global_object: The constructor of global object "SplitEdgeProbabilityThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitEdgeProbabilityThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::init(true), cl::Hidden); +# 76| +# 77|-> static cl::opt SplitEdgeProbabilityThreshold( +# 78| "machine-sink-split-probability-threshold", +# 79| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:86: constructor_uses_global_object: The constructor of global object "SinkLoadInstsPerBlockThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkLoadInstsPerBlockThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| cl::init(40), cl::Hidden); +# 85| +# 86|-> static cl::opt SinkLoadInstsPerBlockThreshold( +# 87| "machine-sink-load-instrs-threshold", +# 88| cl::desc("Do not try to find alias store for a load if there is a in-path " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:92: constructor_uses_global_object: The constructor of global object "SinkLoadBlocksThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkLoadBlocksThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| cl::init(2000), cl::Hidden); +# 91| +# 92|-> static cl::opt SinkLoadBlocksThreshold( +# 93| "machine-sink-load-blocks-threshold", +# 94| cl::desc("Do not try to find alias store for a load if the block number in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:99: constructor_uses_global_object: The constructor of global object "SinkInstsIntoCycle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkInstsIntoCycle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| +# 98| static cl::opt +# 99|-> SinkInstsIntoCycle("sink-insts-to-avoid-spills", +# 100| cl::desc("Sink instructions into cycles to avoid " +# 101| "register spills"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineSink.cpp:104: constructor_uses_global_object: The constructor of global object "SinkIntoCycleLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SinkIntoCycleLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| cl::init(false), cl::Hidden); +# 103| +# 104|-> static cl::opt SinkIntoCycleLimit( +# 105| "machine-sink-cycle-limit", +# 106| cl::desc("The maximum number of instructions considered for cycle sinking."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MachineStripDebug.cpp:27: constructor_uses_global_object: The constructor of global object "::OnlyDebugifiedDefault" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::OnlyDebugifiedDefault" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| namespace { +# 26| cl::opt +# 27|-> OnlyDebugifiedDefault("mir-strip-debugify-only", +# 28| cl::desc("Should mir-strip-debug only strip debug " +# 29| "info from debugified modules by default"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/MacroFusion.cpp:31: constructor_uses_global_object: The constructor of global object "EnableMacroFusion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMacroFusion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt EnableMacroFusion("misched-fusion", cl::Hidden, +# 32| cl::desc("Enable scheduling for macro fusion."), cl::init(true)); +# 33| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PHIElimination.cpp:50: constructor_uses_global_object: The constructor of global object "DisableEdgeSplitting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableEdgeSplitting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> DisableEdgeSplitting("disable-phi-elim-edge-splitting", cl::init(false), +# 51| cl::Hidden, cl::desc("Disable critical edge splitting " +# 52| "during PHI elimination")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PHIElimination.cpp:55: constructor_uses_global_object: The constructor of global object "SplitAllCriticalEdges" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitAllCriticalEdges" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| +# 54| static cl::opt +# 55|-> SplitAllCriticalEdges("phi-elim-split-all-critical-edges", cl::init(false), +# 56| cl::Hidden, cl::desc("Split all critical edges during " +# 57| "PHI elimination")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PHIElimination.cpp:59: constructor_uses_global_object: The constructor of global object "NoPhiElimLiveOutEarlyExit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoPhiElimLiveOutEarlyExit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| "PHI elimination")); +# 58| +# 59|-> static cl::opt NoPhiElimLiveOutEarlyExit( +# 60| "no-phi-elim-live-out-early-exit", cl::init(false), cl::Hidden, +# 61| cl::desc("Do not use an early exit if isLiveOutPastPHIs returns true.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:106: constructor_uses_global_object: The constructor of global object "Aggressive" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Aggressive" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 104| // Optimize Extensions +# 105| static cl::opt +# 106|-> Aggressive("aggressive-ext-opt", cl::Hidden, +# 107| cl::desc("Aggressive extension optimization")); +# 108| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:110: constructor_uses_global_object: The constructor of global object "DisablePeephole" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePeephole" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| +# 109| static cl::opt +# 110|-> DisablePeephole("disable-peephole", cl::Hidden, cl::init(false), +# 111| cl::desc("Disable the peephole optimizer")); +# 112| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:117: constructor_uses_global_object: The constructor of global object "DisableAdvCopyOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAdvCopyOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 115| /// bails on everything that is not a copy or a bitcast. +# 116| static cl::opt +# 117|-> DisableAdvCopyOpt("disable-adv-copy-opt", cl::Hidden, cl::init(false), +# 118| cl::desc("Disable advanced copy optimization")); +# 119| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:120: constructor_uses_global_object: The constructor of global object "DisableNAPhysCopyOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableNAPhysCopyOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| cl::desc("Disable advanced copy optimization")); +# 119| +# 120|-> static cl::opt DisableNAPhysCopyOpt( +# 121| "disable-non-allocatable-phys-copy-opt", cl::Hidden, cl::init(false), +# 122| cl::desc("Disable non-allocatable physical register copy optimization")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:126: constructor_uses_global_object: The constructor of global object "RewritePHILimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RewritePHILimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| // Limit the number of PHI instructions to process +# 125| // in PeepholeOptimizer::getNextSource. +# 126|-> static cl::opt RewritePHILimit( +# 127| "rewrite-phi-limit", cl::Hidden, cl::init(10), +# 128| cl::desc("Limit the length of PHI chains to lookup")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PeepholeOptimizer.cpp:132: constructor_uses_global_object: The constructor of global object "MaxRecurrenceChain" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxRecurrenceChain" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 130| // Limit the length of recurrence chain when evaluating the benefit of +# 131| // commuting operands. +# 132|-> static cl::opt MaxRecurrenceChain( +# 133| "recurrence-chain-limit", cl::Hidden, cl::init(3), +# 134| cl::desc("Maximum length of recurrence chain when evaluating the benefit " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:54: constructor_uses_global_object: The constructor of global object "EnablePostRAScheduler" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostRAScheduler" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // override the target. +# 53| static cl::opt +# 54|-> EnablePostRAScheduler("post-RA-scheduler", +# 55| cl::desc("Enable scheduling after register allocation"), +# 56| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:58: constructor_uses_global_object: The constructor of global object "EnableAntiDepBreaking[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAntiDepBreaking[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::init(false), cl::Hidden); +# 57| static cl::opt +# 58|-> EnableAntiDepBreaking("break-anti-dependencies", +# 59| cl::desc("Break post-RA scheduling anti-dependencies: " +# 60| "\"critical\", \"all\", or \"none\""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:65: constructor_uses_global_object: The constructor of global object "DebugDiv" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugDiv" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| // If DebugDiv > 0 then only schedule MBB with (ID % DebugDiv) == DebugMod +# 64| static cl::opt +# 65|-> DebugDiv("postra-sched-debugdiv", +# 66| cl::desc("Debug control MBBs that are scheduled"), +# 67| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PostRASchedulerList.cpp:69: constructor_uses_global_object: The constructor of global object "DebugMod" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugMod" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::init(0), cl::Hidden); +# 68| static cl::opt +# 69|-> DebugMod("postra-sched-debugmod", +# 70| cl::desc("Debug control MBBs that are scheduled"), +# 71| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/PreISelIntrinsicLowering.cpp:38: constructor_uses_global_object: The constructor of global object "MemIntrinsicExpandSizeThresholdOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemIntrinsicExpandSizeThresholdOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| /// size larger than this will be expanded by the pass. Calls of unknown or +# 37| /// lower size will be left for expansion in codegen. +# 38|-> static cl::opt MemIntrinsicExpandSizeThresholdOpt( +# 39| "mem-intrinsic-expand-size", +# 40| cl::desc("Set minimum mem intrinsic size to expand in IR"), cl::init(-1), + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/CodeGen/PrologEpilogInserter.cpp:789: tainted_data_return: Called function "StackBytesFree->find_next(FreeStart)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/CodeGen/PrologEpilogInserter.cpp:789: assign: Assigning: "FreeStart" = "StackBytesFree->find_next(FreeStart)". +llvm-17.0.6.src/lib/CodeGen/PrologEpilogInserter.cpp:823: overflow: The expression "FreeStart + ObjSize" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/CodeGen/PrologEpilogInserter.cpp:823: overflow_sink: "FreeStart + ObjSize", which might be negative, is passed to "StackBytesFree->reset(FreeStart, FreeStart + ObjSize)". +# 821| } +# 822| +# 823|-> StackBytesFree.reset(FreeStart, FreeStart + ObjSize); +# 824| return true; +# 825| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/RDFGraph.cpp:1139: var_decl: Declaring variable "Refs". +llvm-17.0.6.src/lib/CodeGen/RDFGraph.cpp:1145: uninit_use: Using uninitialized value "Refs". Field "Refs.InlineElts" is uninitialized. +# 1143| RA = getNextRelated(IA, RA); +# 1144| } while (RA.Id != 0 && RA.Id != Start); +# 1145|-> return Refs; +# 1146| } +# 1147| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/RDFGraph.cpp:1712: var_decl: Declaring variable "Res". +llvm-17.0.6.src/lib/CodeGen/RDFGraph.cpp:1719: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 1717| N = RA.Addr->getSibling(); +# 1718| } +# 1719|-> return Res; +# 1720| }; +# 1721| NodeList ReachedDefs = getAllNodes(DA.Addr->getReachedDef()); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RDFLiveness.cpp:55: constructor_uses_global_object: The constructor of global object "MaxRecNest" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxRecNest" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| using namespace llvm; +# 54| +# 55|-> static cl::opt MaxRecNest("rdf-liveness-max-rec", cl::init(25), +# 56| cl::Hidden, +# 57| cl::desc("Maximum recursion level")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/RDFLiveness.cpp:108: var_decl: Declaring variable "RDefs". +llvm-17.0.6.src/lib/CodeGen/RDFLiveness.cpp:118: uninit_use: Using uninitialized value "RDefs". Field "RDefs.InlineElts" is uninitialized. +# 116| // If the reference is undefined, there is nothing to do. +# 117| if (RefA.Addr->getFlags() & NodeAttrs::Undef) +# 118|-> return RDefs; +# 119| +# 120| // The initial queue should not have reaching defs for shadows. The + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/RDFLiveness.cpp:108: var_decl: Declaring variable "RDefs". +llvm-17.0.6.src/lib/CodeGen/RDFLiveness.cpp:300: uninit_use: Using uninitialized value "RDefs". Field "RDefs.InlineElts" is uninitialized. +# 298| llvm::erase_if(RDefs, DeadP); +# 299| +# 300|-> return RDefs; +# 301| } +# 302| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocBase.cpp:43: constructor_uses_global_object: The constructor of global object "VerifyRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| // MachineVerifier. +# 42| static cl::opt +# 43|-> VerifyRegAlloc("verify-regalloc", cl::location(RegAllocBase::VerifyEnabled), +# 44| cl::Hidden, cl::desc("Verify during register allocation")); +# 45| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocEvictionAdvisor.cpp:28: constructor_uses_global_object: The constructor of global object "Mode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| using namespace llvm; +# 27| +# 28|-> static cl::opt Mode( +# 29| "regalloc-enable-advisor", cl::Hidden, +# 30| cl::init(RegAllocEvictionAdvisorAnalysis::AdvisorMode::Default), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocEvictionAdvisor.cpp:40: constructor_uses_global_object: The constructor of global object "EnableLocalReassignment" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLocalReassignment" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| "development", "for training"))); +# 39| +# 40|-> static cl::opt EnableLocalReassignment( +# 41| "enable-local-reassign", cl::Hidden, +# 42| cl::desc("Local reassignment can yield better allocation decisions, but " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocEvictionAdvisor.cpp:47: constructor_uses_global_object: The constructor of global object "llvm::EvictInterferenceCutoff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EvictInterferenceCutoff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| namespace llvm { +# 47|-> cl::opt EvictInterferenceCutoff( +# 48| "regalloc-eviction-max-interference-cutoff", cl::Hidden, +# 49| cl::desc("Number of interferences after which we declare " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocFast.cpp:57: constructor_uses_global_object: The constructor of global object "IgnoreMissingDefs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreMissingDefs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| +# 56| // FIXME: Remove this switch when all testcases are fixed! +# 57|-> static cl::opt IgnoreMissingDefs("rafast-ignore-missing-defs", +# 58| cl::Hidden); +# 59| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:86: constructor_uses_global_object: The constructor of global object "SplitSpillMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SplitSpillMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| STATISTIC(NumEvicted, "Number of interferences evicted"); +# 85| +# 86|-> static cl::opt SplitSpillMode( +# 87| "split-spill-mode", cl::Hidden, +# 88| cl::desc("Spill mode for splitting live ranges"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:95: constructor_uses_global_object: The constructor of global object "LastChanceRecoloringMaxDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LastChanceRecoloringMaxDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> LastChanceRecoloringMaxDepth("lcr-max-depth", cl::Hidden, +# 96| cl::desc("Last chance recoloring max depth"), +# 97| cl::init(5)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:99: constructor_uses_global_object: The constructor of global object "LastChanceRecoloringMaxInterference" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LastChanceRecoloringMaxInterference" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| cl::init(5)); +# 98| +# 99|-> static cl::opt LastChanceRecoloringMaxInterference( +# 100| "lcr-max-interf", cl::Hidden, +# 101| cl::desc("Last chance recoloring maximum number of considered" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:105: constructor_uses_global_object: The constructor of global object "ExhaustiveSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExhaustiveSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 103| cl::init(8)); +# 104| +# 105|-> static cl::opt ExhaustiveSearch( +# 106| "exhaustive-register-search", cl::NotHidden, +# 107| cl::desc("Exhaustive Search for registers bypassing the depth " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:111: constructor_uses_global_object: The constructor of global object "EnableDeferredSpilling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDeferredSpilling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| cl::Hidden); +# 110| +# 111|-> static cl::opt EnableDeferredSpilling( +# 112| "enable-deferred-spilling", cl::Hidden, +# 113| cl::desc("Instead of spilling a variable right away, defer the actual " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:121: constructor_uses_global_object: The constructor of global object "CSRFirstTimeCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CSRFirstTimeCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| // FIXME: Find a good default for this flag and remove the flag. +# 120| static cl::opt +# 121|-> CSRFirstTimeCost("regalloc-csr-first-time-cost", +# 122| cl::desc("Cost for first time use of callee-saved register."), +# 123| cl::init(0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:125: constructor_uses_global_object: The constructor of global object "GrowRegionComplexityBudget" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GrowRegionComplexityBudget" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| cl::init(0), cl::Hidden); +# 124| +# 125|-> static cl::opt GrowRegionComplexityBudget( +# 126| "grow-region-complexity-budget", +# 127| cl::desc("growRegion() does not scale with the number of BB edges, so " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:131: constructor_uses_global_object: The constructor of global object "GreedyRegClassPriorityTrumpsGlobalness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GreedyRegClassPriorityTrumpsGlobalness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 129| cl::init(10000), cl::Hidden); +# 130| +# 131|-> static cl::opt GreedyRegClassPriorityTrumpsGlobalness( +# 132| "greedy-regclass-priority-trumps-globalness", +# 133| cl::desc("Change the greedy register allocator's live range priority " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocGreedy.cpp:138: constructor_uses_global_object: The constructor of global object "GreedyReverseLocalAssignment" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GreedyReverseLocalAssignment" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| cl::Hidden); +# 137| +# 138|-> static cl::opt GreedyReverseLocalAssignment( +# 139| "greedy-reverse-local-assignment", +# 140| cl::desc("Reverse allocation order of local live ranges, such that " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocPBQP.cpp:99: constructor_uses_global_object: The constructor of global object "PBQPCoalescing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PBQPCoalescing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| +# 98| static cl::opt +# 99|-> PBQPCoalescing("pbqp-coalescing", +# 100| cl::desc("Attempt coalescing during PBQP register allocation."), +# 101| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocPriorityAdvisor.cpp:23: constructor_uses_global_object: The constructor of global object "Mode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| using namespace llvm; +# 22| +# 23|-> static cl::opt Mode( +# 24| "regalloc-enable-priority-advisor", cl::Hidden, +# 25| cl::init(RegAllocPriorityAdvisorAnalysis::AdvisorMode::Default), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:29: constructor_uses_global_object: The constructor of global object "CopyWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CopyWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| +# 28| using namespace llvm; +# 29|-> cl::opt CopyWeight("regalloc-copy-weight", cl::init(0.2), cl::Hidden); +# 30| cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31| cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:30: constructor_uses_global_object: The constructor of global object "LoadWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoadWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace llvm; +# 29| cl::opt CopyWeight("regalloc-copy-weight", cl::init(0.2), cl::Hidden); +# 30|-> cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31| cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); +# 32| cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:31: constructor_uses_global_object: The constructor of global object "StoreWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StoreWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| cl::opt CopyWeight("regalloc-copy-weight", cl::init(0.2), cl::Hidden); +# 30| cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31|-> cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); +# 32| cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), +# 33| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:32: constructor_uses_global_object: The constructor of global object "CheapRematWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CheapRematWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| cl::opt LoadWeight("regalloc-load-weight", cl::init(4.0), cl::Hidden); +# 31| cl::opt StoreWeight("regalloc-store-weight", cl::init(1.0), cl::Hidden); +# 32|-> cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), +# 33| cl::Hidden); +# 34| cl::opt ExpensiveRematWeight("regalloc-expensive-remat-weight", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegAllocScore.cpp:34: constructor_uses_global_object: The constructor of global object "ExpensiveRematWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpensiveRematWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| cl::opt CheapRematWeight("regalloc-cheap-remat-weight", cl::init(0.2), +# 33| cl::Hidden); +# 34|-> cl::opt ExpensiveRematWeight("regalloc-expensive-remat-weight", +# 35| cl::init(1.0), cl::Hidden); +# 36| #define DEBUG_TYPE "regalloc-score" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterClassInfo.cpp:37: constructor_uses_global_object: The constructor of global object "StressRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| +# 36| static cl::opt +# 37|-> StressRA("stress-regalloc", cl::Hidden, cl::init(0), cl::value_desc("N"), +# 38| cl::desc("Limit all regclasses to N registers")); +# 39| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:75: constructor_uses_global_object: The constructor of global object "EnableJoining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableJoining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| STATISTIC(NumShrinkToUses, "Number of shrinkToUses called"); +# 74| +# 75|-> static cl::opt EnableJoining("join-liveintervals", +# 76| cl::desc("Coalesce copies (default=true)"), +# 77| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:79: constructor_uses_global_object: The constructor of global object "UseTerminalRule" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseTerminalRule" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| cl::init(true), cl::Hidden); +# 78| +# 79|-> static cl::opt UseTerminalRule("terminal-rule", +# 80| cl::desc("Apply the terminal rule"), +# 81| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:85: constructor_uses_global_object: The constructor of global object "EnableJoinSplits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableJoinSplits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| /// Temporary flag to test critical edge unsplitting. +# 84| static cl::opt +# 85|-> EnableJoinSplits("join-splitedges", +# 86| cl::desc("Coalesce copies on split edges (default=subtarget)"), cl::Hidden); +# 87| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:90: constructor_uses_global_object: The constructor of global object "EnableGlobalCopies" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalCopies" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| /// Temporary flag to test global copy optimization. +# 89| static cl::opt +# 90|-> EnableGlobalCopies("join-globalcopies", +# 91| cl::desc("Coalesce copies that span blocks (default=subtarget)"), +# 92| cl::init(cl::BOU_UNSET), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:95: constructor_uses_global_object: The constructor of global object "VerifyCoalescing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyCoalescing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> VerifyCoalescing("verify-coalescing", +# 96| cl::desc("Verify machine instrs before and after register coalescing"), +# 97| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:99: constructor_uses_global_object: The constructor of global object "LateRematUpdateThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LateRematUpdateThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| cl::Hidden); +# 98| +# 99|-> static cl::opt LateRematUpdateThreshold( +# 100| "late-remat-update-threshold", cl::Hidden, +# 101| cl::desc("During rematerialization for a copy, if the def instruction has " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:108: constructor_uses_global_object: The constructor of global object "LargeIntervalSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LargeIntervalSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| cl::init(100)); +# 107| +# 108|-> static cl::opt LargeIntervalSizeThreshold( +# 109| "large-interval-size-threshold", cl::Hidden, +# 110| cl::desc("If the valnos size of an interval is larger than the threshold, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterCoalescer.cpp:114: constructor_uses_global_object: The constructor of global object "LargeIntervalFreqThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LargeIntervalFreqThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| cl::init(100)); +# 113| +# 114|-> static cl::opt LargeIntervalFreqThreshold( +# 115| "large-interval-freq-threshold", cl::Hidden, +# 116| cl::desc("For a large interval, if it is coalesed with other live " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/RegisterUsageInfo.cpp:31: constructor_uses_global_object: The constructor of global object "DumpRegUsage" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DumpRegUsage" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| using namespace llvm; +# 30| +# 31|-> static cl::opt DumpRegUsage( +# 32| "print-regusage", cl::init(false), cl::Hidden, +# 33| cl::desc("print register usage details collected for analysis.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SafeStack.cpp:97: constructor_uses_global_object: The constructor of global object "SafeStackUsePointerAddress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SafeStackUsePointerAddress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| /// access safe stack pointer. +# 96| static cl::opt +# 97|-> SafeStackUsePointerAddress("safestack-use-pointer-address", +# 98| cl::init(false), cl::Hidden); +# 99| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SafeStack.cpp:100: constructor_uses_global_object: The constructor of global object "ClColoring" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClColoring" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| cl::init(false), cl::Hidden); +# 99| +# 100|-> static cl::opt ClColoring("safe-stack-coloring", +# 101| cl::desc("enable safe stack coloring"), +# 102| cl::Hidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SafeStackLayout.cpp:23: constructor_uses_global_object: The constructor of global object "ClLayout" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClLayout" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| #define DEBUG_TYPE "safestacklayout" +# 22| +# 23|-> static cl::opt ClLayout("safe-stack-layout", +# 24| cl::desc("enable safe stack layout"), cl::Hidden, +# 25| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:65: constructor_uses_global_object: The constructor of global object "EnableAASchedMI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAASchedMI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| static cl::opt +# 65|-> EnableAASchedMI("enable-aa-sched-mi", cl::Hidden, +# 66| cl::desc("Enable use of AA during MI DAG construction")); +# 67| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:68: constructor_uses_global_object: The constructor of global object "UseTBAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseTBAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| cl::desc("Enable use of AA during MI DAG construction")); +# 67| +# 68|-> static cl::opt UseTBAA("use-tbaa-in-sched-mi", cl::Hidden, +# 69| cl::init(true), cl::desc("Enable use of TBAA during MI DAG construction")); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:77: constructor_uses_global_object: The constructor of global object "HugeRegion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeRegion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| // When Stores and Loads maps (or NonAliasStores and NonAliasLoads) +# 76| // together hold this many SUs, a reduction of maps will be done. +# 77|-> static cl::opt HugeRegion("dag-maps-huge-region", cl::Hidden, +# 78| cl::init(1000), cl::desc("The limit to use while constructing the DAG " +# 79| "prior to scheduling, at which point a trade-off " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ScheduleDAGInstrs.cpp:82: constructor_uses_global_object: The constructor of global object "ReductionSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReductionSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| "is made to avoid excessive compile time.")); +# 81| +# 82|-> static cl::opt ReductionSize( +# 83| "dag-maps-reduction-size", cl::Hidden, +# 84| cl::desc("A huge scheduling region will have maps reduced by this many " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:62: constructor_uses_global_object: The constructor of global object "ColdOperandThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdOperandThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| STATISTIC(NumSelectsConverted, "Number of selects converted"); +# 61| +# 62|-> static cl::opt ColdOperandThreshold( +# 63| "cold-operand-threshold", +# 64| cl::desc("Maximum frequency of path for an operand to be considered cold."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:67: constructor_uses_global_object: The constructor of global object "ColdOperandMaxCostMultiplier" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ColdOperandMaxCostMultiplier" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::init(20), cl::Hidden); +# 66| +# 67|-> static cl::opt ColdOperandMaxCostMultiplier( +# 68| "cold-operand-max-cost-multiplier", +# 69| cl::desc("Maximum cost multiplier of TCC_expensive for the dependence " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:74: constructor_uses_global_object: The constructor of global object "GainGradientThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GainGradientThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| +# 73| static cl::opt +# 74|-> GainGradientThreshold("select-opti-loop-gradient-gain-threshold", +# 75| cl::desc("Gradient gain threshold (%)."), +# 76| cl::init(25), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:79: constructor_uses_global_object: The constructor of global object "GainCycleThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GainCycleThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> GainCycleThreshold("select-opti-loop-cycle-gain-threshold", +# 80| cl::desc("Minimum gain per loop (in cycles) threshold."), +# 81| cl::init(4), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:83: constructor_uses_global_object: The constructor of global object "GainRelativeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GainRelativeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| cl::init(4), cl::Hidden); +# 82| +# 83|-> static cl::opt GainRelativeThreshold( +# 84| "select-opti-loop-relative-gain-threshold", +# 85| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:89: constructor_uses_global_object: The constructor of global object "MispredictDefaultRate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MispredictDefaultRate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| cl::init(8), cl::Hidden); +# 88| +# 89|-> static cl::opt MispredictDefaultRate( +# 90| "mispredict-default-rate", cl::Hidden, cl::init(25), +# 91| cl::desc("Default mispredict rate (initialized to 25%).")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectOptimize.cpp:94: constructor_uses_global_object: The constructor of global object "DisableLoopLevelHeuristics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLoopLevelHeuristics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| +# 93| static cl::opt +# 94|-> DisableLoopLevelHeuristics("disable-loop-level-heuristics", cl::Hidden, +# 95| cl::init(false), +# 96| cl::desc("Disable loop-level heuristics.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:91: constructor_uses_global_object: The constructor of global object "CombinerGlobalAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CombinerGlobalAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| +# 90| static cl::opt +# 91|-> CombinerGlobalAA("combiner-global-alias-analysis", cl::Hidden, +# 92| cl::desc("Enable DAG combiner's use of IR alias analysis")); +# 93| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:95: constructor_uses_global_object: The constructor of global object "UseTBAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseTBAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> UseTBAA("combiner-use-tbaa", cl::Hidden, cl::init(true), +# 96| cl::desc("Enable DAG combiner's use of TBAA")); +# 97| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:108: constructor_uses_global_object: The constructor of global object "StressLoadSlicing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StressLoadSlicing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| /// is enabled, load slicing bypasses most of its profitability guards. +# 107| static cl::opt +# 108|-> StressLoadSlicing("combiner-stress-load-slicing", cl::Hidden, +# 109| cl::desc("Bypass the profitability model of load slicing"), +# 110| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:113: constructor_uses_global_object: The constructor of global object "MaySplitLoadIndex" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaySplitLoadIndex" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| +# 112| static cl::opt +# 113|-> MaySplitLoadIndex("combiner-split-load-index", cl::Hidden, cl::init(true), +# 114| cl::desc("DAG combiner may split indexing from loads")); +# 115| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:117: constructor_uses_global_object: The constructor of global object "EnableStoreMerging" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableStoreMerging" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 115| +# 116| static cl::opt +# 117|-> EnableStoreMerging("combiner-store-merging", cl::Hidden, cl::init(true), +# 118| cl::desc("DAG combiner enable merging multiple stores " +# 119| "into a wider store")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:121: constructor_uses_global_object: The constructor of global object "TokenFactorInlineLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TokenFactorInlineLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| "into a wider store")); +# 120| +# 121|-> static cl::opt TokenFactorInlineLimit( +# 122| "combiner-tokenfactor-inline-limit", cl::Hidden, cl::init(2048), +# 123| cl::desc("Limit the number of operands to inline for Token Factors")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:125: constructor_uses_global_object: The constructor of global object "StoreMergeDependenceLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StoreMergeDependenceLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| cl::desc("Limit the number of operands to inline for Token Factors")); +# 124| +# 125|-> static cl::opt StoreMergeDependenceLimit( +# 126| "combiner-store-merge-dependence-limit", cl::Hidden, cl::init(10), +# 127| cl::desc("Limit the number of times for the same StoreNode and RootNode " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:130: constructor_uses_global_object: The constructor of global object "EnableReduceLoadOpStoreWidth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableReduceLoadOpStoreWidth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| "to bail out in store merging dependence check")); +# 129| +# 130|-> static cl::opt EnableReduceLoadOpStoreWidth( +# 131| "combiner-reduce-load-op-store-width", cl::Hidden, cl::init(true), +# 132| cl::desc("DAG combiner enable reducing the width of load/op/store " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:135: constructor_uses_global_object: The constructor of global object "EnableShrinkLoadReplaceStoreWithStore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableShrinkLoadReplaceStoreWithStore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| "sequence")); +# 134| +# 135|-> static cl::opt EnableShrinkLoadReplaceStoreWithStore( +# 136| "combiner-shrink-load-replace-store-with-store", cl::Hidden, cl::init(true), +# 137| cl::desc("DAG combiner enable load//store with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:140: constructor_uses_global_object: The constructor of global object "EnableVectorFCopySignExtendRound" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableVectorFCopySignExtendRound" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| "a narrower store")); +# 139| +# 140|-> static cl::opt EnableVectorFCopySignExtendRound( +# 141| "combiner-vector-fcopysign-extend-round", cl::Hidden, cl::init(false), +# 142| cl::desc( + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1852: address_of: Taking address with "&RV" yields a singleton pointer. +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1852: callee_ptr_arith: Passing "&RV" to function "ReplaceAllUsesWith" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1850| assert(N->getValueType(0) == RV.getValueType() && +# 1851| N->getNumValues() == 1 && "Type mismatch"); +# 1852|-> DAG.ReplaceAllUsesWith(N, &RV); +# 1853| } +# 1854| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/FastISel.cpp:1008: var_decl: Declaring variable "MyFlags". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/FastISel.cpp:1018: uninit_use_in_call: Using uninitialized value "MyFlags". Field "MyFlags.OrigArgIndex" is uninitialized when calling "push_back". +# 1016| if (CLI.IsInReg) +# 1017| MyFlags.Flags.setInReg(); +# 1018|-> CLI.Ins.push_back(MyFlags); +# 1019| } +# 1020| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1367: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(this->DAG.EVTToAPFloatSemantics(NVT), llvm::APInt(64U, C.getRawData()[1], false))". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1367: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1365| APInt C = cast(N)->getValueAPF().bitcastToAPInt(); +# 1366| SDLoc dl(N); +# 1367|-> Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT), +# 1368| APInt(64, C.getRawData()[1])), +# 1369| dl, NVT); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1370: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(this->DAG.EVTToAPFloatSemantics(NVT), llvm::APInt(64U, C.getRawData()[0], false))". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1370: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1368| APInt(64, C.getRawData()[1])), +# 1369| dl, NVT); +# 1370|-> Hi = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT), +# 1371| APInt(64, C.getRawData()[0])), +# 1372| dl, NVT); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1606: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(this->DAG.EVTToAPFloatSemantics(NVT), llvm::APInt(llvm::TypeSize(NVT.getSizeInBits()).operator llvm::details::FixedOrScalableQuantity::ScalarTy(), 0UL, false))". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1606: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1604| } +# 1605| +# 1606|-> Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT), +# 1607| APInt(NVT.getSizeInBits(), 0)), dl, NVT); +# 1608| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1736: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(this->DAG.EVTToAPFloatSemantics(NVT), llvm::APInt(llvm::TypeSize(NVT.getSizeInBits()).operator llvm::details::FixedOrScalableQuantity::ScalarTy(), 0UL, false))". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1736: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1734| +# 1735| // The low part is zero. +# 1736|-> Lo = DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(NVT), +# 1737| APInt(NVT.getSizeInBits(), 0)), dl, NVT); +# 1738| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:26: constructor_uses_global_object: The constructor of global object "EnableExpensiveChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableExpensiveChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> EnableExpensiveChecks("enable-legalize-types-checking", cl::Hidden); +# 27| +# 28| /// Do extensive, expensive, basic correctness checking. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp:36: constructor_uses_global_object: The constructor of global object "DisableDFASched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDFASched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> DisableDFASched("disable-dfa-sched", cl::Hidden, +# 37| cl::desc("Disable use of DFA during scheduling")); +# 38| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp:39: constructor_uses_global_object: The constructor of global object "RegPressureThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RegPressureThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::desc("Disable use of DFA during scheduling")); +# 38| +# 39|-> static cl::opt RegPressureThreshold( +# 40| "dfa-sched-reg-pressure-threshold", cl::Hidden, cl::init(5), +# 41| cl::desc("Track reg pressure and switch priority to in-depth")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h:195: var_decl: Declaring variable "Dependencies". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h:201: uninit_use: Using uninitialized value "Dependencies". Field "Dependencies.InlineElts" is uninitialized. +# 199| for (SDNode *Node : getAdditionalDependencies()) +# 200| Dependencies.push_back(Node); +# 201|-> return Dependencies; +# 202| } +# 203| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp:273: var_decl: Declaring variable "ChainPred". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp:295: uninit_use_in_call: Using uninitialized value "ChainPred". Field "ChainPred.Contents" is uninitialized when calling "RemovePred". +# 293| +# 294| if (ChainPred.getSUnit()) { +# 295|-> RemovePred(SU, ChainPred); +# 296| if (isNewLoad) +# 297| AddPred(LoadSU, ChainPred); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:92: constructor_uses_global_object: The constructor of global object "DisableSchedCycles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedCycles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| createILPListDAGScheduler); +# 91| +# 92|-> static cl::opt DisableSchedCycles( +# 93| "disable-sched-cycles", cl::Hidden, cl::init(false), +# 94| cl::desc("Disable cycle-level precision during preRA scheduling")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:98: constructor_uses_global_object: The constructor of global object "DisableSchedRegPressure" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedRegPressure" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| // Temporary sched=list-ilp flags until the heuristics are robust. +# 97| // Some options are also available under sched=list-hybrid. +# 98|-> static cl::opt DisableSchedRegPressure( +# 99| "disable-sched-reg-pressure", cl::Hidden, cl::init(false), +# 100| cl::desc("Disable regpressure priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:101: constructor_uses_global_object: The constructor of global object "DisableSchedLiveUses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedLiveUses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 99| "disable-sched-reg-pressure", cl::Hidden, cl::init(false), +# 100| cl::desc("Disable regpressure priority in sched=list-ilp")); +# 101|-> static cl::opt DisableSchedLiveUses( +# 102| "disable-sched-live-uses", cl::Hidden, cl::init(true), +# 103| cl::desc("Disable live use priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:104: constructor_uses_global_object: The constructor of global object "DisableSchedVRegCycle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedVRegCycle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| "disable-sched-live-uses", cl::Hidden, cl::init(true), +# 103| cl::desc("Disable live use priority in sched=list-ilp")); +# 104|-> static cl::opt DisableSchedVRegCycle( +# 105| "disable-sched-vrcycle", cl::Hidden, cl::init(false), +# 106| cl::desc("Disable virtual register cycle interference checks")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:107: constructor_uses_global_object: The constructor of global object "DisableSchedPhysRegJoin" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedPhysRegJoin" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| "disable-sched-vrcycle", cl::Hidden, cl::init(false), +# 106| cl::desc("Disable virtual register cycle interference checks")); +# 107|-> static cl::opt DisableSchedPhysRegJoin( +# 108| "disable-sched-physreg-join", cl::Hidden, cl::init(false), +# 109| cl::desc("Disable physreg def-use affinity")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:110: constructor_uses_global_object: The constructor of global object "DisableSchedStalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedStalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| "disable-sched-physreg-join", cl::Hidden, cl::init(false), +# 109| cl::desc("Disable physreg def-use affinity")); +# 110|-> static cl::opt DisableSchedStalls( +# 111| "disable-sched-stalls", cl::Hidden, cl::init(true), +# 112| cl::desc("Disable no-stall priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:113: constructor_uses_global_object: The constructor of global object "DisableSchedCriticalPath" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedCriticalPath" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| "disable-sched-stalls", cl::Hidden, cl::init(true), +# 112| cl::desc("Disable no-stall priority in sched=list-ilp")); +# 113|-> static cl::opt DisableSchedCriticalPath( +# 114| "disable-sched-critical-path", cl::Hidden, cl::init(false), +# 115| cl::desc("Disable critical path priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:116: constructor_uses_global_object: The constructor of global object "DisableSchedHeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSchedHeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| "disable-sched-critical-path", cl::Hidden, cl::init(false), +# 115| cl::desc("Disable critical path priority in sched=list-ilp")); +# 116|-> static cl::opt DisableSchedHeight( +# 117| "disable-sched-height", cl::Hidden, cl::init(false), +# 118| cl::desc("Disable scheduled-height priority in sched=list-ilp")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:119: constructor_uses_global_object: The constructor of global object "Disable2AddrHack" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Disable2AddrHack" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| "disable-sched-height", cl::Hidden, cl::init(false), +# 118| cl::desc("Disable scheduled-height priority in sched=list-ilp")); +# 119|-> static cl::opt Disable2AddrHack( +# 120| "disable-2addr-hack", cl::Hidden, cl::init(true), +# 121| cl::desc("Disable scheduler's two-address hack")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:123: constructor_uses_global_object: The constructor of global object "MaxReorderWindow" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxReorderWindow" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 121| cl::desc("Disable scheduler's two-address hack")); +# 122| +# 123|-> static cl::opt MaxReorderWindow( +# 124| "max-sched-reorder", cl::Hidden, cl::init(6), +# 125| cl::desc("Number of instructions to allow ahead of the critical path " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:128: constructor_uses_global_object: The constructor of global object "AvgIPC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AvgIPC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| "in sched=list-ilp")); +# 127| +# 128|-> static cl::opt AvgIPC( +# 129| "sched-avg-ipc", cl::Hidden, cl::init(1), +# 130| cl::desc("Average inst/cycle whan no target itinerary exists.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp:44: constructor_uses_global_object: The constructor of global object "HighLatencyCycles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HighLatencyCycles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| // without a target itinerary. The choice of number here has more to do with +# 43| // balancing scheduler heuristics than with the actual machine latency. +# 44|-> static cl::opt HighLatencyCycles( +# 45| "sched-high-latency-cycles", cl::Hidden, cl::init(10), +# 46| cl::desc("Roughly estimate the number of cycles that 'long latency'" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:101: constructor_uses_global_object: The constructor of global object "EnableMemCpyDAGOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemCpyDAGOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 99| #define DEBUG_TYPE "selectiondag" +# 100| +# 101|-> static cl::opt EnableMemCpyDAGOpt("enable-memcpy-dag-opt", +# 102| cl::Hidden, cl::init(true), +# 103| cl::desc("Gang up loads and stores generated by inlining of memcpy")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:105: constructor_uses_global_object: The constructor of global object "MaxLdStGlue" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxLdStGlue" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 103| cl::desc("Gang up loads and stores generated by inlining of memcpy")); +# 104| +# 105|-> static cl::opt MaxLdStGlue("ldstmemcpy-glue-max", +# 106| cl::desc("Number limit for gluing ld/st of memcpy."), +# 107| cl::Hidden, cl::init(0)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1723: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat((float)Val)". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1723: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1721| EVT EltVT = VT.getScalarType(); +# 1722| if (EltVT == MVT::f32) +# 1723|-> return getConstantFP(APFloat((float)Val), DL, VT, isTarget); +# 1724| if (EltVT == MVT::f64) +# 1725| return getConstantFP(APFloat(Val), DL, VT, isTarget); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1725: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Val)". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1725: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1723| return getConstantFP(APFloat((float)Val), DL, VT, isTarget); +# 1724| if (EltVT == MVT::f64) +# 1725|-> return getConstantFP(APFloat(Val), DL, VT, isTarget); +# 1726| if (EltVT == MVT::f80 || EltVT == MVT::f128 || EltVT == MVT::ppcf128 || +# 1727| EltVT == MVT::f16 || EltVT == MVT::bf16) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5456: var_decl: Declaring variable "apf". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5458: uninit_use_in_call: Using uninitialized value "apf.U" when calling "convertFromAPInt". +# 5456| APFloat apf(EVTToAPFloatSemantics(VT), +# 5457| APInt::getZero(VT.getSizeInBits())); +# 5458|-> (void)apf.convertFromAPInt(Val, +# 5459| Opcode==ISD::SINT_TO_FP, +# 5460| APFloat::rmNearestTiesToEven); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5465: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), Val)". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5465: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5463| case ISD::BITCAST: +# 5464| if (VT == MVT::f16 && C->getValueType(0) == MVT::i16) +# 5465|-> return getConstantFP(APFloat(APFloat::IEEEhalf(), Val), DL, VT); +# 5466| if (VT == MVT::f32 && C->getValueType(0) == MVT::i32) +# 5467| return getConstantFP(APFloat(APFloat::IEEEsingle(), Val), DL, VT); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5467: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), Val)". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5467: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5465| return getConstantFP(APFloat(APFloat::IEEEhalf(), Val), DL, VT); +# 5466| if (VT == MVT::f32 && C->getValueType(0) == MVT::i32) +# 5467|-> return getConstantFP(APFloat(APFloat::IEEEsingle(), Val), DL, VT); +# 5468| if (VT == MVT::f64 && C->getValueType(0) == MVT::i64) +# 5469| return getConstantFP(APFloat(APFloat::IEEEdouble(), Val), DL, VT); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5469: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), Val)". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5469: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5467| return getConstantFP(APFloat(APFloat::IEEEsingle(), Val), DL, VT); +# 5468| if (VT == MVT::f64 && C->getValueType(0) == MVT::i64) +# 5469|-> return getConstantFP(APFloat(APFloat::IEEEdouble(), Val), DL, VT); +# 5470| if (VT == MVT::f128 && C->getValueType(0) == MVT::i128) +# 5471| return getConstantFP(APFloat(APFloat::IEEEquad(), Val), DL, VT); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5471: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), Val)". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5471: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5469| return getConstantFP(APFloat(APFloat::IEEEdouble(), Val), DL, VT); +# 5470| if (VT == MVT::f128 && C->getValueType(0) == MVT::i128) +# 5471|-> return getConstantFP(APFloat(APFloat::IEEEquad(), Val), DL, VT); +# 5472| break; +# 5473| case ISD::ABS: + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:7081: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(DAG.EVTToAPFloatSemantics(VT), Val)". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:7081: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 7079| return DAG.getConstant(Val, dl, VT, false, IsOpaque); +# 7080| } +# 7081|-> return DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(VT), Val), dl, +# 7082| VT); +# 7083| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:119: constructor_uses_global_object: The constructor of global object "InsertAssertAlign" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InsertAssertAlign" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| +# 118| static cl::opt +# 119|-> InsertAssertAlign("insert-assert-align", cl::init(true), +# 120| cl::desc("Insert the experimental `assertalign` node."), +# 121| cl::ReallyHidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:124: constructor_uses_global_object: The constructor of global object "LimitFPPrecision" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LimitFPPrecision" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| +# 123| static cl::opt +# 124|-> LimitFPPrecision("limit-float-precision", +# 125| cl::desc("Generate low-precision inline sequences " +# 126| "for some float libcalls"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:130: constructor_uses_global_object: The constructor of global object "SwitchPeelThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SwitchPeelThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| cl::init(0)); +# 129| +# 130|-> static cl::opt SwitchPeelThreshold( +# 131| "switch-peel-threshold", cl::Hidden, cl::init(66), +# 132| cl::desc("Set the case probability threshold for peeling the case from a " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1047: var_decl: Declaring variable "OutVec". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1056: uninit_use: Using uninitialized value "OutVec". Field "OutVec.InlineElts" is uninitialized. +# 1054| OutVec.push_back(std::make_pair(Regs[I], RegisterSize)); +# 1055| } +# 1056|-> return OutVec; +# 1057| } +# 1058| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5036: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, Flt, false))". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5036: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5034| static SDValue getF32Constant(SelectionDAG &DAG, unsigned Flt, +# 5035| const SDLoc &dl) { +# 5036|-> return DAG.getConstantFP(APFloat(APFloat::IEEEsingle(), APInt(32, Flt)), dl, +# 5037| MVT::f32); +# 5038| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5460: var_decl: Declaring variable "Ten". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5461: uninit_use_in_call: Using uninitialized value "Ten.U" when calling "isExactlyValue". +# 5459| if (ConstantFPSDNode *LHSC = dyn_cast(LHS)) { +# 5460| APFloat Ten(10.0f); +# 5461|-> IsExp10 = LHSC->isExactlyValue(Ten); +# 5462| } +# 5463| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10145: var_decl: Declaring variable "MyFlags". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10161: uninit_use_in_call: Using uninitialized value "MyFlags". Field "MyFlags.OrigArgIndex" is uninitialized when calling "push_back". +#10159| if (CLI.IsInReg) +#10160| MyFlags.Flags.setInReg(); +#10161|-> CLI.Ins.push_back(MyFlags); +#10162| } +#10163| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10171: var_decl: Declaring variable "MyFlags". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10175: uninit_use_in_call: Using uninitialized value "MyFlags". Field "MyFlags.OrigArgIndex" is uninitialized when calling "push_back". +#10173| MyFlags.ArgVT = EVT(getPointerTy(DL)); +#10174| MyFlags.Flags.setSwiftError(); +#10175|-> CLI.Ins.push_back(MyFlags); +#10176| } +#10177| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp:54: constructor_uses_global_object: The constructor of global object "VerboseDAGDumping" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerboseDAGDumping" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::opt +# 54|-> VerboseDAGDumping("dag-dump-verbose", cl::Hidden, +# 55| cl::desc("Display more information when dumping selection " +# 56| "DAG nodes.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:126: constructor_uses_global_object: The constructor of global object "EnableFastISelAbort" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFastISelAbort" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| "Number of entry blocks where fast isel failed to lower arguments"); +# 125| +# 126|-> static cl::opt EnableFastISelAbort( +# 127| "fast-isel-abort", cl::Hidden, +# 128| cl::desc("Enable abort calls when \"fast\" instruction selection " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:134: constructor_uses_global_object: The constructor of global object "EnableFastISelFallbackReport" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFastISelFallbackReport" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 132| "to SelectionDAG.")); +# 133| +# 134|-> static cl::opt EnableFastISelFallbackReport( +# 135| "fast-isel-report-on-fallback", cl::Hidden, +# 136| cl::desc("Emit a diagnostic when \"fast\" instruction selection " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:140: constructor_uses_global_object: The constructor of global object "UseMBPI" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseMBPI" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> UseMBPI("use-mbpi", +# 141| cl::desc("use Machine Branch Probability Info"), +# 142| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:198: constructor_uses_global_object: The constructor of global object "ISHeuristic" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ISHeuristic" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 196| static cl::opt> +# 198|-> ISHeuristic("pre-RA-sched", +# 199| cl::init(&createDefaultScheduler), cl::Hidden, +# 200| cl::desc("Instruction schedulers available (before register" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:65: constructor_uses_global_object: The constructor of global object "UseRegistersForDeoptValues" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseRegistersForDeoptValues" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| "Maximum number of stack slots required for a singe statepoint"); +# 64| +# 65|-> cl::opt UseRegistersForDeoptValues( +# 66| "use-registers-for-deopt-values", cl::Hidden, cl::init(false), +# 67| cl::desc("Allow using registers for non pointer deopt args")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:69: constructor_uses_global_object: The constructor of global object "UseRegistersForGCPointersInLandingPad" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseRegistersForGCPointersInLandingPad" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::desc("Allow using registers for non pointer deopt args")); +# 68| +# 69|-> cl::opt UseRegistersForGCPointersInLandingPad( +# 70| "use-registers-for-gc-values-in-landing-pad", cl::Hidden, cl::init(false), +# 71| cl::desc("Allow using registers for gc pointer in landing pad")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:73: constructor_uses_global_object: The constructor of global object "MaxRegistersForGCPointers" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxRegistersForGCPointers" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::desc("Allow using registers for gc pointer in landing pad")); +# 72| +# 73|-> cl::opt MaxRegistersForGCPointers( +# 74| "max-registers-for-gc-values", cl::Hidden, cl::init(0), +# 75| cl::desc("Max number of VRegs allowed to pass GC pointer meta args in")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp:7893: var_decl: Declaring variable "APF". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp:7895: uninit_use_in_call: Using uninitialized value "APF.U" when calling "convertFromAPInt". +# 7893| APFloat APF(APFSem, APInt::getZero(SrcVT.getScalarSizeInBits())); +# 7894| APInt SignMask = APInt::getSignMask(DstVT.getScalarSizeInBits()); +# 7895|-> if (APFloat::opOverflow & +# 7896| APF.convertFromAPInt(SignMask, false, APFloat::rmNearestTiesToEven)) { +# 7897| if (Node->isStrictFPOpcode()) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10499: var_decl: Declaring variable "MinFloat". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10502: uninit_use_in_call: Using uninitialized value "MinFloat.U" when calling "convertFromAPInt". +#10500| APFloat MaxFloat(DAG.EVTToAPFloatSemantics(SrcVT)); +#10501| +#10502|-> APFloat::opStatus MinStatus = +#10503| MinFloat.convertFromAPInt(MinInt, IsSigned, APFloat::rmTowardZero); +#10504| APFloat::opStatus MaxStatus = + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10500: var_decl: Declaring variable "MaxFloat". +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10504: uninit_use_in_call: Using uninitialized value "MaxFloat.U" when calling "convertFromAPInt". +#10502| APFloat::opStatus MinStatus = +#10503| MinFloat.convertFromAPInt(MinInt, IsSigned, APFloat::rmTowardZero); +#10504|-> APFloat::opStatus MaxStatus = +#10505| MaxFloat.convertFromAPInt(MaxInt, IsSigned, APFloat::rmTowardZero); +#10506| bool AreExactFloatBounds = !(MinStatus & APFloat::opStatus::opInexact) && + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ShrinkWrap.cpp:99: constructor_uses_global_object: The constructor of global object "EnableShrinkWrapOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableShrinkWrapOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 97| +# 98| static cl::opt +# 99|-> EnableShrinkWrapOpt("enable-shrink-wrap", cl::Hidden, +# 100| cl::desc("enable the shrink-wrapping pass")); +# 101| static cl::opt EnablePostShrinkWrapOpt( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/ShrinkWrap.cpp:101: constructor_uses_global_object: The constructor of global object "EnablePostShrinkWrapOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostShrinkWrapOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 99| EnableShrinkWrapOpt("enable-shrink-wrap", cl::Hidden, +# 100| cl::desc("enable the shrink-wrapping pass")); +# 101|-> static cl::opt EnablePostShrinkWrapOpt( +# 102| "enable-shrink-wrap-region-split", cl::init(true), cl::Hidden, +# 103| cl::desc("enable splitting of the restore block if possible")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackColoring.cpp:67: constructor_uses_global_object: The constructor of global object "DisableColoring" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableColoring" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl::opt +# 67|-> DisableColoring("no-stack-coloring", +# 68| cl::init(false), cl::Hidden, +# 69| cl::desc("Disable stack coloring")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackColoring.cpp:77: constructor_uses_global_object: The constructor of global object "ProtectFromEscapedAllocas" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProtectFromEscapedAllocas" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| /// is treated as overriding LifetimeStartOnFirstUse below. +# 76| static cl::opt +# 77|-> ProtectFromEscapedAllocas("protect-from-escaped-allocas", +# 78| cl::init(false), cl::Hidden, +# 79| cl::desc("Do not optimize lifetime zones that " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackColoring.cpp:87: constructor_uses_global_object: The constructor of global object "LifetimeStartOnFirstUse" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LifetimeStartOnFirstUse" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| /// more info. +# 86| static cl::opt +# 87|-> LifetimeStartOnFirstUse("stackcoloring-lifetime-start-on-first-use", +# 88| cl::init(true), cl::Hidden, +# 89| cl::desc("Treat stack lifetimes as starting on first use, not on START marker.")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp:210: var_decl: Declaring variable "SlotDebugMap". +llvm-17.0.6.src/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp:237: uninit_use: Using uninitialized value "SlotDebugMap". Field "SlotDebugMap.NumEntries" is uninitialized. +# 235| } +# 236| +# 237|-> return SlotDebugMap; +# 238| } +# 239| }; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackMapLivenessAnalysis.cpp:31: constructor_uses_global_object: The constructor of global object "EnablePatchPointLiveness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePatchPointLiveness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| #define DEBUG_TYPE "stackmaps" +# 30| +# 31|-> static cl::opt EnablePatchPointLiveness( +# 32| "enable-patchpoint-liveness", cl::Hidden, cl::init(true), +# 33| cl::desc("Enable PatchPoint Liveness Analysis Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackMaps.cpp:42: constructor_uses_global_object: The constructor of global object "StackMapVersion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackMapVersion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| #define DEBUG_TYPE "stackmaps" +# 41| +# 42|-> static cl::opt StackMapVersion( +# 43| "stackmap-version", cl::init(3), cl::Hidden, +# 44| cl::desc("Specify the stackmap encoding version (default = 3)")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/CodeGen/StackMaps.cpp:371: var_decl: Declaring variable "LiveOuts". +llvm-17.0.6.src/lib/CodeGen/StackMaps.cpp:403: uninit_use: Using uninitialized value "LiveOuts". Field "LiveOuts.InlineElts" is uninitialized. +# 401| llvm::erase_if(LiveOuts, [](const LiveOutReg &LO) { return LO.Reg == 0; }); +# 402| +# 403|-> return LiveOuts; +# 404| } +# 405| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackProtector.cpp:62: constructor_uses_global_object: The constructor of global object "EnableSelectionDAGSP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSelectionDAGSP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| " taken."); +# 61| +# 62|-> static cl::opt EnableSelectionDAGSP("enable-selectiondag-sp", +# 63| cl::init(true), cl::Hidden); +# 64| static cl::opt DisableCheckNoReturn("disable-check-noreturn-call", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackProtector.cpp:64: constructor_uses_global_object: The constructor of global object "DisableCheckNoReturn" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCheckNoReturn" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| static cl::opt EnableSelectionDAGSP("enable-selectiondag-sp", +# 63| cl::init(true), cl::Hidden); +# 64|-> static cl::opt DisableCheckNoReturn("disable-check-noreturn-call", +# 65| cl::init(false), cl::Hidden); +# 66| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackSlotColoring.cpp:50: constructor_uses_global_object: The constructor of global object "DisableSharing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSharing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> DisableSharing("no-stack-slot-sharing", +# 51| cl::init(false), cl::Hidden, +# 52| cl::desc("Suppress slot sharing during stack coloring")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/StackSlotColoring.cpp:54: constructor_uses_global_object: The constructor of global object "DCELimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DCELimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::desc("Suppress slot sharing during stack coloring")); +# 53| +# 54|-> static cl::opt DCELimit("ssc-dce-limit", cl::init(-1), cl::Hidden); +# 55| +# 56| STATISTIC(NumEliminated, "Number of stack slots eliminated due to coloring"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:60: constructor_uses_global_object: The constructor of global object "TailDuplicateSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDuplicateSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| +# 59| // Heuristic for tail duplication. +# 60|-> static cl::opt TailDuplicateSize( +# 61| "tail-dup-size", +# 62| cl::desc("Maximum instructions to consider tail duplicating"), cl::init(2), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:65: constructor_uses_global_object: The constructor of global object "TailDupIndirectBranchSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupIndirectBranchSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::Hidden); +# 64| +# 65|-> static cl::opt TailDupIndirectBranchSize( +# 66| "tail-dup-indirect-size", +# 67| cl::desc("Maximum instructions to consider tail duplicating blocks that " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:72: constructor_uses_global_object: The constructor of global object "TailDupVerify" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupVerify" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| +# 71| static cl::opt +# 72|-> TailDupVerify("tail-dup-verify", +# 73| cl::desc("Verify sanity of PHI instructions during taildup"), +# 74| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TailDuplicator.cpp:76: constructor_uses_global_object: The constructor of global object "TailDupLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TailDupLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| cl::init(false), cl::Hidden); +# 75| +# 76|-> static cl::opt TailDupLimit("tail-dup-limit", cl::init(~0U), +# 77| cl::Hidden); +# 78| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetInstrInfo.cpp:40: constructor_uses_global_object: The constructor of global object "DisableHazardRecognizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableHazardRecognizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| using namespace llvm; +# 39| +# 40|-> static cl::opt DisableHazardRecognizer( +# 41| "disable-sched-hazard", cl::Hidden, cl::init(false), +# 42| cl::desc("Disable hazard detection during preRA scheduling")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:68: constructor_uses_global_object: The constructor of global object "JumpIsExpensiveOverride" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpIsExpensiveOverride" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| using namespace llvm; +# 67| +# 68|-> static cl::opt JumpIsExpensiveOverride( +# 69| "jump-is-expensive", cl::init(false), +# 70| cl::desc("Do not create extra branches to split comparison logic."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:73: constructor_uses_global_object: The constructor of global object "MinimumJumpTableEntries" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MinimumJumpTableEntries" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::Hidden); +# 72| +# 73|-> static cl::opt MinimumJumpTableEntries +# 74| ("min-jump-table-entries", cl::init(4), cl::Hidden, +# 75| cl::desc("Set minimum number of entries to use a jump table.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:77: constructor_uses_global_object: The constructor of global object "MaximumJumpTableSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaximumJumpTableSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::desc("Set minimum number of entries to use a jump table.")); +# 76| +# 77|-> static cl::opt MaximumJumpTableSize +# 78| ("max-jump-table-size", cl::init(UINT_MAX), cl::Hidden, +# 79| cl::desc("Set maximum size of jump tables.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:83: constructor_uses_global_object: The constructor of global object "JumpTableDensity" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpTableDensity" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| /// Minimum jump table density for normal functions. +# 82| static cl::opt +# 83|-> JumpTableDensity("jump-table-density", cl::init(10), cl::Hidden, +# 84| cl::desc("Minimum density for building a jump table in " +# 85| "a normal function")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:88: constructor_uses_global_object: The constructor of global object "OptsizeJumpTableDensity" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptsizeJumpTableDensity" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| +# 87| /// Minimum jump table density for -Os or -Oz functions. +# 88|-> static cl::opt OptsizeJumpTableDensity( +# 89| "optsize-jump-table-density", cl::init(40), cl::Hidden, +# 90| cl::desc("Minimum density for building a jump table in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringBase.cpp:97: constructor_uses_global_object: The constructor of global object "DisableStrictNodeMutation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableStrictNodeMutation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| // during development. When the backend supports strict float operation, this +# 96| // option will be meaningless. +# 97|-> static cl::opt DisableStrictNodeMutation("disable-strictnode-mutation", +# 98| cl::desc("Don't mutate strict-float node to a legalize node"), +# 99| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp:74: constructor_uses_global_object: The constructor of global object "JumpTableInFunctionSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "JumpTableInFunctionSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| using namespace dwarf; +# 73| +# 74|-> static cl::opt JumpTableInFunctionSection( +# 75| "jumptable-in-function-section", cl::Hidden, cl::init(false), +# 76| cl::desc("Putting Jump Table in function section")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:58: constructor_uses_global_object: The constructor of global object "EnableIPRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableIPRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| +# 57| static cl::opt +# 58|-> EnableIPRA("enable-ipra", cl::init(false), cl::Hidden, +# 59| cl::desc("Enable interprocedural register allocation " +# 60| "to reduce load/store at procedure calls.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:61: constructor_uses_global_object: The constructor of global object "DisablePostRASched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePostRASched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| cl::desc("Enable interprocedural register allocation " +# 60| "to reduce load/store at procedure calls.")); +# 61|-> static cl::opt DisablePostRASched("disable-post-ra", cl::Hidden, +# 62| cl::desc("Disable Post Regalloc Scheduler")); +# 63| static cl::opt DisableBranchFold("disable-branch-fold", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:63: constructor_uses_global_object: The constructor of global object "DisableBranchFold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBranchFold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| static cl::opt DisablePostRASched("disable-post-ra", cl::Hidden, +# 62| cl::desc("Disable Post Regalloc Scheduler")); +# 63|-> static cl::opt DisableBranchFold("disable-branch-fold", cl::Hidden, +# 64| cl::desc("Disable branch folding")); +# 65| static cl::opt DisableTailDuplicate("disable-tail-duplicate", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:65: constructor_uses_global_object: The constructor of global object "DisableTailDuplicate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTailDuplicate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| static cl::opt DisableBranchFold("disable-branch-fold", cl::Hidden, +# 64| cl::desc("Disable branch folding")); +# 65|-> static cl::opt DisableTailDuplicate("disable-tail-duplicate", cl::Hidden, +# 66| cl::desc("Disable tail duplication")); +# 67| static cl::opt DisableEarlyTailDup("disable-early-taildup", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:67: constructor_uses_global_object: The constructor of global object "DisableEarlyTailDup" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableEarlyTailDup" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| static cl::opt DisableTailDuplicate("disable-tail-duplicate", cl::Hidden, +# 66| cl::desc("Disable tail duplication")); +# 67|-> static cl::opt DisableEarlyTailDup("disable-early-taildup", cl::Hidden, +# 68| cl::desc("Disable pre-register allocation tail duplication")); +# 69| static cl::opt DisableBlockPlacement("disable-block-placement", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:69: constructor_uses_global_object: The constructor of global object "DisableBlockPlacement" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBlockPlacement" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| static cl::opt DisableEarlyTailDup("disable-early-taildup", cl::Hidden, +# 68| cl::desc("Disable pre-register allocation tail duplication")); +# 69|-> static cl::opt DisableBlockPlacement("disable-block-placement", +# 70| cl::Hidden, cl::desc("Disable probability-driven block placement")); +# 71| static cl::opt EnableBlockPlacementStats("enable-block-placement-stats", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:71: constructor_uses_global_object: The constructor of global object "EnableBlockPlacementStats" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableBlockPlacementStats" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| static cl::opt DisableBlockPlacement("disable-block-placement", +# 70| cl::Hidden, cl::desc("Disable probability-driven block placement")); +# 71|-> static cl::opt EnableBlockPlacementStats("enable-block-placement-stats", +# 72| cl::Hidden, cl::desc("Collect probability-driven block placement stats")); +# 73| static cl::opt DisableSSC("disable-ssc", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:73: constructor_uses_global_object: The constructor of global object "DisableSSC" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSSC" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| static cl::opt EnableBlockPlacementStats("enable-block-placement-stats", +# 72| cl::Hidden, cl::desc("Collect probability-driven block placement stats")); +# 73|-> static cl::opt DisableSSC("disable-ssc", cl::Hidden, +# 74| cl::desc("Disable Stack Slot Coloring")); +# 75| static cl::opt DisableMachineDCE("disable-machine-dce", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:75: constructor_uses_global_object: The constructor of global object "DisableMachineDCE" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineDCE" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| static cl::opt DisableSSC("disable-ssc", cl::Hidden, +# 74| cl::desc("Disable Stack Slot Coloring")); +# 75|-> static cl::opt DisableMachineDCE("disable-machine-dce", cl::Hidden, +# 76| cl::desc("Disable Machine Dead Code Elimination")); +# 77| static cl::opt DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:77: constructor_uses_global_object: The constructor of global object "DisableEarlyIfConversion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableEarlyIfConversion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| static cl::opt DisableMachineDCE("disable-machine-dce", cl::Hidden, +# 76| cl::desc("Disable Machine Dead Code Elimination")); +# 77|-> static cl::opt DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden, +# 78| cl::desc("Disable Early If-conversion")); +# 79| static cl::opt DisableMachineLICM("disable-machine-licm", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:79: constructor_uses_global_object: The constructor of global object "DisableMachineLICM" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineLICM" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| static cl::opt DisableEarlyIfConversion("disable-early-ifcvt", cl::Hidden, +# 78| cl::desc("Disable Early If-conversion")); +# 79|-> static cl::opt DisableMachineLICM("disable-machine-licm", cl::Hidden, +# 80| cl::desc("Disable Machine LICM")); +# 81| static cl::opt DisableMachineCSE("disable-machine-cse", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:81: constructor_uses_global_object: The constructor of global object "DisableMachineCSE" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineCSE" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| static cl::opt DisableMachineLICM("disable-machine-licm", cl::Hidden, +# 80| cl::desc("Disable Machine LICM")); +# 81|-> static cl::opt DisableMachineCSE("disable-machine-cse", cl::Hidden, +# 82| cl::desc("Disable Machine Common Subexpression Elimination")); +# 83| static cl::opt OptimizeRegAlloc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:83: constructor_uses_global_object: The constructor of global object "OptimizeRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptimizeRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 81| static cl::opt DisableMachineCSE("disable-machine-cse", cl::Hidden, +# 82| cl::desc("Disable Machine Common Subexpression Elimination")); +# 83|-> static cl::opt OptimizeRegAlloc( +# 84| "optimize-regalloc", cl::Hidden, +# 85| cl::desc("Enable optimized register allocation compilation path.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:86: constructor_uses_global_object: The constructor of global object "DisablePostRAMachineLICM" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePostRAMachineLICM" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| "optimize-regalloc", cl::Hidden, +# 85| cl::desc("Enable optimized register allocation compilation path.")); +# 86|-> static cl::opt DisablePostRAMachineLICM("disable-postra-machine-licm", +# 87| cl::Hidden, +# 88| cl::desc("Disable Machine LICM")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:89: constructor_uses_global_object: The constructor of global object "DisableMachineSink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMachineSink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 87| cl::Hidden, +# 88| cl::desc("Disable Machine LICM")); +# 89|-> static cl::opt DisableMachineSink("disable-machine-sink", cl::Hidden, +# 90| cl::desc("Disable Machine Sinking")); +# 91| static cl::opt DisablePostRAMachineSink("disable-postra-machine-sink", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:91: constructor_uses_global_object: The constructor of global object "DisablePostRAMachineSink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePostRAMachineSink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| static cl::opt DisableMachineSink("disable-machine-sink", cl::Hidden, +# 90| cl::desc("Disable Machine Sinking")); +# 91|-> static cl::opt DisablePostRAMachineSink("disable-postra-machine-sink", +# 92| cl::Hidden, +# 93| cl::desc("Disable PostRA Machine Sinking")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:94: constructor_uses_global_object: The constructor of global object "DisableLSR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLSR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| cl::Hidden, +# 93| cl::desc("Disable PostRA Machine Sinking")); +# 94|-> static cl::opt DisableLSR("disable-lsr", cl::Hidden, +# 95| cl::desc("Disable Loop Strength Reduction Pass")); +# 96| static cl::opt DisableConstantHoisting("disable-constant-hoisting", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:96: constructor_uses_global_object: The constructor of global object "DisableConstantHoisting" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableConstantHoisting" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| static cl::opt DisableLSR("disable-lsr", cl::Hidden, +# 95| cl::desc("Disable Loop Strength Reduction Pass")); +# 96|-> static cl::opt DisableConstantHoisting("disable-constant-hoisting", +# 97| cl::Hidden, cl::desc("Disable ConstantHoisting")); +# 98| static cl::opt DisableCGP("disable-cgp", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:98: constructor_uses_global_object: The constructor of global object "DisableCGP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCGP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| static cl::opt DisableConstantHoisting("disable-constant-hoisting", +# 97| cl::Hidden, cl::desc("Disable ConstantHoisting")); +# 98|-> static cl::opt DisableCGP("disable-cgp", cl::Hidden, +# 99| cl::desc("Disable Codegen Prepare")); +# 100| static cl::opt DisableCopyProp("disable-copyprop", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:100: constructor_uses_global_object: The constructor of global object "DisableCopyProp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCopyProp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| static cl::opt DisableCGP("disable-cgp", cl::Hidden, +# 99| cl::desc("Disable Codegen Prepare")); +# 100|-> static cl::opt DisableCopyProp("disable-copyprop", cl::Hidden, +# 101| cl::desc("Disable Copy Propagation pass")); +# 102| static cl::opt DisablePartialLibcallInlining("disable-partial-libcall-inlining", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:102: constructor_uses_global_object: The constructor of global object "DisablePartialLibcallInlining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePartialLibcallInlining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 100| static cl::opt DisableCopyProp("disable-copyprop", cl::Hidden, +# 101| cl::desc("Disable Copy Propagation pass")); +# 102|-> static cl::opt DisablePartialLibcallInlining("disable-partial-libcall-inlining", +# 103| cl::Hidden, cl::desc("Disable Partial Libcall Inlining")); +# 104| static cl::opt DisableAtExitBasedGlobalDtorLowering( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:104: constructor_uses_global_object: The constructor of global object "DisableAtExitBasedGlobalDtorLowering" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAtExitBasedGlobalDtorLowering" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| static cl::opt DisablePartialLibcallInlining("disable-partial-libcall-inlining", +# 103| cl::Hidden, cl::desc("Disable Partial Libcall Inlining")); +# 104|-> static cl::opt DisableAtExitBasedGlobalDtorLowering( +# 105| "disable-atexit-based-global-dtor-lowering", cl::Hidden, +# 106| cl::desc("For MachO, disable atexit()-based global destructor lowering")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:107: constructor_uses_global_object: The constructor of global object "EnableImplicitNullChecks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableImplicitNullChecks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| "disable-atexit-based-global-dtor-lowering", cl::Hidden, +# 106| cl::desc("For MachO, disable atexit()-based global destructor lowering")); +# 107|-> static cl::opt EnableImplicitNullChecks( +# 108| "enable-implicit-null-checks", +# 109| cl::desc("Fold null checks into faulting memory operations"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:111: constructor_uses_global_object: The constructor of global object "DisableMergeICmps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMergeICmps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 109| cl::desc("Fold null checks into faulting memory operations"), +# 110| cl::init(false), cl::Hidden); +# 111|-> static cl::opt DisableMergeICmps("disable-mergeicmps", +# 112| cl::desc("Disable MergeICmps Pass"), +# 113| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:114: constructor_uses_global_object: The constructor of global object "PrintLSR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintLSR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| cl::desc("Disable MergeICmps Pass"), +# 113| cl::init(false), cl::Hidden); +# 114|-> static cl::opt PrintLSR("print-lsr-output", cl::Hidden, +# 115| cl::desc("Print LLVM IR produced by the loop-reduce pass")); +# 116| static cl::opt PrintISelInput("print-isel-input", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:116: constructor_uses_global_object: The constructor of global object "PrintISelInput" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintISelInput" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| static cl::opt PrintLSR("print-lsr-output", cl::Hidden, +# 115| cl::desc("Print LLVM IR produced by the loop-reduce pass")); +# 116|-> static cl::opt PrintISelInput("print-isel-input", cl::Hidden, +# 117| cl::desc("Print LLVM IR input to isel pass")); +# 118| static cl::opt PrintGCInfo("print-gc", cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:118: constructor_uses_global_object: The constructor of global object "PrintGCInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintGCInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| static cl::opt PrintISelInput("print-isel-input", cl::Hidden, +# 117| cl::desc("Print LLVM IR input to isel pass")); +# 118|-> static cl::opt PrintGCInfo("print-gc", cl::Hidden, +# 119| cl::desc("Dump garbage collector data")); +# 120| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:121: constructor_uses_global_object: The constructor of global object "VerifyMachineCode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyMachineCode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 119| cl::desc("Dump garbage collector data")); +# 120| static cl::opt +# 121|-> VerifyMachineCode("verify-machineinstrs", cl::Hidden, +# 122| cl::desc("Verify generated machine code")); +# 123| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:124: constructor_uses_global_object: The constructor of global object "DebugifyAndStripAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugifyAndStripAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| cl::desc("Verify generated machine code")); +# 123| static cl::opt +# 124|-> DebugifyAndStripAll("debugify-and-strip-all-safe", cl::Hidden, +# 125| cl::desc("Debugify MIR before and Strip debug after " +# 126| "each pass except those known to be unsafe " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:128: constructor_uses_global_object: The constructor of global object "DebugifyCheckAndStripAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DebugifyCheckAndStripAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| "each pass except those known to be unsafe " +# 127| "when debug info is present")); +# 128|-> static cl::opt DebugifyCheckAndStripAll( +# 129| "debugify-check-and-strip-all-safe", cl::Hidden, +# 130| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:135: constructor_uses_global_object: The constructor of global object "EnableMachineOutliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMachineOutliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| "present")); +# 134| // Enable or disable the MachineOutliner. +# 135|-> static cl::opt EnableMachineOutliner( +# 136| "enable-machine-outliner", cl::desc("Enable the machine outliner"), +# 137| cl::Hidden, cl::ValueOptional, cl::init(RunOutliner::TargetDefault), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:147: constructor_uses_global_object: The constructor of global object "DisableCFIFixup" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCFIFixup" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 145| // the pipeline is controlled via the target options, this option serves as +# 146| // manual override. +# 147|-> static cl::opt DisableCFIFixup("disable-cfi-fixup", cl::Hidden, +# 148| cl::desc("Disable the CFI fixup pass")); +# 149| // Enable or disable FastISel. Both options are needed, because + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:153: constructor_uses_global_object: The constructor of global object "EnableFastISelOption" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFastISelOption" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| // able to enable or disable fast-isel independently from -O0. +# 152| static cl::opt +# 153|-> EnableFastISelOption("fast-isel", cl::Hidden, +# 154| cl::desc("Enable the \"fast\" instruction selector")); +# 155| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:156: constructor_uses_global_object: The constructor of global object "EnableGlobalISelOption" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalISelOption" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 154| cl::desc("Enable the \"fast\" instruction selector")); +# 155| +# 156|-> static cl::opt EnableGlobalISelOption( +# 157| "global-isel", cl::Hidden, +# 158| cl::desc("Enable the \"global\" instruction selector")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:163: constructor_uses_global_object: The constructor of global object "PrintAfterISel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAfterISel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| // first... +# 162| static cl::opt +# 163|-> PrintAfterISel("print-after-isel", cl::init(false), cl::Hidden, +# 164| cl::desc("Print machine instrs after ISel")); +# 165| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:166: constructor_uses_global_object: The constructor of global object "EnableGlobalISelAbort" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalISelAbort" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 164| cl::desc("Print machine instrs after ISel")); +# 165| +# 166|-> static cl::opt EnableGlobalISelAbort( +# 167| "global-isel-abort", cl::Hidden, +# 168| cl::desc("Enable abort calls when \"global\" instruction selection " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:178: constructor_uses_global_object: The constructor of global object "DisableRAFSProfileLoader" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableRAFSProfileLoader" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 176| // Disable MIRProfileLoader before RegAlloc. This is for for debugging and +# 177| // tuning purpose. +# 178|-> static cl::opt DisableRAFSProfileLoader( +# 179| "disable-ra-fsprofile-loader", cl::init(false), cl::Hidden, +# 180| cl::desc("Disable MIRProfileLoader before RegAlloc")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:183: constructor_uses_global_object: The constructor of global object "DisableLayoutFSProfileLoader" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLayoutFSProfileLoader" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 181| // Disable MIRProfileLoader before BloackPlacement. This is for for debugging +# 182| // and tuning purpose. +# 183|-> static cl::opt DisableLayoutFSProfileLoader( +# 184| "disable-layout-fsprofile-loader", cl::init(false), cl::Hidden, +# 185| cl::desc("Disable MIRProfileLoader before BlockPlacement")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:188: constructor_uses_global_object: The constructor of global object "FSProfileFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSProfileFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 186| // Specify FSProfile file name. +# 187| static cl::opt +# 188|-> FSProfileFile("fs-profile-file", cl::init(""), cl::value_desc("filename"), +# 189| cl::desc("Flow Sensitive profile file name."), cl::Hidden); +# 190| // Specify Remapping file for FSProfile. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:191: constructor_uses_global_object: The constructor of global object "FSRemappingFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FSRemappingFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 189| cl::desc("Flow Sensitive profile file name."), cl::Hidden); +# 190| // Specify Remapping file for FSProfile. +# 191|-> static cl::opt FSRemappingFile( +# 192| "fs-remapping-file", cl::init(""), cl::value_desc("filename"), +# 193| cl::desc("Flow Sensitive profile remapping file name."), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:200: constructor_uses_global_object: The constructor of global object "MISchedPostRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MISchedPostRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 198| // Targets can return true in targetSchedulesPostRAScheduling() and +# 199| // insert a PostRA scheduling pass wherever it wants. +# 200|-> static cl::opt MISchedPostRA( +# 201| "misched-postra", cl::Hidden, +# 202| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:206: constructor_uses_global_object: The constructor of global object "EarlyLiveIntervals" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EarlyLiveIntervals" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 204| +# 205| // Experimental option to run live interval analysis early. +# 206|-> static cl::opt EarlyLiveIntervals("early-live-intervals", cl::Hidden, +# 207| cl::desc("Run live interval analysis earlier in the pipeline")); +# 208| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:218: constructor_uses_global_object: The constructor of global object "StartAfterOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StartAfterOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 216| +# 217| static cl::opt +# 218|-> StartAfterOpt(StringRef(StartAfterOptName), +# 219| cl::desc("Resume compilation after a specific pass"), +# 220| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:223: constructor_uses_global_object: The constructor of global object "StartBeforeOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StartBeforeOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 221| +# 222| static cl::opt +# 223|-> StartBeforeOpt(StringRef(StartBeforeOptName), +# 224| cl::desc("Resume compilation before a specific pass"), +# 225| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:228: constructor_uses_global_object: The constructor of global object "StopAfterOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StopAfterOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 226| +# 227| static cl::opt +# 228|-> StopAfterOpt(StringRef(StopAfterOptName), +# 229| cl::desc("Stop compilation after a specific pass"), +# 230| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:233: constructor_uses_global_object: The constructor of global object "StopBeforeOpt[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StopBeforeOpt[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 231| +# 232| static cl::opt +# 233|-> StopBeforeOpt(StringRef(StopBeforeOptName), +# 234| cl::desc("Stop compilation before a specific pass"), +# 235| cl::value_desc("pass-name"), cl::init(""), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:238: constructor_uses_global_object: The constructor of global object "EnableMachineFunctionSplitter" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMachineFunctionSplitter" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 236| +# 237| /// Enable the machine function splitter pass. +# 238|-> static cl::opt EnableMachineFunctionSplitter( +# 239| "enable-split-machine-functions", cl::Hidden, +# 240| cl::desc("Split out cold blocks from machine functions based on profile " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:244: constructor_uses_global_object: The constructor of global object "DisableExpandReductions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableExpandReductions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 242| +# 243| /// Disable the expand reductions pass for testing. +# 244|-> static cl::opt DisableExpandReductions( +# 245| "disable-expand-reductions", cl::init(false), cl::Hidden, +# 246| cl::desc("Disable the expand reduction intrinsics pass from running")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:249: constructor_uses_global_object: The constructor of global object "DisableSelectOptimize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSelectOptimize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 247| +# 248| /// Disable the select optimization pass. +# 249|-> static cl::opt DisableSelectOptimize( +# 250| "disable-select-optimize", cl::init(true), cl::Hidden, +# 251| cl::desc("Disable the select-optimization pass from running")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetPassConfig.cpp:1102: constructor_uses_global_object: The constructor of global object "RegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 1100| static cl::opt> +# 1102|-> RegAlloc("regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), +# 1103| cl::desc("Register allocator to use")); +# 1104| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetRegisterInfo.cpp:48: constructor_uses_global_object: The constructor of global object "HugeSizeForSplit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HugeSizeForSplit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| +# 47| static cl::opt +# 48|-> HugeSizeForSplit("huge-size-for-split", cl::Hidden, +# 49| cl::desc("A threshold of live range size which may cause " +# 50| "high compile time cost in global splitting."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetSchedule.cpp:33: constructor_uses_global_object: The constructor of global object "EnableSchedModel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSchedModel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| using namespace llvm; +# 32| +# 33|-> static cl::opt EnableSchedModel("schedmodel", cl::Hidden, cl::init(true), +# 34| cl::desc("Use TargetSchedModel for latency lookup")); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TargetSchedule.cpp:36: constructor_uses_global_object: The constructor of global object "EnableSchedItins" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSchedItins" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| cl::desc("Use TargetSchedModel for latency lookup")); +# 35| +# 36|-> static cl::opt EnableSchedItins("scheditins", cl::Hidden, cl::init(true), +# 37| cl::desc("Use InstrItineraryData for latency lookup")); +# 38| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TwoAddressInstructionPass.cpp:76: constructor_uses_global_object: The constructor of global object "EnableRescheduling" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRescheduling" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| // Temporary flag to disable rescheduling. +# 75| static cl::opt +# 76|-> EnableRescheduling("twoaddr-reschedule", +# 77| cl::desc("Coalesce copies by rescheduling (default=true)"), +# 78| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TwoAddressInstructionPass.cpp:82: constructor_uses_global_object: The constructor of global object "MaxDataFlowEdge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxDataFlowEdge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| // Limit the number of dataflow edges to traverse when evaluating the benefit +# 81| // of commuting operands. +# 82|-> static cl::opt MaxDataFlowEdge( +# 83| "dataflow-edge-limit", cl::Hidden, cl::init(3), +# 84| cl::desc("Maximum number of dataflow edges to traverse when evaluating " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/TypePromotion.cpp:47: constructor_uses_global_object: The constructor of global object "DisablePromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| using namespace llvm; +# 46| +# 47|-> static cl::opt DisablePromotion("disable-type-promotion", cl::Hidden, +# 48| cl::init(false), +# 49| cl::desc("Disable type promotion pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:44: constructor_uses_global_object: The constructor of global object "IgnoreBBRegPressure" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IgnoreBBRegPressure" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| #define DEBUG_TYPE "machine-scheduler" +# 43| +# 44|-> static cl::opt IgnoreBBRegPressure("ignore-bb-reg-pressure", cl::Hidden, +# 45| cl::init(false)); +# 46| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:47: constructor_uses_global_object: The constructor of global object "UseNewerCandidate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseNewerCandidate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| cl::init(false)); +# 46| +# 47|-> static cl::opt UseNewerCandidate("use-newer-candidate", cl::Hidden, +# 48| cl::init(true)); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:50: constructor_uses_global_object: The constructor of global object "SchedDebugVerboseLevel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SchedDebugVerboseLevel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::init(true)); +# 49| +# 50|-> static cl::opt SchedDebugVerboseLevel("misched-verbose-level", +# 51| cl::Hidden, cl::init(1)); +# 52| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:55: constructor_uses_global_object: The constructor of global object "CheckEarlyAvail" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CheckEarlyAvail" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| // Check if the scheduler should penalize instructions that are available to +# 54| // early due to a zero-latency dependence. +# 55|-> static cl::opt CheckEarlyAvail("check-early-avail", cl::Hidden, +# 56| cl::init(true)); +# 57| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/VLIWMachineScheduler.cpp:61: constructor_uses_global_object: The constructor of global object "RPThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RPThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| // We compute the maximum number of registers needed and divided by the total +# 60| // available. Then, we compare the result to this value. +# 61|-> static cl::opt RPThreshold("vliw-misched-reg-pressure", cl::Hidden, +# 62| cl::init(0.75f), +# 63| cl::desc("High register pressure threhold.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/WinEHPrepare.cpp:43: constructor_uses_global_object: The constructor of global object "DisableDemotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDemotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| #define DEBUG_TYPE "winehprepare" +# 42| +# 43|-> static cl::opt DisableDemotion( +# 44| "disable-demotion", cl::Hidden, +# 45| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/WinEHPrepare.cpp:49: constructor_uses_global_object: The constructor of global object "DisableCleanups" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCleanups" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::init(false)); +# 48| +# 49|-> static cl::opt DisableCleanups( +# 50| "disable-cleanups", cl::Hidden, +# 51| cl::desc("Do not remove implausible terminators or other similar cleanups"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/CodeGen/WinEHPrepare.cpp:54: constructor_uses_global_object: The constructor of global object "DemoteCatchSwitchPHIOnlyOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DemoteCatchSwitchPHIOnlyOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::init(false)); +# 53| +# 54|-> static cl::opt DemoteCatchSwitchPHIOnlyOpt( +# 55| "demote-catchswitch-only", cl::Hidden, +# 56| cl::desc("Demote catchswitch BBs only (for wasm EH)"), cl::init(false)); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1219: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1219: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1222: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1220| reinterpret_cast(&LinkedAddress), +# 1221| OrigAddressByteSize); +# 1222|-> OutputBuffer.append(AddressBytes.begin(), AddressBytes.end()); +# 1223| } else +# 1224| Linker.reportWarning("cannot read DW_OP_addrx operand.", File); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1253: address_of: Taking address with "&LinkedAddress" yields a singleton pointer. +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1253: identity_transfer: Passing "reinterpret_cast(&LinkedAddress)" as argument 1 to constructor for class "ArrayRef", which sets "AddressBytes.Data" to that argument. +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1256: callee_ptr_arith: Passing "AddressBytes.Data" via argument "AddressBytes" to function "end" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 1254| reinterpret_cast(&LinkedAddress), +# 1255| OrigAddressByteSize); +# 1256|-> OutputBuffer.append(AddressBytes.begin(), AddressBytes.end()); +# 1257| } +# 1258| } else + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1968: var_decl: Declaring variable "LinkedExpression". +llvm-17.0.6.src/lib/DWARFLinker/DWARFLinker.cpp:1982: uninit_use_in_call: Using uninitialized value "LinkedExpression". Field "LinkedExpression.Expr.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1980| CurLocAttr.RelocAdjustment); +# 1981| +# 1982|-> LinkedLocationExpressions.push_back(LinkedExpression); +# 1983| } +# 1984| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/DWP/DWP.cpp:28: constructor_uses_global_object: The constructor of global object "MCTargetOptionsFlags" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MCTargetOptionsFlags" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| using namespace llvm::object; +# 27| +# 28|-> static mc::RegisterMCTargetOptionsFlags MCTargetOptionsFlags; +# 29| +# 30| // Returns the size of debug_str_offsets section headers in bytes. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1399: var_decl: Declaring variable "Lines". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1402: uninit_use: Using uninitialized value "Lines". Field "Lines.InlineElts" is uninitialized. +# 1400| DWARFCompileUnit *CU = getCompileUnitForCodeAddress(Address.Address); +# 1401| if (!CU) +# 1402|-> return Lines; +# 1403| +# 1404| uint32_t StartLine = 0; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1399: var_decl: Declaring variable "Lines". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1421: uninit_use: Using uninitialized value "Lines". Field "Lines.InlineElts" is uninitialized. +# 1419| Result.StartAddress = StartAddress; +# 1420| Lines.push_back(std::make_pair(Address.Address, Result)); +# 1421|-> return Lines; +# 1422| } +# 1423| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1399: var_decl: Declaring variable "Lines". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1430: uninit_use: Using uninitialized value "Lines". Field "Lines.InlineElts" is uninitialized. +# 1428| if (!LineTable->lookupAddressRange({Address.Address, Address.SectionIndex}, +# 1429| Size, RowVector)) { +# 1430|-> return Lines; +# 1431| } +# 1432| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1399: var_decl: Declaring variable "Lines". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1448: uninit_use: Using uninitialized value "Lines". Field "Lines.InlineElts" is uninitialized. +# 1446| } +# 1447| +# 1448|-> return Lines; +# 1449| } +# 1450| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1454: var_decl: Declaring variable "InliningInfo". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1458: uninit_use: Using uninitialized value "InliningInfo". Field "InliningInfo.Frames.InlineElts" is uninitialized. +# 1456| DWARFCompileUnit *CU = getCompileUnitForCodeAddress(Address.Address); +# 1457| if (!CU) +# 1458|-> return InliningInfo; +# 1459| +# 1460| const DWARFLineTable *LineTable = nullptr; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1454: var_decl: Declaring variable "InliningInfo". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFContext.cpp:1474: uninit_use: Using uninitialized value "InliningInfo". Field "InliningInfo.Frames.InlineElts" is uninitialized. +# 1472| InliningInfo.addFrame(Frame); +# 1473| } +# 1474|-> return InliningInfo; +# 1475| } +# 1476| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:213: var_decl: Declaring variable "FileEntry". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:227: uninit_use_in_call: Using uninitialized value "FileEntry". Field "FileEntry.Checksum" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 225| "the end of the prologue"); +# 226| } +# 227|-> FileNames.push_back(FileEntry); +# 228| } +# 229| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:311: var_decl: Declaring variable "FileEntry". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:346: uninit_use_in_call: Using uninitialized value "FileEntry". Field "FileEntry.Checksum" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 344| } +# 345| } +# 346|-> FileNames.push_back(FileEntry); +# 347| } +# 348| return Error::success(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:976: var_decl: Declaring variable "FileEntry". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:983: uninit_use_in_call: Using uninitialized value "FileEntry". Field "FileEntry.Checksum" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 981| FileEntry.ModTime = TableData.getULEB128(Cursor); +# 982| FileEntry.Length = TableData.getULEB128(Cursor); +# 983|-> Prologue.FileNames.push_back(FileEntry); +# 984| if (Cursor && Verbose) +# 985| *OS << " (" << Name << ", dir=" << FileEntry.DirIdx << ", mod_time=" + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFFormValue.cpp:96: var_decl: Declaring variable "V". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFFormValue.cpp:99: uninit_use_in_call: Using uninitialized value "V". Field "V.SectionIndex" is uninitialized when calling "DWARFFormValue". +# 97| V.uval = D.size(); +# 98| V.data = D.data(); +# 99|-> return DWARFFormValue(F, V); +# 100| } +# 101| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFUnit.cpp:799: var_decl: Declaring variable "LocationAddr" without initializer. +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFUnit.cpp:823: uninit_use: Using uninitialized value "LocationAddr". +# 821| } +# 822| +# 823|-> Address = LocationAddr; +# 824| break; +# 825| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFVerifier.cpp:1356: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/DebugInfo/DWARF/DWARFVerifier.cpp:1367: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1365| } +# 1366| +# 1367|-> return Result; +# 1368| } +# 1369| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/GSYM/GsymCreator.cpp:482: var_decl: Declaring variable "DstFI". +llvm-17.0.6.src/lib/DebugInfo/GSYM/GsymCreator.cpp:506: uninit_use_in_call: Using uninitialized value "DstFI". Field "DstFI.EncodingCache.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 504| } +# 505| std::lock_guard Guard(Mutex); +# 506|-> Funcs.push_back(DstFI); +# 507| return Funcs.back().cacheEncoding(); +# 508| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/LogicalView/Core/LVSupport.cpp:75: var_decl: Declaring variable "Indexes". +llvm-17.0.6.src/lib/DebugInfo/LogicalView/Core/LVSupport.cpp:117: uninit_use: Using uninitialized value "Indexes". Field "Indexes.InlineElts" is uninitialized. +# 115| Indexes.push_back(LexicalEntry(Current, Length - 1)); +# 116| LLVM_DEBUG({ PrintLexicalEntry(); }); +# 117|-> return Indexes; +# 118| } +# 119| + +Error: Y2K38_SAFETY (CWE-197): +llvm-17.0.6.src/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp:360: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "Sig.operator bool() ? *Sig : time(NULL)" is cast to "llvm::support::detail::packed_endian_specific_integral::value_type". +# 358| H->Guid = Info->getGuid(); +# 359| std::optional Sig = Info->getSignature(); +# 360|-> H->Signature = Sig ? *Sig : time(nullptr); +# 361| } +# 362| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/PDB/PDBContext.cpp:81: var_decl: Declaring variable "Table". +llvm-17.0.6.src/lib/DebugInfo/PDB/PDBContext.cpp:84: uninit_use: Using uninitialized value "Table". Field "Table.InlineElts" is uninitialized. +# 82| auto LineNumbers = Session->findLineNumbersByAddress(Address.Address, Size); +# 83| if (!LineNumbers || LineNumbers->getChildCount() == 0) +# 84|-> return Table; +# 85| +# 86| while (auto LineInfo = LineNumbers->getNext()) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/PDB/PDBContext.cpp:81: var_decl: Declaring variable "Table". +llvm-17.0.6.src/lib/DebugInfo/PDB/PDBContext.cpp:91: uninit_use: Using uninitialized value "Table". Field "Table.InlineElts" is uninitialized. +# 89| Table.push_back(std::make_pair(LineInfo->getVirtualAddress(), LineEntry)); +# 90| } +# 91|-> return Table; +# 92| } +# 93| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/DebugInfo/Symbolize/Markup.cpp:146: var_decl: Declaring variable "Node". +llvm-17.0.6.src/lib/DebugInfo/Symbolize/Markup.cpp:148: uninit_use: Using uninitialized value "Node". Field "Node.Fields.InlineElts" is uninitialized. +# 146| MarkupNode Node; +# 147| Node.Text = Text; +# 148|-> return Node; +# 149| } +# 150| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/DebugInfo/Symbolize/Symbolize.cpp:700: alloc_fn: Storage is returned from allocation function "microsoftDemangle". +llvm-17.0.6.src/lib/DebugInfo/Symbolize/Symbolize.cpp:700: var_assign: Assigning: "DemangledName" = storage returned from "llvm::microsoftDemangle(Name->operator std::__cxx11::basic_string, std::allocator >::__sv_type(), NULL, &status, (llvm::MSDemangleFlags)30)". +llvm-17.0.6.src/lib/DebugInfo/Symbolize/Symbolize.cpp:705: leaked_storage: Variable "DemangledName" going out of scope leaks the storage it points to. +# 703| MSDF_NoMemberType | MSDF_NoReturnType)); +# 704| if (status != 0) +# 705|-> return Name; +# 706| Result = DemangledName; +# 707| free(DemangledName); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Debuginfod/Debuginfod.cpp:67: var_decl: Declaring variable "DebuginfodUrls". +llvm-17.0.6.src/lib/Debuginfod/Debuginfod.cpp:69: uninit_use: Using uninitialized value "DebuginfodUrls". Field "DebuginfodUrls.InlineElts" is uninitialized. +# 67| SmallVector DebuginfodUrls; +# 68| StringRef(DebuginfodUrlsEnv).split(DebuginfodUrls, " "); +# 69|-> return DebuginfodUrls; +# 70| } +# 71| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Demangle/MicrosoftDemangle.cpp:1022: var_decl: Declaring variable "OuterContext". +llvm-17.0.6.src/lib/Demangle/MicrosoftDemangle.cpp:1023: uninit_use_in_call: Using uninitialized value "OuterContext". Field "OuterContext.FunctionParams" is uninitialized when calling "swap". +# 1021| +# 1022| BackrefContext OuterContext; +# 1023|-> std::swap(OuterContext, Backrefs); +# 1024| +# 1025| IdentifierNode *Identifier = + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:144: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:144: leaked_storage: Ignoring storage allocated by "I->release()" leaks it. +# 142| Module *Found = I->get(); +# 143| if (Found == M) { +# 144|-> I->release(); +# 145| Modules.erase(I); +# 146| clearGlobalMappingsFromModule(M); + +Error: OVERLAPPING_COPY: +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:671: equal: The address of "GV.FloatVal" is equal to the address of "GV". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:671: equal: The address of "GV.DoubleVal" is equal to the address of "GV". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:671: overlapping_assignment: Assigning "GV.DoubleVal" to "GV.FloatVal", which have overlapping memory locations and different types. +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:671: target_type: "GV.FloatVal" has type "float". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:671: source_type: "GV.DoubleVal" has type "double". +# 669| // FIXME long double +# 670| GenericValue GV = getConstantValue(Op0); +# 671|-> GV.FloatVal = float(GV.DoubleVal); +# 672| return GV; +# 673| } + +Error: OVERLAPPING_COPY: +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:677: equal: The address of "GV.DoubleVal" is equal to the address of "GV". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:677: equal: The address of "GV.FloatVal" is equal to the address of "GV". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:677: overlapping_assignment: Assigning "GV.FloatVal" to "GV.DoubleVal", which have overlapping memory locations and different types. +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:677: target_type: "GV.DoubleVal" has type "double". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:677: source_type: "GV.FloatVal" has type "float". +# 675| // FIXME long double +# 676| GenericValue GV = getConstantValue(Op0); +# 677|-> GV.DoubleVal = double(GV.FloatVal); +# 678| return GV; +# 679| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:719: var_decl: Declaring variable "apf". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:722: uninit_use_in_call: Using uninitialized value "apf.U" when calling "convertToInteger". +# 720| uint64_t v; +# 721| bool ignored; +# 722|-> (void)apf.convertToInteger(MutableArrayRef(v), BitWidth, +# 723| CE->getOpcode()==Instruction::FPToSI, +# 724| APFloat::rmTowardZero, &ignored); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:843: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:843: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 841| default: llvm_unreachable("Invalid long double opcode"); +# 842| case Instruction::FAdd: +# 843|-> apfLHS.add(APFloat(Sem, RHS.IntVal), APFloat::rmNearestTiesToEven); +# 844| GV.IntVal = apfLHS.bitcastToAPInt(); +# 845| break; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:839: var_decl: Declaring variable "apfLHS". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:843: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "add". +# 841| default: llvm_unreachable("Invalid long double opcode"); +# 842| case Instruction::FAdd: +# 843|-> apfLHS.add(APFloat(Sem, RHS.IntVal), APFloat::rmNearestTiesToEven); +# 844| GV.IntVal = apfLHS.bitcastToAPInt(); +# 845| break; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:847: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:847: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 845| break; +# 846| case Instruction::FSub: +# 847|-> apfLHS.subtract(APFloat(Sem, RHS.IntVal), +# 848| APFloat::rmNearestTiesToEven); +# 849| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:839: var_decl: Declaring variable "apfLHS". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:847: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "subtract". +# 845| break; +# 846| case Instruction::FSub: +# 847|-> apfLHS.subtract(APFloat(Sem, RHS.IntVal), +# 848| APFloat::rmNearestTiesToEven); +# 849| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:852: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:852: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 850| break; +# 851| case Instruction::FMul: +# 852|-> apfLHS.multiply(APFloat(Sem, RHS.IntVal), +# 853| APFloat::rmNearestTiesToEven); +# 854| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:839: var_decl: Declaring variable "apfLHS". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:852: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "multiply". +# 850| break; +# 851| case Instruction::FMul: +# 852|-> apfLHS.multiply(APFloat(Sem, RHS.IntVal), +# 853| APFloat::rmNearestTiesToEven); +# 854| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:857: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:857: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 855| break; +# 856| case Instruction::FDiv: +# 857|-> apfLHS.divide(APFloat(Sem, RHS.IntVal), +# 858| APFloat::rmNearestTiesToEven); +# 859| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:839: var_decl: Declaring variable "apfLHS". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:857: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "divide". +# 855| break; +# 856| case Instruction::FDiv: +# 857|-> apfLHS.divide(APFloat(Sem, RHS.IntVal), +# 858| APFloat::rmNearestTiesToEven); +# 859| GV.IntVal = apfLHS.bitcastToAPInt(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:862: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, RHS.IntVal)". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:862: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 860| break; +# 861| case Instruction::FRem: +# 862|-> apfLHS.mod(APFloat(Sem, RHS.IntVal)); +# 863| GV.IntVal = apfLHS.bitcastToAPInt(); +# 864| break; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:839: var_decl: Declaring variable "apfLHS". +llvm-17.0.6.src/lib/ExecutionEngine/ExecutionEngine.cpp:862: uninit_use_in_call: Using uninitialized value "apfLHS.U" when calling "mod". +# 860| break; +# 861| case Instruction::FRem: +# 862|-> apfLHS.mod(APFloat(Sem, RHS.IntVal)); +# 863| GV.IntVal = apfLHS.bitcastToAPInt(); +# 864| break; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/Execution.cpp:34: constructor_uses_global_object: The constructor of global object "PrintVolatile" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintVolatile" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| STATISTIC(NumDynamicInsts, "Number of dynamic instructions executed"); +# 33| +# 34|-> static cl::opt PrintVolatile("interpreter-print-volatile", cl::Hidden, +# 35| cl::desc("make the interpreter print every volatile load and store")); +# 36| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:274: var_decl: Declaring variable "Guard". +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:282: uninit_use_in_call: Using uninitialized value "Guard._M_device" when calling "unlock". +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:282: uninit_use_in_call: Using uninitialized value "Guard._M_owns" when calling "unlock". +# 280| if (ExFunc Fn = (FI == Fns.ExportedFunctions.end()) ? lookupFunction(F) +# 281| : FI->second) { +# 282|-> Guard.unlock(); +# 283| return Fn(F->getFunctionType(), ArgVals); +# 284| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:274: var_decl: Declaring variable "Guard". +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:300: uninit_use_in_call: Using uninitialized value "Guard._M_device" when calling "unlock". +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:300: uninit_use_in_call: Using uninitialized value "Guard._M_owns" when calling "unlock". +# 298| } +# 299| +# 300|-> Guard.unlock(); +# 301| +# 302| GenericValue Result; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:509: identity_transfer: Passing "18446744073709551615UL" as argument 1 to member function "getLimitedValue", which returns that argument. +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:509: overrun-buffer-arg: Calling "memcpy" with "llvm::GVTOP(Args[0UL])" and "(size_t)Args[2UL].IntVal.getLimitedValue(18446744073709551615UL)" is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned. +# 507| static GenericValue lle_X_memcpy(FunctionType *FT, +# 508| ArrayRef Args) { +# 509|-> memcpy(GVTOP(Args[0]), GVTOP(Args[1]), +# 510| (size_t)(Args[2].IntVal.getLimitedValue())); +# 511| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:509: identity_transfer: Passing "18446744073709551615UL" as argument 1 to member function "getLimitedValue", which returns that argument. +llvm-17.0.6.src/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp:509: overrun-buffer-arg: Calling "memcpy" with "llvm::GVTOP(Args[1UL])" and "(size_t)Args[2UL].IntVal.getLimitedValue(18446744073709551615UL)" is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned. +# 507| static GenericValue lle_X_memcpy(FunctionType *FT, +# 508| ArrayRef Args) { +# 509|-> memcpy(GVTOP(Args[0]), GVTOP(Args[1]), +# 510| (size_t)(Args[2].IntVal.getLimitedValue())); +# 511| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2511: extract: Calling "back" which extracts wrapped state from "IPLS->CurDefGeneratorStack". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2511: identity_transfer: Member function call "IPLS->CurDefGeneratorStack.back()->lock()" returns "IPLS->CurDefGeneratorStack.back()" ("this"). +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2511: assign: Assigning: "DG" = "IPLS->CurDefGeneratorStack.back()->lock()". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2512: invalidate: Calling "pop_back" invalidates the internal representation of "IPLS->CurDefGeneratorStack". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Core.cpp:2514: use_after_free: Using invalidated internal representation of "IPLS->CurDefGeneratorStack". +# 2512| IPLS->CurDefGeneratorStack.pop_back(); +# 2513| +# 2514|-> if (!DG) +# 2515| return IPLS->fail(make_error( +# 2516| "DefinitionGenerator removed while lookup in progress", + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp:521: var_decl: Declaring variable "Lock". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp:529: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp:529: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 527| // If there's no init sequence entry yet then we need to look up the +# 528| // header symbol to force creation of one. +# 529|-> Lock.unlock(); +# 530| +# 531| auto SearchOrder = +llvm-17.0.6.src/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp:529: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/IndirectionUtils.cpp:86: var_decl: Declaring variable "Lock". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/IndirectionUtils.cpp:93: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/IndirectionUtils.cpp:93: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 91| // callee. +# 92| if (I == AddrToSymbol.end()) { +# 93|-> Lock.unlock(); +# 94| ES.reportError( +# 95| make_error("No compile callback for trampoline at " + + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp:662: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp:662: leaked_storage: Ignoring storage allocated by "TmpMU.release()" leaks it. +# 660| +# 661| if (auto Err = unwrap(JD)->define(TmpMU)) { +# 662|-> TmpMU.release(); +# 663| return wrap(std::move(Err)); +# 664| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:142: tainted_data_argument: The check "Completed < static_cast(Size)" contains the tainted expression "Completed" which causes "Size" to be considered tainted. +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:143: overflow: The expression "Size - Completed" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:143: overflow_sink: "Size - Completed", which might have underflowed, is passed to "read(this->InFD, Dst + Completed, Size - Completed)". +# 141| ssize_t Completed = 0; +# 142| while (Completed < static_cast(Size)) { +# 143|-> ssize_t Read = ::read(InFD, Dst + Completed, Size - Completed); +# 144| if (Read <= 0) { +# 145| auto ErrNo = errno; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:172: tainted_data_argument: The check "Completed < static_cast(Size)" contains the tainted expression "Completed" which causes "Size" to be considered tainted. +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:173: overflow: The expression "Size - Completed" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp:173: overflow_sink: "Size - Completed", which might have underflowed, is passed to "write(this->OutFD, Src + Completed, Size - Completed)". +# 171| ssize_t Completed = 0; +# 172| while (Completed < static_cast(Size)) { +# 173|-> ssize_t Written = ::write(OutFD, Src + Completed, Size - Completed); +# 174| if (Written < 0) { +# 175| auto ErrNo = errno; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:28: var_decl: Declaring variable "BBs". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:41: uninit_use: Using uninitialized value "BBs". Field "BBs.InlineElts" is uninitialized. +# 39| BBs.emplace_back(&BB); +# 40| +# 41|-> return BBs; +# 42| } +# 43| } // namespace + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:137: var_decl: Declaring variable "RearrangedBBSet". +llvm-17.0.6.src/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp:145: uninit_use: Using uninitialized value "RearrangedBBSet". Field "RearrangedBBSet.InlineElts" is uninitialized. +# 143| assert(RearrangedBBSet.size() == BBList.size() && +# 144| "BasicBlock missing while rearranging?"); +# 145|-> return RearrangedBBSet; +# 146| } +# 147| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp:1470: move: "O" is moved (indicated by "std::move(O)"). +llvm-17.0.6.src/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp:1472: use_after_move: "O" is used after it has been already moved. +# 1470| OnEmitted(std::move(O), std::move(Info), std::move(Err)); +# 1471| +# 1472|-> RuntimeDyldImpl::finalizeAsync(std::move(RTDyld.Dyld), std::move(OnEmitted), +# 1473| std::move(O), std::move(Info)); +# 1474| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:55: constructor_uses_global_object: The constructor of global object "OptimisticAttributes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptimisticAttributes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| +# 54| static cl::opt +# 55|-> OptimisticAttributes("openmp-ir-builder-optimistic-attributes", cl::Hidden, +# 56| cl::desc("Use optimistic attributes describing " +# 57| "'as-if' properties of runtime calls."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:60: constructor_uses_global_object: The constructor of global object "UnrollThresholdFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(false)); +# 59| +# 60|-> static cl::opt UnrollThresholdFactor( +# 61| "openmp-ir-builder-unroll-threshold-factor", cl::Hidden, +# 62| cl::desc("Factor for the unroll threshold to account for code " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:933: var_decl: Declaring variable "Return" without initializer. +llvm-17.0.6.src/lib/Frontend/OpenMP/OMPIRBuilder.cpp:960: uninit_use_in_call: Using uninitialized value "Return" when calling "CreateIsNotNull". +# 958| BasicBlock *OffloadContBlock = +# 959| BasicBlock::Create(Builder.getContext(), "omp_offload.cont"); +# 960|-> Value *Failed = Builder.CreateIsNotNull(Return); +# 961| Builder.CreateCondBr(Failed, OffloadFailedBlock, OffloadContBlock); +# 962| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/FuzzMutate/OpDescriptor.cpp:30: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, 1UL)". +llvm-17.0.6.src/lib/FuzzMutate/OpDescriptor.cpp:30: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 28| auto &Sem = T->getFltSemantics(); +# 29| Cs.push_back(ConstantFP::get(Ctx, APFloat::getZero(Sem))); +# 30|-> Cs.push_back(ConstantFP::get(Ctx, APFloat(Sem, 1))); +# 31| Cs.push_back(ConstantFP::get(Ctx, APFloat(Sem, 42))); +# 32| Cs.push_back(ConstantFP::get(Ctx, APFloat::getLargest(Sem))); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/FuzzMutate/OpDescriptor.cpp:31: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, 42UL)". +llvm-17.0.6.src/lib/FuzzMutate/OpDescriptor.cpp:31: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 29| Cs.push_back(ConstantFP::get(Ctx, APFloat::getZero(Sem))); +# 30| Cs.push_back(ConstantFP::get(Ctx, APFloat(Sem, 1))); +# 31|-> Cs.push_back(ConstantFP::get(Ctx, APFloat(Sem, 42))); +# 32| Cs.push_back(ConstantFP::get(Ctx, APFloat::getLargest(Sem))); +# 33| Cs.push_back(ConstantFP::get(Ctx, APFloat::getSmallest(Sem))); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/IR/AsmWriter.cpp:2512: extract: Calling "get" which extracts wrapped state from local "MachineStorage". +llvm-17.0.6.src/lib/IR/AsmWriter.cpp:2512: escape: The internal representation of local "MachineStorage" escapes into "WriterCtx.Machine", but is destroyed when it exits scope. +# 2510| if (!WriterCtx.Machine) { +# 2511| MachineStorage = std::make_unique(WriterCtx.Context); +# 2512|-> WriterCtx.Machine = MachineStorage.get(); +# 2513| } +# 2514| int Slot = WriterCtx.Machine->getMetadataSlot(N); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/AutoUpgrade.cpp:49: constructor_uses_global_object: The constructor of global object "DisableAutoUpgradeDebugInfo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAutoUpgradeDebugInfo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> DisableAutoUpgradeDebugInfo("disable-auto-upgrade-debug-info", +# 50| cl::desc("Disable autoupgrade of debug info")); +# 51| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/IR/ConstantFold.cpp:151: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(DestTy->getFltSemantics(), CI->getValue())". +llvm-17.0.6.src/lib/IR/ConstantFold.cpp:151: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 149| // See note below regarding the PPC_FP128 restriction. +# 150| if (DestTy->isFloatingPointTy() && !DestTy->isPPC_FP128Ty()) +# 151|-> return ConstantFP::get(DestTy->getContext(), +# 152| APFloat(DestTy->getFltSemantics(), +# 153| CI->getValue())); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/IR/DataLayout.cpp:1000: var_decl: Declaring variable "Indices". +llvm-17.0.6.src/lib/IR/DataLayout.cpp:1009: uninit_use: Using uninitialized value "Indices". Field "Indices.InlineElts" is uninitialized. +# 1007| } +# 1008| +# 1009|-> return Indices; +# 1010| } +# 1011| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DebugInfoMetadata.cpp:32: constructor_uses_global_object: The constructor of global object "llvm::EnableFSDiscriminator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableFSDiscriminator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| namespace llvm { +# 31| // Use FS-AFDO discriminator. +# 32|-> cl::opt EnableFSDiscriminator( +# 33| "enable-fs-discriminator", cl::Hidden, +# 34| cl::desc("Enable adding flow sensitive discriminators")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DiagnosticHandler.cpp:46: constructor_uses_global_object: The constructor of global object "::PassRemarks[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PassRemarks[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| // -pass-remarks +# 45| // Command line flag to enable emitOptimizationRemark() +# 46|-> static cl::opt> PassRemarks( +# 47| "pass-remarks", cl::value_desc("pattern"), +# 48| cl::desc("Enable optimization remarks from passes whose name match " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DiagnosticHandler.cpp:54: constructor_uses_global_object: The constructor of global object "::PassRemarksMissed[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PassRemarksMissed[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // -pass-remarks-missed +# 53| // Command line flag to enable emitOptimizationRemarkMissed() +# 54|-> static cl::opt> PassRemarksMissed( +# 55| "pass-remarks-missed", cl::value_desc("pattern"), +# 56| cl::desc("Enable missed optimization remarks from passes whose name match " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/DiagnosticHandler.cpp:63: constructor_uses_global_object: The constructor of global object "::PassRemarksAnalysis[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PassRemarksAnalysis[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| // Command line flag to enable emitOptimizationRemarkAnalysis() +# 62| static cl::opt> +# 63|-> PassRemarksAnalysis( +# 64| "pass-remarks-analysis", cl::value_desc("pattern"), +# 65| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Dominators.cpp:41: constructor_uses_global_object: The constructor of global object "VerifyDomInfoX" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyDomInfoX" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| bool llvm::VerifyDomInfo = false; +# 40| static cl::opt +# 41|-> VerifyDomInfoX("verify-dom-info", cl::location(VerifyDomInfo), cl::Hidden, +# 42| cl::desc("Verify dominator info (time consuming)")); +# 43| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Function.cpp:79: constructor_uses_global_object: The constructor of global object "NonGlobalValueMaxNameSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NonGlobalValueMaxNameSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| template class llvm::SymbolTableListTraits; +# 78| +# 79|-> static cl::opt NonGlobalValueMaxNameSize( +# 80| "non-global-value-max-name-size", cl::Hidden, cl::init(1024), +# 81| cl::desc("Maximum size for the name of non-global values.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Instructions.cpp:51: constructor_uses_global_object: The constructor of global object "DisableI2pP2iOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableI2pP2iOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| using namespace llvm; +# 50| +# 51|-> static cl::opt DisableI2pP2iOpt( +# 52| "disable-i2p-p2i-opt", cl::init(false), +# 53| cl::desc("Disables inttoptr/ptrtoint roundtrip optimization")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/IR/LLVMRemarkStreamer.cpp:62: var_decl: Declaring variable "R". +llvm-17.0.6.src/lib/IR/LLVMRemarkStreamer.cpp:78: uninit_use: Using uninitialized value "R". Field "R.Args.InlineElts" is uninitialized. +# 76| } +# 77| +# 78|-> return R; +# 79| } +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/LegacyPassManager.cpp:50: constructor_uses_global_object: The constructor of global object "PassDebugging" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PassDebugging" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| } // namespace +# 49| +# 50|-> static cl::opt PassDebugging( +# 51| "debug-pass", cl::Hidden, +# 52| cl::desc("Print legacy PassManager debugging information"), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/IR/Metadata.cpp:207: var_decl: Declaring variable "MDUsers". +llvm-17.0.6.src/lib/IR/Metadata.cpp:210: uninit_use: Using uninitialized value "MDUsers". Field "MDUsers.InlineElts" is uninitialized. +# 208| for (auto *UserWithID : MDUsersWithID) +# 209| MDUsers.push_back(cast(UserWithID->first)); +# 210|-> return MDUsers; +# 211| } +# 212| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/ModuleSummaryIndex.cpp:29: constructor_uses_global_object: The constructor of global object "PropagateAttrs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PropagateAttrs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| "Number of live global variables marked write only"); +# 28| +# 29|-> static cl::opt PropagateAttrs("propagate-attrs", cl::init(true), +# 30| cl::Hidden, +# 31| cl::desc("Propagate attributes in index")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/ModuleSummaryIndex.cpp:33: constructor_uses_global_object: The constructor of global object "ImportConstantsWithRefs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ImportConstantsWithRefs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| cl::desc("Propagate attributes in index")); +# 32| +# 33|-> static cl::opt ImportConstantsWithRefs( +# 34| "import-constants-with-refs", cl::init(true), cl::Hidden, +# 35| cl::desc("Import constant global variables with references")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/OptBisect.cpp:28: constructor_uses_global_object: The constructor of global object "OptBisectLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptBisectLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| } +# 27| +# 28|-> static cl::opt OptBisectLimit("opt-bisect-limit", cl::Hidden, +# 29| cl::init(OptBisect::Disabled), cl::Optional, +# 30| cl::cb([](int Limit) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PassTimingInfo.cpp:40: constructor_uses_global_object: The constructor of global object "llvm::EnableTiming" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableTiming" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| bool TimePassesPerRun = false; +# 39| +# 40|-> static cl::opt EnableTiming( +# 41| "time-passes", cl::location(TimePassesIsEnabled), cl::Hidden, +# 42| cl::desc("Time each pass, printing elapsed time for each on exit")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PassTimingInfo.cpp:44: constructor_uses_global_object: The constructor of global object "llvm::EnableTimingPerRun" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableTimingPerRun" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| cl::desc("Time each pass, printing elapsed time for each on exit")); +# 43| +# 44|-> static cl::opt EnableTimingPerRun( +# 45| "time-passes-per-run", cl::location(TimePassesPerRun), cl::Hidden, +# 46| cl::desc("Time each pass run, printing elapsed time for each run on exit"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:21: constructor_uses_global_object: The constructor of global object "PrintBefore[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBefore[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 19| // Print IR out before/after specified passes. +# 20| static cl::list +# 21|-> PrintBefore("print-before", +# 22| llvm::cl::desc("Print IR before specified passes"), +# 23| cl::CommaSeparated, cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:26: constructor_uses_global_object: The constructor of global object "PrintAfter[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAfter[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::list +# 26|-> PrintAfter("print-after", llvm::cl::desc("Print IR after specified passes"), +# 27| cl::CommaSeparated, cl::Hidden); +# 28| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:29: constructor_uses_global_object: The constructor of global object "PrintBeforeAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintBeforeAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| cl::CommaSeparated, cl::Hidden); +# 28| +# 29|-> static cl::opt PrintBeforeAll("print-before-all", +# 30| llvm::cl::desc("Print IR before each pass"), +# 31| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:32: constructor_uses_global_object: The constructor of global object "PrintAfterAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAfterAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| llvm::cl::desc("Print IR before each pass"), +# 31| cl::init(false), cl::Hidden); +# 32|-> static cl::opt PrintAfterAll("print-after-all", +# 33| llvm::cl::desc("Print IR after each pass"), +# 34| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:60: constructor_uses_global_object: The constructor of global object "llvm::PrintChanged" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintChanged" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| // have the necessary facilities, the error message will be shown in place of +# 59| // the expected output. +# 60|-> cl::opt llvm::PrintChanged( +# 61| "print-changed", cl::desc("Print changed IRs"), cl::Hidden, +# 62| cl::ValueOptional, cl::init(ChangePrinter::None), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:82: constructor_uses_global_object: The constructor of global object "DiffBinary[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DiffBinary[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| // An option for specifying the diff used by print-changed=[diff | diff-quiet] +# 81| static cl::opt +# 82|-> DiffBinary("print-changed-diff-path", cl::Hidden, cl::init("diff"), +# 83| cl::desc("system diff used by change reporters")); +# 84| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:86: constructor_uses_global_object: The constructor of global object "PrintModuleScope" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintModuleScope" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> PrintModuleScope("print-module-scope", +# 87| cl::desc("When printing IR for print-[before|after]{-all} " +# 88| "always print a module IR"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:93: constructor_uses_global_object: The constructor of global object "FilterPasses[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FilterPasses[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| // See the description for -print-changed for an explanation of the use +# 92| // of this option. +# 93|-> static cl::list FilterPasses( +# 94| "filter-passes", cl::value_desc("pass names"), +# 95| cl::desc("Only consider IR changes for passes whose names " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/PrintPasses.cpp:100: constructor_uses_global_object: The constructor of global object "PrintFuncsList[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintFuncsList[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| +# 99| static cl::list +# 100|-> PrintFuncsList("filter-print-funcs", cl::value_desc("function names"), +# 101| cl::desc("Only print IR for functions whose name " +# 102| "match this for all print-[before|after][-all] " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/SafepointIRVerifier.cpp:58: constructor_uses_global_object: The constructor of global object "PrintOnly" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintOnly" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| /// when verification fails, report a message to the console (for FileCheck +# 57| /// usage) and continue execution as if nothing happened. +# 58|-> static cl::opt PrintOnly("safepoint-ir-verifier-print-only", +# 59| cl::init(false)); +# 60| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Value.cpp:39: constructor_uses_global_object: The constructor of global object "UseDerefAtPointSemantics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseDerefAtPointSemantics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| using namespace llvm; +# 38| +# 39|-> static cl::opt UseDerefAtPointSemantics( +# 40| "use-dereferenceable-at-point-semantics", cl::Hidden, cl::init(false), +# 41| cl::desc("Deref attributes and metadata infer facts at definition only")); + +Error: USE_AFTER_FREE (CWE-416): +llvm-17.0.6.src/lib/IR/Value.cpp:1147: identity_transfer: Member function call "Handles->getPointerIntoBucketsArray()" returns field "Buckets". +llvm-17.0.6.src/lib/IR/Value.cpp:1147: assign: Assigning: "OldBucketPtr" = "Handles->getPointerIntoBucketsArray()". +llvm-17.0.6.src/lib/IR/Value.cpp:1149: freed_arg: "operator []" frees "Handles.Buckets". +llvm-17.0.6.src/lib/IR/Value.cpp:1156: pass_freed_arg: Passing freed pointer "OldBucketPtr" as an argument to "isPointerIntoBucketsArray". +# 1154| // If reallocation didn't happen or if this was the first insertion, don't +# 1155| // walk the table. +# 1156|-> if (Handles.isPointerIntoBucketsArray(OldBucketPtr) || +# 1157| Handles.size() == 1) { +# 1158| return; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/IR/Verifier.cpp:128: constructor_uses_global_object: The constructor of global object "VerifyNoAliasScopeDomination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyNoAliasScopeDomination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| using namespace llvm; +# 127| +# 128|-> static cl::opt VerifyNoAliasScopeDomination( +# 129| "verify-noalias-scope-decl-dom", cl::Hidden, cl::init(false), +# 130| cl::desc("Ensure that llvm.experimental.noalias.scope.decl for identical " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/IR/Verifier.cpp:3728: var_decl: Declaring variable "Copy". +llvm-17.0.6.src/lib/IR/Verifier.cpp:3740: uninit_use: Using uninitialized value "Copy". Field "Copy.Attrs.InlineElts" is uninitialized. +# 3738| Attrs.hasParamAttr(I, Attribute::ByRef))) +# 3739| Copy.addAlignmentAttr(Attrs.getParamAlignment(I)); +# 3740|-> return Copy; +# 3741| } +# 3742| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/IR/Verifier.cpp:5216: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 87 (inclusive). +llvm-17.0.6.src/lib/IR/Verifier.cpp:5231: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 87 (inclusive) on the false branch. +llvm-17.0.6.src/lib/IR/Verifier.cpp:5237: overrun-call: Overrunning callee's array of size 84 by passing argument "Kind" (which evaluates to 87) in call to "canUseAsParamAttr". +# 5235| Check(isa(Call.getOperand(Elem.Begin + 1)), +# 5236| "the second argument should be a constant integral value", Call); +# 5237|-> } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5238| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5239| } else if (Attribute::canUseAsFnAttr(Kind)) { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/IR/Verifier.cpp:5216: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(Elem.Tag->getKey())". The value of "Kind" is now between 0 and 87 (inclusive). +llvm-17.0.6.src/lib/IR/Verifier.cpp:5231: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 87 (inclusive) on the false branch. +llvm-17.0.6.src/lib/IR/Verifier.cpp:5239: overrun-call: Overrunning callee's array of size 84 by passing argument "Kind" (which evaluates to 87) in call to "canUseAsFnAttr". +# 5237| } else if (Attribute::canUseAsParamAttr(Kind)) { +# 5238| Check((ArgCount) == 1, "this attribute should have one argument", Call); +# 5239|-> } else if (Attribute::canUseAsFnAttr(Kind)) { +# 5240| Check((ArgCount) == 0, "this attribute has no argument", Call); +# 5241| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTO.cpp:69: constructor_uses_global_object: The constructor of global object "DumpThinCGSCCs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DumpThinCGSCCs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| +# 68| static cl::opt +# 69|-> DumpThinCGSCCs("dump-thin-cg-sccs", cl::init(false), cl::Hidden, +# 70| cl::desc("Dump the SCCs in the ThinLTO index's callgraph")); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTO.cpp:74: constructor_uses_global_object: The constructor of global object "llvm::EnableLTOInternalization" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::EnableLTOInternalization" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| namespace llvm { +# 73| /// Enable global value internalization in LTO. +# 74|-> cl::opt EnableLTOInternalization( +# 75| "enable-lto-internalization", cl::init(true), cl::Hidden, +# 76| cl::desc("Enable global value internalization in LTO")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOBackend.cpp:61: constructor_uses_global_object: The constructor of global object "EmbedBitcode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmbedBitcode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| }; +# 60| +# 61|-> static cl::opt EmbedBitcode( +# 62| "lto-embed-bitcode", cl::init(LTOBitcodeEmbedding::DoNotEmbed), +# 63| cl::values(clEnumValN(LTOBitcodeEmbedding::DoNotEmbed, "none", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOBackend.cpp:72: constructor_uses_global_object: The constructor of global object "ThinLTOAssumeMerged" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ThinLTOAssumeMerged" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| cl::desc("Embed LLVM bitcode in object files produced by LTO")); +# 71| +# 72|-> static cl::opt ThinLTOAssumeMerged( +# 73| "thinlto-assume-merged", cl::init(false), +# 74| cl::desc("Assume the input has already undergone ThinLTO function " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:74: constructor_uses_global_object: The constructor of global object "llvm::LTODiscardValueNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTODiscardValueNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| +# 73| namespace llvm { +# 74|-> cl::opt LTODiscardValueNames( +# 75| "lto-discard-value-names", +# 76| cl::desc("Strip names from Value during LTO (other than GlobalValue)."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:84: constructor_uses_global_object: The constructor of global object "llvm::RemarksWithHotness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksWithHotness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 82| cl::Hidden); +# 83| +# 84|-> cl::opt RemarksWithHotness( +# 85| "lto-pass-remarks-with-hotness", +# 86| cl::desc("With PGO, include profile count in optimization remarks"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:90: constructor_uses_global_object: The constructor of global object "llvm::RemarksHotnessThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksHotnessThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| +# 89| cl::opt, false, remarks::HotnessThresholdParser> +# 90|-> RemarksHotnessThreshold( +# 91| "lto-pass-remarks-hotness-threshold", +# 92| cl::desc("Minimum profile count required for an " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:98: constructor_uses_global_object: The constructor of global object "llvm::RemarksFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| +# 97| cl::opt +# 98|-> RemarksFilename("lto-pass-remarks-output", +# 99| cl::desc("Output filename for pass remarks"), +# 100| cl::value_desc("filename")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:103: constructor_uses_global_object: The constructor of global object "llvm::RemarksPasses[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksPasses[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| +# 102| cl::opt +# 103|-> RemarksPasses("lto-pass-remarks-filter", +# 104| cl::desc("Only record optimization remarks from passes whose " +# 105| "names match the given regular expression"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:108: constructor_uses_global_object: The constructor of global object "llvm::RemarksFormat[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::RemarksFormat[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| cl::value_desc("regex")); +# 107| +# 108|-> cl::opt RemarksFormat( +# 109| "lto-pass-remarks-format", +# 110| cl::desc("The format used for serializing remarks (default: YAML)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:113: constructor_uses_global_object: The constructor of global object "llvm::LTOStatsFile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTOStatsFile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::value_desc("format"), cl::init("yaml")); +# 112| +# 113|-> cl::opt LTOStatsFile( +# 114| "lto-stats-file", +# 115| cl::desc("Save statistics to the specified file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:118: constructor_uses_global_object: The constructor of global object "llvm::AIXSystemAssemblerPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::AIXSystemAssemblerPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| cl::Hidden); +# 117| +# 118|-> cl::opt AIXSystemAssemblerPath( +# 119| "lto-aix-system-assembler", +# 120| cl::desc("Path to a system assembler, picked up on AIX only"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:124: constructor_uses_global_object: The constructor of global object "llvm::LTORunCSIRInstr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTORunCSIRInstr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| +# 123| cl::opt +# 124|-> LTORunCSIRInstr("cs-profile-generate", +# 125| cl::desc("Perform context sensitive PGO instrumentation")); +# 126| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/LTOCodeGenerator.cpp:128: constructor_uses_global_object: The constructor of global object "llvm::LTOCSIRProfile[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::LTOCSIRProfile[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| +# 127| cl::opt +# 128|-> LTOCSIRProfile("cs-profile-path", +# 129| cl::desc("Context sensitive profile file path")); +# 130| } // namespace llvm + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/SummaryBasedOptimizations.cpp:22: constructor_uses_global_object: The constructor of global object "ThinLTOSynthesizeEntryCounts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ThinLTOSynthesizeEntryCounts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| using namespace llvm; +# 21| +# 22|-> static cl::opt ThinLTOSynthesizeEntryCounts( +# 23| "thinlto-synthesize-entry-counts", cl::init(false), cl::Hidden, +# 24| cl::desc("Synthesize entry counts based on the summary")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/LTO/ThinLTOCodeGenerator.cpp:92: constructor_uses_global_object: The constructor of global object "::ThreadCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ThreadCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| // thred per core, as indicated by the usage of +# 91| // heavyweight_hardware_concurrency() below. +# 92|-> static cl::opt ThreadCount("threads", cl::init(0)); +# 93| +# 94| // Simple helper to save temporary files for debug. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/MC/MCAsmInfo.cpp:27: constructor_uses_global_object: The constructor of global object "DwarfExtendedLoc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DwarfExtendedLoc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| enum DefaultOnOff { Default, Enable, Disable }; +# 26| } +# 27|-> static cl::opt DwarfExtendedLoc( +# 28| "dwarf-extended-loc", cl::Hidden, +# 29| cl::desc("Disable emission of the extended flags in .loc directives."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/MC/MCAsmInfo.cpp:35: constructor_uses_global_object: The constructor of global object "llvm::UseLEB128Directives" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseLEB128Directives" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| namespace llvm { +# 35|-> cl::opt UseLEB128Directives( +# 36| "use-leb128-directives", cl::Hidden, +# 37| cl::desc( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/MCCodeView.cpp:506: var_decl: Declaring variable "CurSourceLoc" without initializer. +llvm-17.0.6.src/lib/MC/MCCodeView.cpp:586: uninit_use: Using uninitialized value "CurSourceLoc". Field "CurSourceLoc.Col" is uninitialized. +# 584| +# 585| LastLabel = Loc.getLabel(); +# 586|-> LastSourceLoc = CurSourceLoc; +# 587| } +# 588| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/MCParser/AsmParser.cpp:3260: var_decl: Declaring variable "Value". +llvm-17.0.6.src/lib/MC/MCParser/AsmParser.cpp:3269: uninit_use_in_call: Using uninitialized value "Value.U" when calling "~APFloat". +# 3267| Value = APFloat::getNaN(Semantics, false, ~0); +# 3268| else +# 3269|-> return TokError("invalid floating point literal"); +# 3270| } else if (errorToBool( +# 3271| Value.convertFromString(IDVal, APFloat::rmNearestTiesToEven) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/MCParser/AsmParser.cpp:3260: var_decl: Declaring variable "Value". +llvm-17.0.6.src/lib/MC/MCParser/AsmParser.cpp:3270: uninit_use_in_call: Using uninitialized value "Value.U" when calling "convertFromString". +# 3268| else +# 3269| return TokError("invalid floating point literal"); +# 3270|-> } else if (errorToBool( +# 3271| Value.convertFromString(IDVal, APFloat::rmNearestTiesToEven) +# 3272| .takeError())) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/MC/MCParser/MCAsmParser.cpp:25: constructor_uses_global_object: The constructor of global object "llvm::AsmMacroMaxNestingDepth" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::AsmMacroMaxNestingDepth" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| +# 24| namespace llvm { +# 25|-> cl::opt AsmMacroMaxNestingDepth( +# 26| "asm-macro-max-nesting-depth", cl::init(20), cl::Hidden, +# 27| cl::desc("The maximum nesting depth allowed for assembly macros.")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:1489: var_decl: Declaring variable "Refs". +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:1508: uninit_use: Using uninitialized value "Refs". Field "Refs.InlineElts" is uninitialized. +# 1506| } +# 1507| Refs.emplace_back(Start, getTok().getLoc().getPointer() - Start); +# 1508|-> return Refs; +# 1509| } +# 1510| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:3834: var_decl: Declaring variable "Value". +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:3844: uninit_use_in_call: Using uninitialized value "Value.U" when calling "~APFloat". +# 3842| Value = APFloat::getZero(Semantics); +# 3843| else +# 3844|-> return TokError("invalid floating point literal"); +# 3845| } else if (IDVal.consume_back("r") || IDVal.consume_back("R")) { +# 3846| // MASM hexadecimal floating-point literal; no APFloat conversion needed. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:3834: var_decl: Declaring variable "Value". +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:3850: uninit_use_in_call: Using uninitialized value "Value.U" when calling "~APFloat". +# 3848| unsigned SizeInBits = Value.getSizeInBits(Semantics); +# 3849| if (SizeInBits != (IDVal.size() << 2)) +# 3850|-> return TokError("invalid floating point literal"); +# 3851| +# 3852| // Consume the numeric token. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:3834: var_decl: Declaring variable "Value". +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:3857: uninit_use_in_call: Using uninitialized value "Value.U" when calling "~APFloat". +# 3855| Res = APInt(SizeInBits, IDVal, 16); +# 3856| if (SignLoc.isValid()) +# 3857|-> return Warning(SignLoc, "MASM-style hex floats ignore explicit sign"); +# 3858| return false; +# 3859| } else if (errorToBool( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:3834: var_decl: Declaring variable "Value". +llvm-17.0.6.src/lib/MC/MCParser/MasmParser.cpp:3859: uninit_use_in_call: Using uninitialized value "Value.U" when calling "convertFromString". +# 3857| return Warning(SignLoc, "MASM-style hex floats ignore explicit sign"); +# 3858| return false; +# 3859|-> } else if (errorToBool( +# 3860| Value.convertFromString(IDVal, APFloat::rmNearestTiesToEven) +# 3861| .takeError())) { + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/MC/MCSectionMachO.cpp:119: assignment: Assigning: "SectionType" = "this->getType()". The value of "SectionType" may now be up to 255. +llvm-17.0.6.src/lib/MC/MCSectionMachO.cpp:123: illegal_address: "SectionTypeDescriptors + SectionType" evaluates to an address that is at byte offset 8160 of an array of 736 bytes. +# 121| "Invalid SectionType specified!"); +# 122| +# 123|-> if (!SectionTypeDescriptors[SectionType].AssemblerName.empty()) { +# 124| OS << ','; +# 125| OS << SectionTypeDescriptors[SectionType].AssemblerName; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/WasmObjectWriter.cpp:1657: var_decl: Declaring variable "Global". +llvm-17.0.6.src/lib/MC/WasmObjectWriter.cpp:1682: uninit_use_in_call: Using uninitialized value "Global". Field "Global.InitExpr.Inst.Value" is uninitialized when calling "push_back". +# 1680| assert(WasmIndices.count(&WS) == 0); +# 1681| WasmIndices[&WS] = Global.Index; +# 1682|-> Globals.push_back(Global); +# 1683| } else { +# 1684| // An import; the index was assigned above + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/MC/WasmObjectWriter.cpp:1805: var_decl: Declaring variable "Info". +llvm-17.0.6.src/lib/MC/WasmObjectWriter.cpp:1817: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". +# 1815| } +# 1816| WS.setIndex(SymbolInfos.size()); +# 1817|-> SymbolInfos.emplace_back(Info); +# 1818| } +# 1819| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/MC/WinCOFFObjectWriter.cpp:672: assignment: Assigning: "SymbolSize" = "this->UseBigObj ? Symbol32Size : Symbol16Size". The value of "SymbolSize" is now 20. +llvm-17.0.6.src/lib/MC/WinCOFFObjectWriter.cpp:685: cond_between: Checking "Length > SymbolSize" implies that "Length" is between 1 and 20 (inclusive) on the false branch. +llvm-17.0.6.src/lib/MC/WinCOFFObjectWriter.cpp:690: overrun-local: Overrunning array of 20 bytes at byte offset 20 by dereferencing pointer "(char *)&Aux.Aux + Length". +# 688| } else { +# 689| memcpy(&Aux.Aux, Name.c_str() + Offset, Length); +# 690|-> memset((char *)&Aux.Aux + Length, 0, SymbolSize - Length); +# 691| break; +# 692| } + +Error: Y2K38_SAFETY (CWE-197): +llvm-17.0.6.src/lib/MC/WinCOFFObjectWriter.cpp:1136: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "getTime()" is cast to "uint32_t". +# 1134| // /INCREMENTAL feature. +# 1135| if (Asm.isIncrementalLinkerCompatible()) { +# 1136|-> Header.TimeDateStamp = getTime(); +# 1137| } else { +# 1138| // Have deterministic output if /INCREMENTAL isn't needed. Also matches GNU. + +Error: BUFFER_SIZE (CWE-170): +llvm-17.0.6.src/lib/ObjCopy/COFF/COFFWriter.cpp:151: buffer_size_warning: Calling "strncpy" with a maximum size argument of 8 bytes on destination array "S.Sym.Name.ShortName" of size 8 bytes might leave the destination string unterminated. +# 149| S.Sym.Name.Offset.Offset = StrTabBuilder.getOffset(S.Name); +# 150| } else { +# 151|-> strncpy(S.Sym.Name.ShortName, S.Name.data(), COFF::NameSize); +# 152| } +# 153| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjCopy/ELF/ELFObject.cpp:701: var_decl: Declaring variable "Sym". +llvm-17.0.6.src/lib/ObjCopy/ELF/ELFObject.cpp:718: uninit_use_in_call: Using uninitialized value "Sym.NameIndex" when calling "make_unique". +# 716| Sym.Size = SymbolSize; +# 717| Sym.Index = Symbols.size(); +# 718|-> Symbols.emplace_back(std::make_unique(Sym)); +# 719| Size += this->EntrySize; +# 720| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjCopy/ELF/ELFObject.cpp:701: var_decl: Declaring variable "Sym". +llvm-17.0.6.src/lib/ObjCopy/ELF/ELFObject.cpp:718: uninit_use_in_call: Using uninitialized value "Sym.NameIndex" when calling "make_unique". +llvm-17.0.6.src/lib/ObjCopy/ELF/ELFObject.cpp:718: uninit_use_in_call: Using uninitialized value "Sym.ShndxType" when calling "make_unique". +# 716| Sym.Size = SymbolSize; +# 717| Sym.Index = Symbols.size(); +# 718|-> Symbols.emplace_back(std::make_unique(Sym)); +# 719| Size += this->EntrySize; +# 720| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjCopy/ELF/ELFObject.cpp:1629: var_decl: Declaring variable "ToAdd". +llvm-17.0.6.src/lib/ObjCopy/ELF/ELFObject.cpp:1648: uninit_use_in_call: Using uninitialized value "ToAdd". Field "ToAdd.Addend" is uninitialized when calling "addRelocation". +# 1646| } +# 1647| +# 1648|-> Relocs->addRelocation(ToAdd); +# 1649| } +# 1650| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjCopy/MachO/MachOObjcopy.cpp:306: var_decl: Declaring variable "Sec". +llvm-17.0.6.src/lib/ObjCopy/MachO/MachOObjcopy.cpp:318: uninit_use_in_call: Using uninitialized value "Sec.Index" when calling "make_unique". +# 316| for (const std::unique_ptr
&S : LC.Sections) +# 317| Addr = std::max(Addr, S->Addr + S->Size); +# 318|-> LC.Sections.push_back(std::make_unique
(Sec)); +# 319| LC.Sections.back()->Addr = Addr; +# 320| return Error::success(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjCopy/MachO/MachOObjcopy.cpp:306: var_decl: Declaring variable "Sec". +llvm-17.0.6.src/lib/ObjCopy/MachO/MachOObjcopy.cpp:328: uninit_use_in_call: Using uninitialized value "Sec.Index" when calling "make_unique". +# 326| LoadCommand &NewSegment = +# 327| Obj.addSegment(TargetSegName, alignTo(Sec.Size, 16384)); +# 328|-> NewSegment.Sections.push_back(std::make_unique
(Sec)); +# 329| NewSegment.Sections.back()->Addr = *NewSegment.getSegmentVMAddr(); +# 330| return Error::success(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjCopy/MachO/MachOReader.cpp:223: var_decl: Declaring variable "SE". +llvm-17.0.6.src/lib/ObjCopy/MachO/MachOReader.cpp:229: uninit_use: Using uninitialized value "SE". Field "SE.Index" is uninitialized. +# 227| SE.n_desc = nlist.n_desc; +# 228| SE.n_value = nlist.n_value; +# 229|-> return SE; +# 230| } +# 231| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjCopy/wasm/WasmWriter.cpp:25: var_decl: Declaring variable "Header". +llvm-17.0.6.src/lib/ObjCopy/wasm/WasmWriter.cpp:45: uninit_use: Using uninitialized value "Header". Field "Header.InlineElts" is uninitialized. +# 43| // the LEB-encoded size. +# 44| SectionSize = SectionSize + 1 + HeaderSecSizeEncodingLen; +# 45|-> return Header; +# 46| } +# 47| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Object/IRSymtab.cpp:44: constructor_uses_global_object: The constructor of global object "DisableBitcodeVersionUpgrade" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBitcodeVersionUpgrade" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| using namespace irsymtab; +# 43| +# 44|-> static cl::opt DisableBitcodeVersionUpgrade( +# 45| "disable-bitcode-version-upgrade", cl::Hidden, +# 46| cl::desc("Disable automatic bitcode upgrade for version mismatch")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Object/MachOObjectFile.cpp:4348: var_decl: Declaring variable "CurSegAddress" without initializer. +llvm-17.0.6.src/lib/Object/MachOObjectFile.cpp:4366: uninit_use: Using uninitialized value "CurSegAddress". +# 4364| } +# 4365| Info.SegmentIndex = CurSegIndex - 1; +# 4366|-> Info.OffsetInSegment = Info.Address - CurSegAddress; +# 4367| Info.SegmentStartAddress = CurSegAddress; +# 4368| Sections.push_back(Info); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Object/MachOObjectFile.cpp:4488: var_decl: Declaring variable "Finish". +llvm-17.0.6.src/lib/Object/MachOObjectFile.cpp:4491: uninit_use_in_call: Using uninitialized value "Finish.Kind" when calling "MachOChainedFixupEntry". +# 4489| Finish.moveToEnd(); +# 4490| +# 4491|-> return make_range(fixup_iterator(Start), fixup_iterator(Finish)); +# 4492| } +# 4493| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:160: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:160: leaked_storage: Ignoring storage allocated by "ChildOrErr.get()->release()" leaks it. +# 158| } +# 159| if (!MFO) { +# 160|-> ChildOrErr.get().release(); +# 161| MFO.reset(O); +# 162| } + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:128: get_raw_ptr: Function "get" returns a pointer managed by "ChildOrErr.get()". +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:128: assign: Assigning: "Bin" = "ChildOrErr.get()->get()". +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:136: identity_transfer: Passing "Bin" as argument 1 to function "cast", which returns that argument. +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:136: assign: Assigning: "O" = "llvm::cast(Bin)". +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:161: multiple_init_smart_ptr: Function "reset" sets "MFO" with "O", but it is already managed by another smart pointer. +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:161: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 159| if (!MFO) { +# 160| ChildOrErr.get().release(); +# 161|-> MFO.reset(O); +# 162| } +# 163| } else if (Bin->isIR()) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:194: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:194: leaked_storage: Ignoring storage allocated by "ChildOrErr.get()->release()" leaks it. +# 192| } +# 193| } else { +# 194|-> ChildOrErr.get().release(); +# 195| IRFO.reset(O); +# 196| } + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:128: get_raw_ptr: Function "get" returns a pointer managed by "ChildOrErr.get()". +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:128: assign: Assigning: "Bin" = "ChildOrErr.get()->get()". +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:164: identity_transfer: Passing "Bin" as argument 1 to function "cast", which returns that argument. +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:164: assign: Assigning: "O" = "llvm::cast(Bin)". +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:195: multiple_init_smart_ptr: Function "reset" sets "IRFO" with "O", but it is already managed by another smart pointer. +llvm-17.0.6.src/lib/Object/MachOUniversalWriter.cpp:195: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 193| } else { +# 194| ChildOrErr.get().release(); +# 195|-> IRFO.reset(O); +# 196| } +# 197| } else + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:251: var_decl: Declaring variable "Result" without initializer. +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:256: uninit_use: Using uninitialized value "Result". Field "Result.Maximum" is uninitialized. +# 254| if (Result.Flags & wasm::WASM_LIMITS_FLAG_HAS_MAX) +# 255| Result.Maximum = readVaruint64(Ctx); +# 256|-> return Result; +# 257| } +# 258| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:626: var_decl: Declaring variable "Info". +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:798: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 796| Twine(Info.Name), +# 797| object_error::parse_failed); +# 798|-> LinkingData.SymbolTable.emplace_back(Info); +# 799| Symbols.emplace_back(LinkingData.SymbolTable.back(), GlobalType, TableType, +# 800| Signature); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:1195: var_decl: Declaring variable "F". +llvm-17.0.6.src/lib/Object/WasmObjectFile.cpp:1197: uninit_use_in_call: Using uninitialized value "F". Field "F.Index" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1195| wasm::WasmFunction F; +# 1196| F.SigIndex = Type; +# 1197|-> Functions.push_back(F); +# 1198| } +# 1199| if (Ctx.Ptr != Ctx.End) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjectYAML/CodeViewYAMLSymbols.cpp:646: var_decl: Declaring variable "Kind" without initializer. +llvm-17.0.6.src/lib/ObjectYAML/CodeViewYAMLSymbols.cpp:649: uninit_use_in_call: Using uninitialized value "Kind" when calling "mapRequired". +# 647| if (IO.outputting()) +# 648| Kind = Obj.Symbol->Kind; +# 649|-> IO.mapRequired("Kind", Kind); +# 650| +# 651| #define SYMBOL_RECORD(EnumName, EnumVal, ClassName) \ + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjectYAML/ELFYAML.cpp:1547: var_decl: Declaring variable "Type" without initializer. +llvm-17.0.6.src/lib/ObjectYAML/ELFYAML.cpp:1581: uninit_use_in_call: Using uninitialized value "Type.value" when calling "operator ==". +# 1579| +# 1580| const auto &Obj = *static_cast(IO.getContext()); +# 1581|-> if (Obj.getMachine() == ELF::EM_MIPS && Type == ELF::SHT_MIPS_ABIFLAGS) { +# 1582| if (!IO.outputting()) +# 1583| Section.reset(new ELFYAML::MipsABIFlags()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjectYAML/ELFYAML.cpp:1547: var_decl: Declaring variable "Type" without initializer. +llvm-17.0.6.src/lib/ObjectYAML/ELFYAML.cpp:1588: uninit_use_in_call: Using uninitialized value "Type.value" when calling "operator ==". +# 1586| } +# 1587| +# 1588|-> if (Obj.getMachine() == ELF::EM_ARM && Type == ELF::SHT_ARM_EXIDX) { +# 1589| if (!IO.outputting()) +# 1590| Section.reset(new ELFYAML::ARMIndexTableSection()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjectYAML/MachOEmitter.cpp:109: var_decl: Declaring variable "TempSec" without initializer. +llvm-17.0.6.src/lib/ObjectYAML/MachOEmitter.cpp:121: uninit_use: Using uninitialized value "TempSec". Field "TempSec.reserved3" is uninitialized. +# 119| TempSec.reserved1 = Sec.reserved1; +# 120| TempSec.reserved2 = Sec.reserved2; +# 121|-> return TempSec; +# 122| } +# 123| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjectYAML/MachOEmitter.cpp:693: var_decl: Declaring variable "FatArch" without initializer. +llvm-17.0.6.src/lib/ObjectYAML/MachOEmitter.cpp:699: uninit_use: Using uninitialized value "FatArch". Field "FatArch.reserved" is uninitialized. +# 697| FatArch.size = Arch.size; +# 698| FatArch.align = Arch.align; +# 699|-> return FatArch; +# 700| } +# 701| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ObjectYAML/MinidumpYAML.cpp:402: var_decl: Declaring variable "Type" without initializer. +llvm-17.0.6.src/lib/ObjectYAML/MinidumpYAML.cpp:405: uninit_use_in_call: Using uninitialized value "Type" when calling "mapRequired". +# 403| if (IO.outputting()) +# 404| Type = S->Type; +# 405|-> IO.mapRequired("Type", Type); +# 406| +# 407| if (!IO.outputting()) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilder.cpp:271: constructor_uses_global_object: The constructor of global object "llvm::PrintPipelinePasses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::PrintPipelinePasses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 269| +# 270| namespace llvm { +# 271|-> cl::opt PrintPipelinePasses( +# 272| "print-pipeline-passes", +# 273| cl::desc("Print a '-passes' compatible string describing the pipeline " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:138: constructor_uses_global_object: The constructor of global object "UseInlineAdvisor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseInlineAdvisor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| using namespace llvm; +# 137| +# 138|-> static cl::opt UseInlineAdvisor( +# 139| "enable-ml-inliner", cl::init(InliningAdvisorMode::Default), cl::Hidden, +# 140| cl::desc("Enable ML policy for inliner. Currently trained for -Oz only"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:148: constructor_uses_global_object: The constructor of global object "EnableSyntheticCounts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSyntheticCounts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 146| "Use release mode (AOT-compiled model)"))); +# 147| +# 148|-> static cl::opt EnableSyntheticCounts( +# 149| "enable-npm-synthetic-counts", cl::Hidden, +# 150| cl::desc("Run synthetic function entry count generation " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:155: constructor_uses_global_object: The constructor of global object "EnablePGOInlineDeferral" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePGOInlineDeferral" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 153| /// Flag to enable inline deferral during PGO. +# 154| static cl::opt +# 155|-> EnablePGOInlineDeferral("enable-npm-pgo-inline-deferral", cl::init(true), +# 156| cl::Hidden, +# 157| cl::desc("Enable inline deferral during PGO")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:159: constructor_uses_global_object: The constructor of global object "EnableModuleInliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableModuleInliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 157| cl::desc("Enable inline deferral during PGO")); +# 158| +# 159|-> static cl::opt EnableModuleInliner("enable-module-inliner", +# 160| cl::init(false), cl::Hidden, +# 161| cl::desc("Enable module inliner")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:163: constructor_uses_global_object: The constructor of global object "PerformMandatoryInliningsFirst" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PerformMandatoryInliningsFirst" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| cl::desc("Enable module inliner")); +# 162| +# 163|-> static cl::opt PerformMandatoryInliningsFirst( +# 164| "mandatory-inlining-first", cl::init(true), cl::Hidden, +# 165| cl::desc("Perform mandatory inlinings module-wide, before performing " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:168: constructor_uses_global_object: The constructor of global object "EnableEagerlyInvalidateAnalyses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEagerlyInvalidateAnalyses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 166| "inlining")); +# 167| +# 168|-> static cl::opt EnableEagerlyInvalidateAnalyses( +# 169| "eagerly-invalidate-analyses", cl::init(true), cl::Hidden, +# 170| cl::desc("Eagerly invalidate more analyses in default pipelines")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:172: constructor_uses_global_object: The constructor of global object "EnableMergeFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMergeFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 170| cl::desc("Eagerly invalidate more analyses in default pipelines")); +# 171| +# 172|-> static cl::opt EnableMergeFunctions( +# 173| "enable-merge-functions", cl::init(false), cl::Hidden, +# 174| cl::desc("Enable function merging as part of the optimization pipeline")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:176: constructor_uses_global_object: The constructor of global object "EnablePostPGOLoopRotation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePostPGOLoopRotation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 174| cl::desc("Enable function merging as part of the optimization pipeline")); +# 175| +# 176|-> static cl::opt EnablePostPGOLoopRotation( +# 177| "enable-post-pgo-loop-rotation", cl::init(true), cl::Hidden, +# 178| cl::desc("Run the loop rotation transformation after PGO instrumentation")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:180: constructor_uses_global_object: The constructor of global object "EnableGlobalAnalyses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalAnalyses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 178| cl::desc("Run the loop rotation transformation after PGO instrumentation")); +# 179| +# 180|-> static cl::opt EnableGlobalAnalyses( +# 181| "enable-global-analyses", cl::init(true), cl::Hidden, +# 182| cl::desc("Enable inter-procedural analyses")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:185: constructor_uses_global_object: The constructor of global object "RunPartialInlining" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RunPartialInlining" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 183| +# 184| static cl::opt +# 185|-> RunPartialInlining("enable-partial-inlining", cl::init(false), cl::Hidden, +# 186| cl::desc("Run Partial inlinining pass")); +# 187| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:188: constructor_uses_global_object: The constructor of global object "ExtraVectorizerPasses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExtraVectorizerPasses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 186| cl::desc("Run Partial inlinining pass")); +# 187| +# 188|-> static cl::opt ExtraVectorizerPasses( +# 189| "extra-vectorizer-passes", cl::init(false), cl::Hidden, +# 190| cl::desc("Run cleanup optimization passes after vectorization")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:192: constructor_uses_global_object: The constructor of global object "RunNewGVN" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RunNewGVN" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 190| cl::desc("Run cleanup optimization passes after vectorization")); +# 191| +# 192|-> static cl::opt RunNewGVN("enable-newgvn", cl::init(false), cl::Hidden, +# 193| cl::desc("Run the NewGVN pass")); +# 194| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:195: constructor_uses_global_object: The constructor of global object "EnableLoopInterchange" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoopInterchange" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 193| cl::desc("Run the NewGVN pass")); +# 194| +# 195|-> static cl::opt EnableLoopInterchange( +# 196| "enable-loopinterchange", cl::init(false), cl::Hidden, +# 197| cl::desc("Enable the experimental LoopInterchange Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:199: constructor_uses_global_object: The constructor of global object "EnableUnrollAndJam" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableUnrollAndJam" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 197| cl::desc("Enable the experimental LoopInterchange Pass")); +# 198| +# 199|-> static cl::opt EnableUnrollAndJam("enable-unroll-and-jam", +# 200| cl::init(false), cl::Hidden, +# 201| cl::desc("Enable Unroll And Jam Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:203: constructor_uses_global_object: The constructor of global object "EnableLoopFlatten" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoopFlatten" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 201| cl::desc("Enable Unroll And Jam Pass")); +# 202| +# 203|-> static cl::opt EnableLoopFlatten("enable-loop-flatten", cl::init(false), +# 204| cl::Hidden, +# 205| cl::desc("Enable the LoopFlatten Pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:208: constructor_uses_global_object: The constructor of global object "EnableDFAJumpThreading" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDFAJumpThreading" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 206| +# 207| static cl::opt +# 208|-> EnableDFAJumpThreading("enable-dfa-jump-thread", +# 209| cl::desc("Enable DFA jump threading"), +# 210| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:213: constructor_uses_global_object: The constructor of global object "EnableHotColdSplit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableHotColdSplit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 211| +# 212| static cl::opt +# 213|-> EnableHotColdSplit("hot-cold-split", +# 214| cl::desc("Enable hot-cold splitting pass")); +# 215| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:216: constructor_uses_global_object: The constructor of global object "EnableIROutliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableIROutliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 214| cl::desc("Enable hot-cold splitting pass")); +# 215| +# 216|-> static cl::opt EnableIROutliner("ir-outliner", cl::init(false), +# 217| cl::Hidden, +# 218| cl::desc("Enable ir outliner pass")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:221: constructor_uses_global_object: The constructor of global object "DisablePreInliner" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePreInliner" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 219| +# 220| static cl::opt +# 221|-> DisablePreInliner("disable-preinline", cl::init(false), cl::Hidden, +# 222| cl::desc("Disable pre-instrumentation inliner")); +# 223| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:224: constructor_uses_global_object: The constructor of global object "PreInlineThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreInlineThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 222| cl::desc("Disable pre-instrumentation inliner")); +# 223| +# 224|-> static cl::opt PreInlineThreshold( +# 225| "preinline-threshold", cl::Hidden, cl::init(75), +# 226| cl::desc("Control the amount of inlining in pre-instrumentation inliner " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:230: constructor_uses_global_object: The constructor of global object "EnableGVNHoist" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGVNHoist" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 228| +# 229| static cl::opt +# 230|-> EnableGVNHoist("enable-gvn-hoist", +# 231| cl::desc("Enable the GVN hoisting pass (default = off)")); +# 232| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:234: constructor_uses_global_object: The constructor of global object "EnableGVNSink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGVNSink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 232| +# 233| static cl::opt +# 234|-> EnableGVNSink("enable-gvn-sink", +# 235| cl::desc("Enable the GVN sinking pass (default = off)")); +# 236| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:240: constructor_uses_global_object: The constructor of global object "EnableCHR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCHR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 238| // profile loading. +# 239| static cl::opt +# 240|-> EnableCHR("enable-chr", cl::init(true), cl::Hidden, +# 241| cl::desc("Enable control height reduction optimization (CHR)")); +# 242| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:243: constructor_uses_global_object: The constructor of global object "FlattenedProfileUsed" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FlattenedProfileUsed" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 241| cl::desc("Enable control height reduction optimization (CHR)")); +# 242| +# 243|-> static cl::opt FlattenedProfileUsed( +# 244| "flattened-profile-used", cl::init(false), cl::Hidden, +# 245| cl::desc("Indicate the sample profile being used is flattened, i.e., " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:248: constructor_uses_global_object: The constructor of global object "EnableOrderFileInstrumentation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableOrderFileInstrumentation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 246| "no inline hierachy exists in the profile")); +# 247| +# 248|-> static cl::opt EnableOrderFileInstrumentation( +# 249| "enable-order-file-instrumentation", cl::init(false), cl::Hidden, +# 250| cl::desc("Enable order file instrumentation (default = off)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:253: constructor_uses_global_object: The constructor of global object "EnableMatrix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMatrix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 251| +# 252| static cl::opt +# 253|-> EnableMatrix("enable-matrix", cl::init(false), cl::Hidden, +# 254| cl::desc("Enable lowering of the matrix intrinsics")); +# 255| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:256: constructor_uses_global_object: The constructor of global object "EnableConstraintElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableConstraintElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 254| cl::desc("Enable lowering of the matrix intrinsics")); +# 255| +# 256|-> static cl::opt EnableConstraintElimination( +# 257| "enable-constraint-elimination", cl::init(true), cl::Hidden, +# 258| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:261: constructor_uses_global_object: The constructor of global object "AttributorRun" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AttributorRun" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 259| "Enable pass to eliminate conditions based on linear constraints")); +# 260| +# 261|-> static cl::opt AttributorRun( +# 262| "attributor-enable", cl::Hidden, cl::init(AttributorRunOption::NONE), +# 263| cl::desc("Enable the attributor inter-procedural deduction pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/PassBuilderPipelines.cpp:273: constructor_uses_global_object: The constructor of global object "EnableMemProfContextDisambiguation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemProfContextDisambiguation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 271| "disable attributor runs"))); +# 272| +# 273|-> cl::opt EnableMemProfContextDisambiguation( +# 274| "enable-memprof-context-disambiguation", cl::init(false), cl::Hidden, +# 275| cl::ZeroOrMore, cl::desc("Enable MemProf context disambiguation")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:47: constructor_uses_global_object: The constructor of global object "VerifyAnalysisInvalidation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyAnalysisInvalidation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| using namespace llvm; +# 46| +# 47|-> static cl::opt VerifyAnalysisInvalidation("verify-analysis-invalidation", +# 48| cl::Hidden, +# 49| #ifdef EXPENSIVE_CHECKS + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:60: constructor_uses_global_object: The constructor of global object "PrintChangedBefore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintChangedBefore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| // of this option. Note that this option has no effect without -print-changed. +# 59| static cl::opt +# 60|-> PrintChangedBefore("print-before-changed", +# 61| cl::desc("Print before passes that change them"), +# 62| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:67: constructor_uses_global_object: The constructor of global object "DotBinary[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotBinary[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| // print-changed=[dot-cfg | dot-cfg-quiet] +# 66| static cl::opt +# 67|-> DotBinary("print-changed-dot-path", cl::Hidden, cl::init("dot"), +# 68| cl::desc("system dot used by change reporters")); +# 69| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:74: constructor_uses_global_object: The constructor of global object "BeforeColour[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BeforeColour[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| // https://graphviz.org/pdf/dotguide.pdf +# 73| static cl::opt +# 74|-> BeforeColour("dot-cfg-before-color", +# 75| cl::desc("Color for dot-cfg before elements"), cl::Hidden, +# 76| cl::init("red")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:81: constructor_uses_global_object: The constructor of global object "AfterColour[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AfterColour[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| // https://graphviz.org/pdf/dotguide.pdf +# 80| static cl::opt +# 81|-> AfterColour("dot-cfg-after-color", +# 82| cl::desc("Color for dot-cfg after elements"), cl::Hidden, +# 83| cl::init("forestgreen")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:88: constructor_uses_global_object: The constructor of global object "CommonColour[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CommonColour[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 86| // https://graphviz.org/pdf/dotguide.pdf +# 87| static cl::opt +# 88|-> CommonColour("dot-cfg-common-color", +# 89| cl::desc("Color for dot-cfg common elements"), cl::Hidden, +# 90| cl::init("black")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:94: constructor_uses_global_object: The constructor of global object "DotCfgDir[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DotCfgDir[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| // An option that determines where the generated website file (named +# 93| // passes.html) and the associated pdf files (named diff_*.pdf) are saved. +# 94|-> static cl::opt DotCfgDir( +# 95| "dot-cfg-dir", +# 96| cl::desc("Generate dot files into specified directory for changed IRs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:100: constructor_uses_global_object: The constructor of global object "PrintOnCrashPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintOnCrashPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 98| +# 99| // Options to print the IR that was being processed when a pass crashes. +# 100|-> static cl::opt PrintOnCrashPath( +# 101| "print-on-crash-path", +# 102| cl::desc("Print the last form of the IR before crash to a file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:105: constructor_uses_global_object: The constructor of global object "PrintOnCrash" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintOnCrash" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 103| cl::Hidden); +# 104| +# 105|-> static cl::opt PrintOnCrash( +# 106| "print-on-crash", +# 107| cl::desc("Print the last form of the IR before crash (use -print-on-crash-path to dump to a file)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:110: constructor_uses_global_object: The constructor of global object "OptBisectPrintIRPath[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptBisectPrintIRPath[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| cl::Hidden); +# 109| +# 110|-> static cl::opt OptBisectPrintIRPath( +# 111| "opt-bisect-print-ir-path", +# 112| cl::desc("Print IR to path when opt-bisect-limit is reached"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:114: constructor_uses_global_object: The constructor of global object "PrintPassNumbers" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintPassNumbers" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| cl::desc("Print IR to path when opt-bisect-limit is reached"), cl::Hidden); +# 113| +# 114|-> static cl::opt PrintPassNumbers( +# 115| "print-pass-numbers", cl::init(false), cl::Hidden, +# 116| cl::desc("Print pass names and their ordinals")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:119: constructor_uses_global_object: The constructor of global object "PrintAtPassNumber" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PrintAtPassNumber" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| +# 118| static cl::opt +# 119|-> PrintAtPassNumber("print-at-pass-number", cl::init(0), cl::Hidden, +# 120| cl::desc("Print IR at pass with this number as " +# 121| "reported by print-passes-names")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:133: constructor_uses_global_object: The constructor of global object "::TestChanged[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::TestChanged[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 131| // The usual modifier options work as expected. +# 132| static cl::opt +# 133|-> TestChanged("exec-on-ir-change", cl::Hidden, cl::init(""), +# 134| cl::desc("exe called with module IR after each pass that " +# 135| "changes it")); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:1139: var_decl: Declaring variable "Functions". +llvm-17.0.6.src/lib/Passes/StandardInstrumentations.cpp:1147: uninit_use: Using uninitialized value "Functions". Field "Functions.InlineElts" is uninitialized. +# 1145| Functions.push_back(&F); +# 1146| } +# 1147|-> return Functions; +# 1148| } +# 1149| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:61: constructor_uses_global_object: The constructor of global object "StaticFuncFullModulePrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StaticFuncFullModulePrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 59| using namespace llvm; +# 60| +# 61|-> static cl::opt StaticFuncFullModulePrefix( +# 62| "static-func-full-module-prefix", cl::init(true), cl::Hidden, +# 63| cl::desc("Use full module build paths in the profile counter names for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:74: constructor_uses_global_object: The constructor of global object "StaticFuncStripDirNamePrefix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StaticFuncStripDirNamePrefix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| // the source directory name not being stripped. A non-zero option value here +# 73| // can potentially prevent some inter-module indirect-call-promotions. +# 74|-> static cl::opt StaticFuncStripDirNamePrefix( +# 75| "static-func-strip-dirname-prefix", cl::init(0), cl::Hidden, +# 76| cl::desc("Strip specified level of directory name from source path in " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:213: constructor_uses_global_object: The constructor of global object "llvm::DoInstrProfNameCompression" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DoInstrProfNameCompression" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 211| namespace llvm { +# 212| +# 213|-> cl::opt DoInstrProfNameCompression( +# 214| "enable-name-compression", +# 215| cl::desc("Enable name/filename string compression"), cl::init(true)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:1389: var_decl: Declaring variable "H" without initializer. +llvm-17.0.6.src/lib/ProfileData/InstrProf.cpp:1425: uninit_use_in_call: Using uninitialized value "H". Field "H.Unused" is uninitialized when calling "Expected". +# 1423| } +# 1424| +# 1425|-> return H; +# 1426| } +# 1427| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/ProfileData/InstrProfCorrelator.cpp:74: extract: Calling "get" which extracts wrapped state from temporary of type "std::unique_ptr >". +llvm-17.0.6.src/lib/ProfileData/InstrProfCorrelator.cpp:74: assign: Assigning: "" = "llvm::InstrProfCorrelator::get(std::unique_ptr >(std::move(*BufferOrErr)))". +llvm-17.0.6.src/lib/ProfileData/InstrProfCorrelator.cpp:74: escape: The internal representation of temporary of type "std::unique_ptr >" escapes, but is destroyed when it exits scope. +# 72| return std::move(Err); +# 73| +# 74|-> return get(std::move(*BufferOrErr)); +# 75| } +# 76| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ProfileData/MemProf.cpp:39: var_decl: Declaring variable "Record". +llvm-17.0.6.src/lib/ProfileData/MemProf.cpp:70: uninit_use: Using uninitialized value "Record". Field "Record.AllocSites.InlineElts" is uninitialized. +# 68| } +# 69| +# 70|-> return Record; +# 71| } +# 72| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:22: constructor_uses_global_object: The constructor of global object "llvm::UseContextLessSummary" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::UseContextLessSummary" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| +# 21| namespace llvm { +# 22|-> cl::opt UseContextLessSummary( +# 23| "profile-summary-contextless", cl::Hidden, +# 24| cl::desc("Merge context profiles before calculating thresholds.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:33: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryCutoffHot" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryCutoffHot" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| // threshold for determining cold count (everything <= this threshold is +# 32| // considered cold). +# 33|-> cl::opt ProfileSummaryCutoffHot( +# 34| "profile-summary-cutoff-hot", cl::Hidden, cl::init(990000), +# 35| cl::desc("A count is hot if it exceeds the minimum count to" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:38: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryCutoffCold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryCutoffCold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| " reach this percentile of total counts.")); +# 37| +# 38|-> cl::opt ProfileSummaryCutoffCold( +# 39| "profile-summary-cutoff-cold", cl::Hidden, cl::init(999999), +# 40| cl::desc("A count is cold if it is below the minimum count" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:43: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryHugeWorkingSetSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryHugeWorkingSetSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| " to reach this percentile of total counts.")); +# 42| +# 43|-> cl::opt ProfileSummaryHugeWorkingSetSizeThreshold( +# 44| "profile-summary-huge-working-set-size-threshold", cl::Hidden, +# 45| cl::init(15000), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:50: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryLargeWorkingSetSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryLargeWorkingSetSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| " percentile exceeds this count.")); +# 49| +# 50|-> cl::opt ProfileSummaryLargeWorkingSetSizeThreshold( +# 51| "profile-summary-large-working-set-size-threshold", cl::Hidden, +# 52| cl::init(12500), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:59: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryHotCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryHotCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| // The next two options override the counts derived from summary computation and +# 58| // are useful for debugging purposes. +# 59|-> cl::opt ProfileSummaryHotCount( +# 60| "profile-summary-hot-count", cl::ReallyHidden, +# 61| cl::desc("A fixed hot count that overrides the count derived from" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/ProfileSummaryBuilder.cpp:64: constructor_uses_global_object: The constructor of global object "llvm::ProfileSummaryColdCount" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::ProfileSummaryColdCount" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| " profile-summary-cutoff-hot")); +# 63| +# 64|-> cl::opt ProfileSummaryColdCount( +# 65| "profile-summary-cold-count", cl::ReallyHidden, +# 66| cl::desc("A fixed cold count that overrides the count derived from" + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:90: var_decl: Declaring variable "Items". +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:95: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 93| Ptr + I * sizeof(SegmentEntry))); +# 94| } +# 95|-> return Items; +# 96| } +# 97| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:104: var_decl: Declaring variable "Items". +llvm-17.0.6.src/lib/ProfileData/RawMemProfReader.cpp:112: uninit_use: Using uninitialized value "Items". Field "Items.InlineElts" is uninitialized. +# 110| Ptr += sizeof(MemInfoBlock); +# 111| } +# 112|-> return Items; +# 113| } +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/SampleProf.cpp:30: constructor_uses_global_object: The constructor of global object "ProfileSymbolListCutOff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileSymbolListCutOff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace sampleprof; +# 29| +# 30|-> static cl::opt ProfileSymbolListCutOff( +# 31| "profile-symbol-list-cutoff", cl::Hidden, cl::init(-1), +# 32| cl::desc("Cutoff value about how many symbols in profile symbol list " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/SampleProf.cpp:35: constructor_uses_global_object: The constructor of global object "GenerateMergedBaseProfiles" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateMergedBaseProfiles" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| "will be used. This is very useful for performance debugging")); +# 34| +# 35|-> static cl::opt GenerateMergedBaseProfiles( +# 36| "generate-merged-base-profiles", +# 37| cl::desc("When generating nested context-sensitive profiles, always " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/ProfileData/SampleProfReader.cpp:56: constructor_uses_global_object: The constructor of global object "ProfileIsFSDisciminator" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ProfileIsFSDisciminator" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| // It only applies to text, and binary format profiles. +# 55| // For ext-binary format profiles, the flag is set in the summary. +# 56|-> static cl::opt ProfileIsFSDisciminator( +# 57| "profile-isfs", cl::Hidden, cl::init(false), +# 58| cl::desc("Profile uses flow sensitive discriminators")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Remarks/RemarkStreamer.cpp:20: constructor_uses_global_object: The constructor of global object "EnableRemarksSection" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRemarksSection" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 18| using namespace llvm::remarks; +# 19| +# 20|-> static cl::opt EnableRemarksSection( +# 21| "remarks-section", +# 22| cl::desc( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFixedPoint.cpp:143: var_decl: Declaring variable "F". +llvm-17.0.6.src/lib/Support/APFixedPoint.cpp:144: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromAPInt". +# 142| APSInt MaxInt = APFixedPoint::getMax(*this).getValue(); +# 143| APFloat F(FloatSema); +# 144|-> APFloat::opStatus Status = F.convertFromAPInt(MaxInt, MaxInt.isSigned(), +# 145| APFloat::rmNearestTiesToAway); +# 146| if ((Status & APFloat::opOverflow) || !isSigned()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFixedPoint.cpp:503: var_decl: Declaring variable "Flt". +llvm-17.0.6.src/lib/Support/APFixedPoint.cpp:504: uninit_use_in_call: Using uninitialized value "Flt.U" when calling "convertFromAPInt". +# 502| // given mode. +# 503| APFloat Flt(*OpSema); +# 504|-> APFloat::opStatus S = Flt.convertFromAPInt(Val, Sema.isSigned(), RM); +# 505| +# 506| // If we cared about checking for precision loss, we could look at this + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFixedPoint.cpp:581: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(std::pow(2, DstFXSema->getLsbWeight()))". +llvm-17.0.6.src/lib/Support/APFixedPoint.cpp:581: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 579| // representable range of the fixed-point semantic even though no overflow +# 580| // would occur had we rounded first. +# 581|-> ScaleFactor = APFloat(std::pow(2, DstFXSema.getLsbWeight())); +# 582| ScaleFactor.convert(*OpSema, LosslessRM, &Ignored); +# 583| Val.roundToIntegral(RM); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Support/APFloat.cpp:749: assignment: Assigning: "n" = "0U". +llvm-17.0.6.src/lib/Support/APFloat.cpp:756: overrun-local: Overrunning array "partsCount" of 16 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "n - 1U" (which evaluates to 4294967295). +# 754| /* Calculate pow(5,pow(2,n+3)) if we haven't yet. */ +# 755| if (pc == 0) { +# 756|-> pc = partsCount[n - 1]; +# 757| APInt::tcFullMultiply(pow5, pow5 - pc, pow5 - pc, pc, pc); +# 758| pc *= 2; + +Error: NO_EFFECT (CWE-398): +llvm-17.0.6.src/lib/Support/APFloat.cpp:3270: bad_memset: Function "memset" with fill value "'0'" (the zero character) in "memset(dst, 48, hexDigits - 1U)". +llvm-17.0.6.src/lib/Support/APFloat.cpp:3270: remediation: Did you intend to use 0 (the value zero)? +# 3268| if (hexDigits > 1) { +# 3269| *dst++ = '.'; +# 3270|-> memset (dst, '0', hexDigits - 1); +# 3271| dst += hexDigits - 1; +# 3272| } + +Error: NO_EFFECT (CWE-398): +llvm-17.0.6.src/lib/Support/APFloat.cpp:3374: bad_memset: Function "memset" with fill value "'0'" (the zero character) in "memset(dst, 48, outputDigits)". +llvm-17.0.6.src/lib/Support/APFloat.cpp:3374: remediation: Did you intend to use 0 (the value zero)? +# 3372| } else { +# 3373| /* Add trailing zeroes. */ +# 3374|-> memset (dst, '0', outputDigits); +# 3375| dst += outputDigits; +# 3376| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:4825: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(RHS->bitcastToAPInt()))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:4825: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4823| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4824| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 4825|-> auto Ret = +# 4826| Tmp.divide(APFloat(semPPCDoubleDoubleLegacy, RHS.bitcastToAPInt()), RM); +# 4827| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:4834: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(RHS->bitcastToAPInt()))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:4834: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4832| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4833| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 4834|-> auto Ret = +# 4835| Tmp.remainder(APFloat(semPPCDoubleDoubleLegacy, RHS.bitcastToAPInt())); +# 4836| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:4843: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(RHS->bitcastToAPInt()))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:4843: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4841| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4842| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 4843|-> auto Ret = Tmp.mod(APFloat(semPPCDoubleDoubleLegacy, RHS.bitcastToAPInt())); +# 4844| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); +# 4845| return Ret; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:4854: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(Addend->bitcastToAPInt()))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:4854: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4852| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4853| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 4854|-> auto Ret = Tmp.fusedMultiplyAdd( +# 4855| APFloat(semPPCDoubleDoubleLegacy, Multiplicand.bitcastToAPInt()), +# 4856| APFloat(semPPCDoubleDoubleLegacy, Addend.bitcastToAPInt()), RM); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:4913: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semIEEEdouble, llvm::APInt(64U, 9218868437227405311UL, false))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:4913: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4911| void DoubleAPFloat::makeLargest(bool Neg) { +# 4912| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4913|-> Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x7fefffffffffffffull)); +# 4914| Floats[1] = APFloat(semIEEEdouble, APInt(64, 0x7c8ffffffffffffeull)); +# 4915| if (Neg) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:4914: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semIEEEdouble, llvm::APInt(64U, 8975674057349398526UL, false))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:4914: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4912| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4913| Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x7fefffffffffffffull)); +# 4914|-> Floats[1] = APFloat(semIEEEdouble, APInt(64, 0x7c8ffffffffffffeull)); +# 4915| if (Neg) +# 4916| changeSign(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:4927: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semIEEEdouble, llvm::APInt(64U, 243194379878006784UL, false))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:4927: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4925| void DoubleAPFloat::makeSmallestNormalized(bool Neg) { +# 4926| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4927|-> Floats[0] = APFloat(semIEEEdouble, APInt(64, 0x0360000000000000ull)); +# 4928| if (Neg) +# 4929| Floats[0].changeSign(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:4988: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(this->bitcastToAPInt()))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:4988: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4986| roundingMode RM, bool *IsExact) const { +# 4987| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 4988|-> return APFloat(semPPCDoubleDoubleLegacy, bitcastToAPInt()) +# 4989| .convertToInteger(Input, Width, IsSigned, RM, IsExact); +# 4990| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5007: var_decl: Declaring variable "Tmp". +llvm-17.0.6.src/lib/Support/APFloat.cpp:5008: uninit_use_in_call: Using uninitialized value "Tmp.U" when calling "convertFromSignExtendedInteger". +# 5006| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 5007| APFloat Tmp(semPPCDoubleDoubleLegacy); +# 5008|-> auto Ret = Tmp.convertFromSignExtendedInteger(Input, InputSize, IsSigned, RM); +# 5009| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); +# 5010| return Ret; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5018: var_decl: Declaring variable "Tmp". +llvm-17.0.6.src/lib/Support/APFloat.cpp:5019: uninit_use_in_call: Using uninitialized value "Tmp.U" when calling "convertFromZeroExtendedInteger". +# 5017| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 5018| APFloat Tmp(semPPCDoubleDoubleLegacy); +# 5019|-> auto Ret = Tmp.convertFromZeroExtendedInteger(Input, InputSize, IsSigned, RM); +# 5020| *this = DoubleAPFloat(semPPCDoubleDouble, Tmp.bitcastToAPInt()); +# 5021| return Ret; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5029: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(this->bitcastToAPInt()))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:5029: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5027| roundingMode RM) const { +# 5028| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 5029|-> return APFloat(semPPCDoubleDoubleLegacy, bitcastToAPInt()) +# 5030| .convertToHexString(DST, HexDigits, UpperCase, RM); +# 5031| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5075: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDoubleLegacy, llvm::APInt(this->bitcastToAPInt()))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:5075: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5073| bool TruncateZero) const { +# 5074| assert(Semantics == &semPPCDoubleDouble && "Unexpected Semantics"); +# 5075|-> APFloat(semPPCDoubleDoubleLegacy, bitcastToAPInt()) +# 5076| .toString(Str, FormatPrecision, FormatMaxPadding, TruncateZero); +# 5077| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5081: var_decl: Declaring variable "Tmp". +llvm-17.0.6.src/lib/Support/APFloat.cpp:5083: uninit_use_in_call: Using uninitialized value "Tmp.U" when calling "~APFloat". +# 5081| APFloat Tmp(semPPCDoubleDoubleLegacy, bitcastToAPInt()); +# 5082| if (!inv) +# 5083|-> return Tmp.getExactInverse(nullptr); +# 5084| APFloat Inv(semPPCDoubleDoubleLegacy); +# 5085| auto Ret = Tmp.getExactInverse(&Inv); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5086: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semPPCDoubleDouble, llvm::APInt(Inv.bitcastToAPInt()))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:5086: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5084| APFloat Inv(semPPCDoubleDoubleLegacy); +# 5085| auto Ret = Tmp.getExactInverse(&Inv); +# 5086|-> *inv = APFloat(semPPCDoubleDouble, Inv.bitcastToAPInt()); +# 5087| return Ret; +# 5088| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5081: var_decl: Declaring variable "Tmp". +llvm-17.0.6.src/lib/Support/APFloat.cpp:5087: uninit_use_in_call: Using uninitialized value "Tmp.U" when calling "~APFloat". +# 5085| auto Ret = Tmp.getExactInverse(&Inv); +# 5086| *inv = APFloat(semPPCDoubleDouble, Inv.bitcastToAPInt()); +# 5087|-> return Ret; +# 5088| } +# 5089| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5116: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::semIEEEdouble)". +llvm-17.0.6.src/lib/Support/APFloat.cpp:5116: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5114| if (usesLayout(Semantics)) { +# 5115| const fltSemantics& S = F.getSemantics(); +# 5116|-> new (&Double) +# 5117| DoubleAPFloat(Semantics, APFloat(std::move(F), S), +# 5118| APFloat(semIEEEdouble)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5137: uninit_in_ctor: Fields of "this" are uninitialized at the beginning of the constructor. +llvm-17.0.6.src/lib/Support/APFloat.cpp:5139: uninit_use_in_call: Using uninitialized value "this->U" when calling "convertFromString". +# 5137| APFloat::APFloat(const fltSemantics &Semantics, StringRef S) +# 5138| : APFloat(Semantics) { +# 5139|-> auto StatusOrErr = convertFromString(S, rmNearestTiesToEven); +# 5140| assert(StatusOrErr && "Invalid floating point representation"); +# 5141| consumeError(StatusOrErr.takeError()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/APFloat.cpp:5170: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(ToSemantics, llvm::APInt(this->U.IEEE.bitcastToAPInt()))". +llvm-17.0.6.src/lib/Support/APFloat.cpp:5170: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5168| assert(&ToSemantics == &semPPCDoubleDouble); +# 5169| auto Ret = U.IEEE.convert(semPPCDoubleDoubleLegacy, RM, losesInfo); +# 5170|-> *this = APFloat(ToSemantics, U.IEEE.bitcastToAPInt()); +# 5171| return Ret; +# 5172| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Support/ConvertUTFWrapper.cpp:66: address_of: Taking address with "&Source" yields a singleton pointer. +llvm-17.0.6.src/lib/Support/ConvertUTFWrapper.cpp:66: assign: Assigning: "SourceStart" = "&Source". +llvm-17.0.6.src/lib/Support/ConvertUTFWrapper.cpp:67: ptr_arith: Using "SourceStart" as an array. This might corrupt or misinterpret adjacent memory locations. +# 65| bool ConvertCodePointToUTF8(unsigned Source, char *&ResultPtr) { +# 66| const UTF32 *SourceStart = &Source; +# 67|-> const UTF32 *SourceEnd = SourceStart + 1; +# 68| UTF8 *TargetStart = reinterpret_cast(ResultPtr); +# 69| UTF8 *TargetEnd = TargetStart + 4; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Support/DJB.cpp:31: address_of: Taking address with "&C" yields a singleton pointer. +llvm-17.0.6.src/lib/Support/DJB.cpp:31: ptr_arith: Using "&C" as an array. This might corrupt or misinterpret adjacent memory locations. +# 29| // non-empty input. +# 30| assert(!Buffer.empty()); +# 31|-> ConvertUTF8toUTF32(&Begin8, reinterpret_cast(Buffer.end()), +# 32| &Begin32, &C + 1, lenientConversion); +# 33| Buffer = Buffer.drop_front(Begin8 - Begin8Const); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Support/DJB.cpp:38: address_of: Taking address with "&C" yields a singleton pointer. +llvm-17.0.6.src/lib/Support/DJB.cpp:38: assign: Assigning: "Begin32" = "&C". +llvm-17.0.6.src/lib/Support/DJB.cpp:43: callee_ptr_arith: Passing "Begin32" via argument "&Begin32" to function "ConvertUTF32toUTF8" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 41| // The case-folded output should always be a valid unicode character, so use +# 42| // strict mode here. +# 43|-> ConversionResult CR = ConvertUTF32toUTF8(&Begin32, &C + 1, &Begin8, +# 44| Storage.end(), strictConversion); +# 45| assert(CR == conversionOK && "Case folding produced invalid char?"); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Support/DJB.cpp:43: address_of: Taking address with "&C" yields a singleton pointer. +llvm-17.0.6.src/lib/Support/DJB.cpp:43: ptr_arith: Using "&C" as an array. This might corrupt or misinterpret adjacent memory locations. +# 41| // The case-folded output should always be a valid unicode character, so use +# 42| // strict mode here. +# 43|-> ConversionResult CR = ConvertUTF32toUTF8(&Begin32, &C + 1, &Begin8, +# 44| Storage.end(), strictConversion); +# 45| assert(CR == conversionOK && "Case folding produced invalid char?"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/MD5.cpp:282: var_decl: Declaring variable "Str". +llvm-17.0.6.src/lib/Support/MD5.cpp:284: uninit_use: Using uninitialized value "Str". Field "Str.InlineElts" is uninitialized. +# 282| SmallString<32> Str; +# 283| toHex(*this, /*LowerCase*/ true, Str); +# 284|-> return Str; +# 285| } +# 286| + +Error: NO_EFFECT (CWE-398): +llvm-17.0.6.src/lib/Support/NativeFormatting.cpp:151: bad_memset: Function "memset" with fill value "'0'" (the zero character) in "memset(NumberBuffer, 48, 128UL)". +llvm-17.0.6.src/lib/Support/NativeFormatting.cpp:151: remediation: Did you intend to use 0 (the value zero)? +# 149| +# 150| char NumberBuffer[kMaxWidth]; +# 151|-> ::memset(NumberBuffer, '0', std::size(NumberBuffer)); +# 152| if (Prefix) +# 153| NumberBuffer[1] = 'x'; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/Parallel.cpp:125: var_decl: Declaring variable "Lock". +llvm-17.0.6.src/lib/Support/Parallel.cpp:140: uninit_use_in_call: Using uninitialized value "Lock._M_device" when calling "unlock". +llvm-17.0.6.src/lib/Support/Parallel.cpp:140: uninit_use_in_call: Using uninitialized value "Lock._M_owns" when calling "unlock". +# 138| auto Task = std::move(Queue.back()); +# 139| Queue.pop_back(); +# 140|-> Lock.unlock(); +# 141| Task(); +# 142| if (Sequential) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Support/Path.cpp:1002: tainted_data_return: Called function "write(WriteFD, Buf, BytesRead)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Support/Path.cpp:1002: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Support/Path.cpp:1005: overflow: The expression "BytesRead" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Support/Path.cpp:1002: overflow_sink: "BytesRead", which might be negative, is passed to "write(WriteFD, Buf, BytesRead)". +# 1000| break; +# 1001| while (BytesRead) { +# 1002|-> BytesWritten = write(WriteFD, Buf, BytesRead); +# 1003| if (BytesWritten < 0) +# 1004| break; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Support/Path.cpp:1020: open_arg: "openFileForRead" opens handle stored into "ReadFD". +llvm-17.0.6.src/lib/Support/Path.cpp:1021: leaked_handle: Handle variable "ReadFD" going out of scope leaks the handle. +# 1019| int ReadFD, WriteFD; +# 1020| if (std::error_code EC = openFileForRead(From, ReadFD, OF_None)) +# 1021|-> return EC; +# 1022| if (std::error_code EC = +# 1023| openFileForWrite(To, WriteFD, CD_CreateAlways, OF_None)) { + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Support/Path.cpp:1039: open_arg: "openFileForRead" opens handle stored into "ReadFD". +llvm-17.0.6.src/lib/Support/Path.cpp:1040: leaked_handle: Handle variable "ReadFD" going out of scope leaks the handle. +# 1038| int ReadFD; +# 1039| if (std::error_code EC = openFileForRead(From, ReadFD, OF_None)) +# 1040|-> return EC; +# 1041| +# 1042| std::error_code EC = copy_file_internal(ReadFD, ToFD); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Support/Path.cpp:1071: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-17.0.6.src/lib/Support/Path.cpp:1072: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1070| int FD; +# 1071| if (auto EC = openFileForRead(Path, FD, OF_None)) +# 1072|-> return EC; +# 1073| +# 1074| auto Result = md5_contents(FD); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/ScaledNumber.cpp:185: var_decl: Declaring variable "Float". +llvm-17.0.6.src/lib/Support/ScaledNumber.cpp:187: uninit_use_in_call: Using uninitialized value "Float.U" when calling "toString". +# 185| APFloat Float(APFloat::x87DoubleExtended(), APInt(80, RawBits)); +# 186| SmallVector Chars; +# 187|-> Float.toString(Chars, Precision, 0); +# 188| return std::string(Chars.begin(), Chars.end()); +# 189| } + +Error: CTOR_DTOR_LEAK (CWE-401): +llvm-17.0.6.src/lib/Support/StringMap.cpp:54: alloc_fn: Calling allocation function "init". +llvm-17.0.6.src/lib/Support/StringMap.cpp:54: ctor_dtor_leak: The constructor allocates field "TheTable" of "llvm::StringMapImpl" but there is no destructor. +# 52| // buckets. To guarantee that "InitSize" number of entries can be inserted +# 53| // in the table without growing, we allocate just what is needed here. +# 54|-> init(getMinBucketToReserveForEntries(InitSize)); +# 55| return; +# 56| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/StringRef.cpp:605: var_decl: Declaring variable "F". +llvm-17.0.6.src/lib/Support/StringRef.cpp:606: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromString". +# 604| bool StringRef::getAsDouble(double &Result, bool AllowInexact) const { +# 605| APFloat F(0.0); +# 606|-> auto StatusOrErr = F.convertFromString(*this, APFloat::rmNearestTiesToEven); +# 607| if (errorToBool(StatusOrErr.takeError())) +# 608| return true; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Support/Unix/Path.inc:1119: open_arg: "openFile" opens handle stored into "FD". +llvm-17.0.6.src/lib/Support/Unix/Path.inc:1121: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1119| std::error_code EC = openFile(Name, FD, Disp, Access, Flags, Mode); +# 1120| if (EC) +# 1121|-> return errorCodeToError(EC); +# 1122| return FD; +# 1123| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Support/Unix/Path.inc:1170: open_arg: "openFileForRead" opens handle stored into "ResultFD". +llvm-17.0.6.src/lib/Support/Unix/Path.inc:1172: leaked_handle: Handle variable "ResultFD" going out of scope leaks the handle. +# 1170| std::error_code EC = openFileForRead(Name, ResultFD, Flags, RealPath); +# 1171| if (EC) +# 1172|-> return errorCodeToError(EC); +# 1173| return ResultFD; +# 1174| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/Unix/Program.inc:416: var_decl: Declaring variable "WaitResult". +llvm-17.0.6.src/lib/Support/Unix/Program.inc:428: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 426| if (WaitResult.Pid == 0) { +# 427| // Non-blocking wait. +# 428|-> return WaitResult; +# 429| } else { +# 430| if (SecondsToWait && errno == EINTR && !Polling) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/Unix/Program.inc:416: var_decl: Declaring variable "WaitResult". +llvm-17.0.6.src/lib/Support/Unix/Program.inc:447: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 445| +# 446| WaitResult.ReturnCode = -2; // Timeout detected +# 447|-> return WaitResult; +# 448| } else if (errno != EINTR) { +# 449| MakeErrMsg(ErrMsg, "Error waiting for child process"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/Unix/Program.inc:416: var_decl: Declaring variable "WaitResult". +llvm-17.0.6.src/lib/Support/Unix/Program.inc:451: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 449| MakeErrMsg(ErrMsg, "Error waiting for child process"); +# 450| WaitResult.ReturnCode = -1; +# 451|-> return WaitResult; +# 452| } +# 453| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/Unix/Program.inc:416: var_decl: Declaring variable "WaitResult". +llvm-17.0.6.src/lib/Support/Unix/Program.inc:483: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 481| *ErrMsg = llvm::sys::StrError(ENOENT); +# 482| WaitResult.ReturnCode = -1; +# 483|-> return WaitResult; +# 484| } +# 485| if (result == 126) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/Unix/Program.inc:416: var_decl: Declaring variable "WaitResult". +llvm-17.0.6.src/lib/Support/Unix/Program.inc:489: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 487| *ErrMsg = "Program could not be executed"; +# 488| WaitResult.ReturnCode = -1; +# 489|-> return WaitResult; +# 490| } +# 491| } else if (WIFSIGNALED(status)) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Support/Unix/Program.inc:416: var_decl: Declaring variable "WaitResult". +llvm-17.0.6.src/lib/Support/Unix/Program.inc:503: uninit_use: Using uninitialized value "WaitResult". Field "WaitResult.Process" is uninitialized. +# 501| WaitResult.ReturnCode = -2; +# 502| } +# 503|-> return WaitResult; +# 504| } +# 505| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Support/Unix/Signals.inc:122: alloc_fn: Storage is returned from allocation function "operator new". +llvm-17.0.6.src/lib/Support/Unix/Signals.inc:122: var_assign: Assigning: "NewHead" = storage returned from "new ::FileToRemoveList(Filename)". +llvm-17.0.6.src/lib/Support/Unix/Signals.inc:125: noescape: Resource "NewHead" is not freed or pointed-to in "compare_exchange_strong". +llvm-17.0.6.src/lib/Support/Unix/Signals.inc:129: leaked_storage: Variable "NewHead" going out of scope leaks the storage it points to. +# 127| OldHead = nullptr; +# 128| } +# 129|-> } +# 130| +# 131| // Not signal-safe. + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Support/Unix/Signals.inc:267: tainted_data_return: Called function "sysconf(_SC_SIGSTKSZ)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Support/Unix/Signals.inc:267: overflow: The expression "sysconf(_SC_SIGSTKSZ) + 65536L" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Support/Unix/Signals.inc:267: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Support/Unix/Signals.inc:279: overflow_sink: "AltStackSize", which might be negative, is passed to "llvm::safe_malloc(AltStackSize)". +# 277| +# 278| stack_t AltStack = {}; +# 279|-> AltStack.ss_sp = static_cast(safe_malloc(AltStackSize)); +# 280| NewAltStackPointer = AltStack.ss_sp; // Save to avoid reporting a leak. +# 281| AltStack.ss_size = AltStackSize; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Support/raw_ostream.cpp:589: open_arg: "openFileForReadWrite" opens handle stored into "FD". +llvm-17.0.6.src/lib/Support/raw_ostream.cpp:593: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 591| EC = sys::fs::openFileForWrite(Filename, FD, Disp, Flags); +# 592| if (EC) +# 593|-> return -1; +# 594| +# 595| return FD; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:41: constructor_uses_global_object: The constructor of global object "OutputFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OutputFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| static cl::opt +# 41|-> OutputFilename("o", cl::desc("Output filename"), cl::value_desc("filename"), +# 42| cl::init("-")); +# 43| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:45: constructor_uses_global_object: The constructor of global object "DependFilename[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DependFilename[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| static cl::opt +# 45|-> DependFilename("d", +# 46| cl::desc("Dependency filename"), +# 47| cl::value_desc("filename"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:51: constructor_uses_global_object: The constructor of global object "InputFilename[abi:cxx11]" itself makes use of global object "GlobalParser" defined in another compilation unit. The order of construction is unspecified, so "InputFilename[abi:cxx11]" might be created before "GlobalParser" is available. +# 49| +# 50| static cl::opt +# 51|-> InputFilename(cl::Positional, cl::desc(""), cl::init("-")); +# 52| +# 53| static cl::list + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:54: constructor_uses_global_object: The constructor of global object "IncludeDirs[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IncludeDirs[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::list +# 54|-> IncludeDirs("I", cl::desc("Directory of include files"), +# 55| cl::value_desc("directory"), cl::Prefix); +# 56| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:58: constructor_uses_global_object: The constructor of global object "MacroNames[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MacroNames[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| +# 57| static cl::list +# 58|-> MacroNames("D", cl::desc("Name of the macro to be defined"), +# 59| cl::value_desc("macro name"), cl::Prefix); +# 60| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:62: constructor_uses_global_object: The constructor of global object "WriteIfChanged" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WriteIfChanged" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> WriteIfChanged("write-if-changed", cl::desc("Only write output if it changed")); +# 63| +# 64| static cl::opt + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:65: constructor_uses_global_object: The constructor of global object "TimePhases" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TimePhases" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| +# 64| static cl::opt +# 65|-> TimePhases("time-phases", cl::desc("Time phases of parser and backend")); +# 66| +# 67| static cl::opt NoWarnOnUnusedTemplateArgs( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/Main.cpp:67: constructor_uses_global_object: The constructor of global object "NoWarnOnUnusedTemplateArgs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoWarnOnUnusedTemplateArgs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| TimePhases("time-phases", cl::desc("Time phases of parser and backend")); +# 66| +# 67|-> static cl::opt NoWarnOnUnusedTemplateArgs( +# 68| "no-warn-on-unused-template-args", +# 69| cl::desc("Disable unused template argument warnings.")); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/TableGen/Record.cpp:239: new_object: Calling single-object form of 'new': "new (Mem) llvm::RecordRecTy(RK, Classes.size())". +llvm-17.0.6.src/lib/TableGen/Record.cpp:239: assign: Assigning: "Ty" = "new (Mem) llvm::RecordRecTy(RK, Classes.size())". +llvm-17.0.6.src/lib/TableGen/Record.cpp:240: callee_ptr_arith: Passing "Ty" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 238| totalSizeToAlloc(Classes.size()), alignof(RecordRecTy)); +# 239| RecordRecTy *Ty = new (Mem) RecordRecTy(RK, Classes.size()); +# 240|-> std::uninitialized_copy(Classes.begin(), Classes.end(), +# 241| Ty->getTrailingObjects()); +# 242| ThePool.InsertNode(Ty, IP); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/TableGen/Record.cpp:447: new_object: Calling single-object form of 'new': "new (Mem) llvm::BitsInit(RK, Range.size())". +llvm-17.0.6.src/lib/TableGen/Record.cpp:447: assign: Assigning: "I" = "new (Mem) llvm::BitsInit(RK, Range.size())". +llvm-17.0.6.src/lib/TableGen/Record.cpp:448: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 446| alignof(BitsInit)); +# 447| BitsInit *I = new (Mem) BitsInit(RK, Range.size()); +# 448|-> std::uninitialized_copy(Range.begin(), Range.end(), +# 449| I->getTrailingObjects()); +# 450| RKImpl.TheBitsInitPool.InsertNode(I, IP); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/TableGen/Record.cpp:674: new_object: Calling single-object form of 'new': "new (Mem) llvm::ListInit(Range.size(), EltTy)". +llvm-17.0.6.src/lib/TableGen/Record.cpp:674: assign: Assigning: "I" = "new (Mem) llvm::ListInit(Range.size(), EltTy)". +llvm-17.0.6.src/lib/TableGen/Record.cpp:675: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 673| alignof(ListInit)); +# 674| ListInit *I = new (Mem) ListInit(Range.size(), EltTy); +# 675|-> std::uninitialized_copy(Range.begin(), Range.end(), +# 676| I->getTrailingObjects()); +# 677| RK.TheListInitPool.InsertNode(I, IP); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/TableGen/Record.cpp:2199: new_object: Calling single-object form of 'new': "new (Mem) llvm::VarDefInit(Class, Args.size())". +llvm-17.0.6.src/lib/TableGen/Record.cpp:2199: assign: Assigning: "I" = "new (Mem) llvm::VarDefInit(Class, Args.size())". +llvm-17.0.6.src/lib/TableGen/Record.cpp:2200: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2198| totalSizeToAlloc(Args.size()), alignof(VarDefInit)); +# 2199| VarDefInit *I = new (Mem) VarDefInit(Class, Args.size()); +# 2200|-> std::uninitialized_copy(Args.begin(), Args.end(), +# 2201| I->getTrailingObjects()); +# 2202| RK.TheVarDefInitPool.InsertNode(I, IP); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/TableGen/Record.cpp:2391: new_object: Calling single-object form of 'new': "new (Mem) llvm::CondOpInit(CondRange.size(), Ty)". +llvm-17.0.6.src/lib/TableGen/Record.cpp:2391: assign: Assigning: "I" = "new (Mem) llvm::CondOpInit(CondRange.size(), Ty)". +llvm-17.0.6.src/lib/TableGen/Record.cpp:2393: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2391| CondOpInit *I = new(Mem) CondOpInit(CondRange.size(), Ty); +# 2392| +# 2393|-> std::uninitialized_copy(CondRange.begin(), CondRange.end(), +# 2394| I->getTrailingObjects()); +# 2395| std::uninitialized_copy(ValRange.begin(), ValRange.end(), + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/TableGen/Record.cpp:2515: new_object: Calling single-object form of 'new': "new (Mem) llvm::DagInit(V, VN, ArgRange.size(), NameRange.size())". +llvm-17.0.6.src/lib/TableGen/Record.cpp:2515: assign: Assigning: "I" = "new (Mem) llvm::DagInit(V, VN, ArgRange.size(), NameRange.size())". +llvm-17.0.6.src/lib/TableGen/Record.cpp:2516: callee_ptr_arith: Passing "I" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 2514| alignof(BitsInit)); +# 2515| DagInit *I = new (Mem) DagInit(V, VN, ArgRange.size(), NameRange.size()); +# 2516|-> std::uninitialized_copy(ArgRange.begin(), ArgRange.end(), +# 2517| I->getTrailingObjects()); +# 2518| std::uninitialized_copy(NameRange.begin(), NameRange.end(), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:742: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:751: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 749| Result.Rec = ParseClassID(); +# 750| } +# 751|-> if (!Result.Rec) return Result; +# 752| +# 753| // If there is no template arg list, we're done. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:742: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:756: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 754| if (!consume(tgtok::less)) { +# 755| Result.RefRange.End = Lex.getLoc(); +# 756|-> return Result; +# 757| } +# 758| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:742: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:762: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 760| isDefm)) { +# 761| Result.Rec = nullptr; // Error parsing value list. +# 762|-> return Result; +# 763| } +# 764| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:742: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:772: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 770| +# 771| Result.RefRange.End = Lex.getLoc(); +# 772|-> return Result; +# 773| } +# 774| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:784: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:788: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 786| +# 787| Result.MC = ParseMultiClassID(); +# 788|-> if (!Result.MC) return Result; +# 789| +# 790| // If there is no template arg list, we're done. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:784: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:793: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 791| if (!consume(tgtok::less)) { +# 792| Result.RefRange.End = Lex.getLoc(); +# 793|-> return Result; +# 794| } +# 795| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:784: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:799: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 797| &Result.MC->Rec, true)) { +# 798| Result.MC = nullptr; // Error parsing value list. +# 799|-> return Result; +# 800| } +# 801| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:784: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/TableGen/TGParser.cpp:804: uninit_use: Using uninitialized value "Result". Field "Result.TemplateArgs.InlineElts" is uninitialized. +# 802| Result.RefRange.End = Lex.getLoc(); +# 803| +# 804|-> return Result; +# 805| } +# 806| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/TableGenBackendSkeleton.cpp:64: constructor_uses_global_object: The constructor of global object "Y" itself makes use of global object "llvm::TableGen::Emitter::Action" defined in another compilation unit. The order of construction is unspecified, so "Y" might be created before "llvm::TableGen::Emitter::Action" is available. +# 62| } +# 63| +# 64|-> static TableGen::Emitter::Opt Y("gen-skeleton-entry", EmitSkeleton, +# 65| "Generate example skeleton entry"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/TableGen/TableGenBackendSkeleton.cpp:64: constructor_uses_global_object: The constructor of global object "Y" itself makes use of global object "llvm::cl::AllSubCommands" defined in another compilation unit. The order of construction is unspecified, so "Y" might be created before "llvm::cl::AllSubCommands" is available. +# 62| } +# 63| +# 64|-> static TableGen::Emitter::Opt Y("gen-skeleton-entry", EmitSkeleton, +# 65| "Generate example skeleton entry"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp:52: constructor_uses_global_object: The constructor of global object "TransformAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TransformAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| // destination register is the correct color. Used for testing. +# 51| static cl::opt +# 52|-> TransformAll("aarch64-a57-fp-load-balancing-force-all", +# 53| cl::desc("Always modify dest registers regardless of color"), +# 54| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp:59: constructor_uses_global_object: The constructor of global object "OverrideBalance" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OverrideBalance" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| // color always. Used for testing. +# 58| static cl::opt +# 59|-> OverrideBalance("aarch64-a57-fp-load-balancing-override", +# 60| cl::desc("Ignore balance information, always return " +# 61| "(1: Even, 2: Odd)."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp:54: constructor_uses_global_object: The constructor of global object "TransformAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TransformAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| // them. For stress-testing the transformation function. +# 53| static cl::opt +# 54|-> TransformAll("aarch64-simd-scalar-force-all", +# 55| cl::desc("Force use of AdvSIMD scalar instructions everywhere"), +# 56| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ConditionalCompares.cpp:46: constructor_uses_global_object: The constructor of global object "BlockInstrLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BlockInstrLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| // Absolute maximum number of instructions allowed per speculated block. +# 45| // This bypasses all other heuristics, so it should be set fairly high. +# 46|-> static cl::opt BlockInstrLimit( +# 47| "aarch64-ccmp-limit", cl::init(30), cl::Hidden, +# 48| cl::desc("Maximum number of instructions per speculated block.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ConditionalCompares.cpp:51: constructor_uses_global_object: The constructor of global object "Stress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Stress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| +# 50| // Stress testing mode - disable heuristics. +# 51|-> static cl::opt Stress("aarch64-stress-ccmp", cl::Hidden, +# 52| cl::desc("Turn all knobs to 11")); +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:238: constructor_uses_global_object: The constructor of global object "EnableRedZone" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRedZone" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 236| #define DEBUG_TYPE "frame-info" +# 237| +# 238|-> static cl::opt EnableRedZone("aarch64-redzone", +# 239| cl::desc("enable use of redzone on AArch64"), +# 240| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:243: constructor_uses_global_object: The constructor of global object "ReverseCSRRestoreSeq" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReverseCSRRestoreSeq" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 241| +# 242| static cl::opt +# 243|-> ReverseCSRRestoreSeq("reverse-csr-restore-seq", +# 244| cl::desc("reverse the CSR restore sequence"), +# 245| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:247: constructor_uses_global_object: The constructor of global object "StackTaggingMergeSetTag" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "StackTaggingMergeSetTag" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 245| cl::init(false), cl::Hidden); +# 246| +# 247|-> static cl::opt StackTaggingMergeSetTag( +# 248| "stack-tagging-merge-settag", +# 249| cl::desc("merge settag instruction in function epilog"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:252: constructor_uses_global_object: The constructor of global object "OrderFrameObjects" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OrderFrameObjects" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 250| cl::Hidden); +# 251| +# 252|-> static cl::opt OrderFrameObjects("aarch64-order-frame-objects", +# 253| cl::desc("sort stack allocations"), +# 254| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64FrameLowering.cpp:256: constructor_uses_global_object: The constructor of global object "EnableHomogeneousPrologEpilog" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableHomogeneousPrologEpilog" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 254| cl::init(true), cl::Hidden); +# 255| +# 256|-> cl::opt EnableHomogeneousPrologEpilog( +# 257| "homogeneous-prolog-epilog", cl::Hidden, +# 258| cl::desc("Emit homogeneous prologue and epilogue for the size " + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:961: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(Use)->getSuccessOrdering()" (which evaluates to 15) in call to "isStrongerThanMonotonic". +# 959| // ldar and stlr have much more restrictive addressing modes (just a +# 960| // register). +# 961|-> if (isStrongerThanMonotonic(cast(Use)->getSuccessOrdering())) +# 962| return false; +# 963| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:3631: var_decl: Declaring variable "FVal". +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:3638: uninit_use_in_call: Using uninitialized value "FVal.U" when calling "~APFloat". +# 3636| if (LN->getOperand(1).getOpcode() != AArch64ISD::ADDlow || +# 3637| !isa(LN->getOperand(1)->getOperand(1))) +# 3638|-> return false; +# 3639| +# 3640| ConstantPoolSDNode *CN = + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:114: constructor_uses_global_object: The constructor of global object "EnableAArch64ELFLocalDynamicTLSGeneration" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAArch64ELFLocalDynamicTLSGeneration" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| // well in the GNU bfd and gold linkers at the moment. Therefore, by +# 113| // default, for now, fall back to GeneralDynamic code generation. +# 114|-> cl::opt EnableAArch64ELFLocalDynamicTLSGeneration( +# 115| "aarch64-elf-ldtls-generation", cl::Hidden, +# 116| cl::desc("Allow AArch64 Local Dynamic TLS code generation"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:120: constructor_uses_global_object: The constructor of global object "EnableOptimizeLogicalImm" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableOptimizeLogicalImm" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| +# 119| static cl::opt +# 120|-> EnableOptimizeLogicalImm("aarch64-enable-logical-imm", cl::Hidden, +# 121| cl::desc("Enable AArch64 logical imm instruction " +# 122| "optimization"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:130: constructor_uses_global_object: The constructor of global object "EnableCombineMGatherIntrinsics" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCombineMGatherIntrinsics" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| // than the GLD1 nodes added for the SVE gather load intrinsics. +# 129| static cl::opt +# 130|-> EnableCombineMGatherIntrinsics("aarch64-enable-mgather-combine", cl::Hidden, +# 131| cl::desc("Combine extends of AArch64 masked " +# 132| "gather intrinsics"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:138: constructor_uses_global_object: The constructor of global object "MaxXors" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxXors" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 136| // bottleneck after this transform on high end CPU. So this max leaf node +# 137| // limitation is guard cmp+ccmp will be profitable. +# 138|-> static cl::opt MaxXors("aarch64-max-xors", cl::init(16), cl::Hidden, +# 139| cl::desc("Maximum of xors")); +# 140| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:60: constructor_uses_global_object: The constructor of global object "TBZDisplacementBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "TBZDisplacementBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| #include "AArch64GenInstrInfo.inc" +# 59| +# 60|-> static cl::opt TBZDisplacementBits( +# 61| "aarch64-tbz-offset-bits", cl::Hidden, cl::init(14), +# 62| cl::desc("Restrict range of TB[N]Z instructions (DEBUG)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:64: constructor_uses_global_object: The constructor of global object "CBZDisplacementBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CBZDisplacementBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 62| cl::desc("Restrict range of TB[N]Z instructions (DEBUG)")); +# 63| +# 64|-> static cl::opt CBZDisplacementBits( +# 65| "aarch64-cbz-offset-bits", cl::Hidden, cl::init(19), +# 66| cl::desc("Restrict range of CB[N]Z instructions (DEBUG)")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:69: constructor_uses_global_object: The constructor of global object "BCCDisplacementBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BCCDisplacementBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| +# 68| static cl::opt +# 69|-> BCCDisplacementBits("aarch64-bcc-offset-bits", cl::Hidden, cl::init(19), +# 70| cl::desc("Restrict range of Bcc instructions (DEBUG)")); +# 71| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7276: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7276: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7565: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7639: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 7637| // link register. +# 7638| bool ModStackToSaveLR = false; +# 7639|-> if (std::any_of(FirstCand.front(), FirstCand.back(), +# 7640| [](const MachineInstr &MI) { return MI.isCall(); })) +# 7641| ModStackToSaveLR = true; +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7639: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7708: var_decl: Declaring variable "Ranges". +llvm-17.0.6.src/lib/Target/AArch64/AArch64InstrInfo.cpp:7782: uninit_use: Using uninitialized value "Ranges". Field "Ranges.InlineElts" is uninitialized. +# 7780| // If we exhausted the entire block, we have no safe ranges to outline. +# 7781| if (FirstPossibleEndPt == MBB.instr_rend()) +# 7782|-> return Ranges; +# 7783| // Current range. +# 7784| CreateNewRangeStartingAt(FirstPossibleEndPt->getIterator()); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:71: constructor_uses_global_object: The constructor of global object "LdStLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LdStLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| // The LdStLimit limits how far we search for load/store pairs. +# 71|-> static cl::opt LdStLimit("aarch64-load-store-scan-limit", +# 72| cl::init(20), cl::Hidden); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:76: constructor_uses_global_object: The constructor of global object "UpdateLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UpdateLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| // The UpdateLimit limits how far we search for update instructions when we form +# 75| // pre-/post-index instructions. +# 76|-> static cl::opt UpdateLimit("aarch64-update-scan-limit", cl::init(100), +# 77| cl::Hidden); +# 78| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp:80: constructor_uses_global_object: The constructor of global object "EnableRenaming" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRenaming" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| // Enable register renaming to find additional store pairing opportunities. +# 80|-> static cl::opt EnableRenaming("aarch64-load-store-renaming", +# 81| cl::init(true), cl::Hidden); +# 82| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp:37: constructor_uses_global_object: The constructor of global object "FrameHelperSizeThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FrameHelperSizeThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| "AArch64 homogeneous prolog/epilog lowering pass" +# 36| +# 37|-> cl::opt FrameHelperSizeThreshold( +# 38| "frame-helper-size-threshold", cl::init(2), cl::Hidden, +# 39| cl::desc("The minimum number of instructions that are outlined in a frame " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64PromoteConstant.cpp:56: constructor_uses_global_object: The constructor of global object "Stress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Stress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| // Stress testing mode - disable heuristics. +# 56|-> static cl::opt Stress("aarch64-stress-promote-const", cl::Hidden, +# 57| cl::desc("Promote all vector constants")); +# 58| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AArch64/AArch64SLSHardening.cpp:364: assignment: Assigning: "FirstOpIdxToRemove" = "std::max(ImpLROpIdx, ImpSPOpIdx)". The value of "FirstOpIdxToRemove" is now -1. +llvm-17.0.6.src/lib/Target/AArch64/AArch64SLSHardening.cpp:366: overrun-buffer-arg: Calling "removeOperand" with "BL->Operands" and "FirstOpIdxToRemove" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 364| int FirstOpIdxToRemove = std::max(ImpLROpIdx, ImpSPOpIdx); +# 365| int SecondOpIdxToRemove = std::min(ImpLROpIdx, ImpSPOpIdx); +# 366|-> BL->removeOperand(FirstOpIdxToRemove); +# 367| BL->removeOperand(SecondOpIdxToRemove); +# 368| // Now copy over the implicit operands from the original BLR + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AArch64/AArch64SLSHardening.cpp:365: assignment: Assigning: "SecondOpIdxToRemove" = "std::min(ImpLROpIdx, ImpSPOpIdx)". The value of "SecondOpIdxToRemove" is now -1. +llvm-17.0.6.src/lib/Target/AArch64/AArch64SLSHardening.cpp:367: overrun-buffer-arg: Calling "removeOperand" with "BL->Operands" and "SecondOpIdxToRemove" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 365| int SecondOpIdxToRemove = std::min(ImpLROpIdx, ImpSPOpIdx); +# 366| BL->removeOperand(FirstOpIdxToRemove); +# 367|-> BL->removeOperand(SecondOpIdxToRemove); +# 368| // Now copy over the implicit operands from the original BLR +# 369| BL->copyImplicitOps(MF, BLR); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64SpeculationHardening.cpp:119: constructor_uses_global_object: The constructor of global object "HardenLoads" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "HardenLoads" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| #define AARCH64_SPECULATION_HARDENING_NAME "AArch64 speculation hardening pass" +# 118| +# 119|-> static cl::opt HardenLoads("aarch64-slh-loads", cl::Hidden, +# 120| cl::desc("Sanitize loads from memory."), +# 121| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:66: constructor_uses_global_object: The constructor of global object "ClMergeInit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClMergeInit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| #define DEBUG_TYPE "aarch64-stack-tagging" +# 65| +# 66|-> static cl::opt ClMergeInit( +# 67| "stack-tagging-merge-init", cl::Hidden, cl::init(true), +# 68| cl::desc("merge stack variable initializers with tagging when possible")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:71: constructor_uses_global_object: The constructor of global object "ClUseStackSafety" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClUseStackSafety" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| +# 70| static cl::opt +# 71|-> ClUseStackSafety("stack-tagging-use-stack-safety", cl::Hidden, +# 72| cl::init(true), +# 73| cl::desc("Use Stack Safety analysis results")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:75: constructor_uses_global_object: The constructor of global object "ClScanLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClScanLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| cl::desc("Use Stack Safety analysis results")); +# 74| +# 75|-> static cl::opt ClScanLimit("stack-tagging-merge-init-scan-limit", +# 76| cl::init(40), cl::Hidden); +# 77| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:79: constructor_uses_global_object: The constructor of global object "ClMergeInitSizeLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClMergeInitSizeLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| +# 78| static cl::opt +# 79|-> ClMergeInitSizeLimit("stack-tagging-merge-init-size-limit", cl::init(272), +# 80| cl::Hidden); +# 81| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTagging.cpp:82: constructor_uses_global_object: The constructor of global object "ClMaxLifetimes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClMaxLifetimes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| cl::Hidden); +# 81| +# 82|-> static cl::opt ClMaxLifetimes( +# 83| "stack-tagging-max-lifetimes-for-alloca", cl::Hidden, cl::init(3), +# 84| cl::ReallyHidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp:38: constructor_uses_global_object: The constructor of global object "ClUncheckedLdSt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClUncheckedLdSt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| enum UncheckedLdStMode { UncheckedNever, UncheckedSafe, UncheckedAlways }; +# 37| +# 38|-> cl::opt ClUncheckedLdSt( +# 39| "stack-tagging-unchecked-ld-st", cl::Hidden, +# 40| cl::init(UncheckedSafe), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp:52: constructor_uses_global_object: The constructor of global object "ClFirstSlot" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ClFirstSlot" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| +# 51| static cl::opt +# 52|-> ClFirstSlot("stack-tagging-first-slot-opt", cl::Hidden, cl::init(true), +# 53| cl::desc("Apply first slot optimization for stack tagging " +# 54| "(eliminate ADDG Rt, Rn, 0, 0).")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:38: constructor_uses_global_object: The constructor of global object "EnableEarlyIfConvert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEarlyIfConvert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| +# 37| static cl::opt +# 38|-> EnableEarlyIfConvert("aarch64-early-ifcvt", cl::desc("Enable the early if " +# 39| "converter pass"), cl::init(true), cl::Hidden); +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:43: constructor_uses_global_object: The constructor of global object "UseAddressTopByteIgnored" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAddressTopByteIgnored" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| // If OS supports TBI, use this flag to enable it. +# 42| static cl::opt +# 43|-> UseAddressTopByteIgnored("aarch64-use-tbi", cl::desc("Assume that top byte of " +# 44| "an address is ignored"), cl::init(false), cl::Hidden); +# 45| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:47: constructor_uses_global_object: The constructor of global object "UseNonLazyBind" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseNonLazyBind" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| static cl::opt +# 47|-> UseNonLazyBind("aarch64-enable-nonlazybind", +# 48| cl::desc("Call nonlazybind functions via direct GOT load"), +# 49| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:51: constructor_uses_global_object: The constructor of global object "UseAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| cl::init(false), cl::Hidden); +# 50| +# 51|-> static cl::opt UseAA("aarch64-use-aa", cl::init(true), +# 52| cl::desc("Enable the use of AA during codegen.")); +# 53| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:54: constructor_uses_global_object: The constructor of global object "OverrideVectorInsertExtractBaseCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OverrideVectorInsertExtractBaseCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::desc("Enable the use of AA during codegen.")); +# 53| +# 54|-> static cl::opt OverrideVectorInsertExtractBaseCost( +# 55| "aarch64-insert-extract-base-cost", +# 56| cl::desc("Base cost of vector insert/extract element"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:62: constructor_uses_global_object: The constructor of global object "ReservedRegsForRA[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReservedRegsForRA[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| // to function call. +# 61| static cl::list +# 62|-> ReservedRegsForRA("reserve-regs-for-regalloc", cl::desc("Reserve physical " +# 63| "registers, so they can't be used by register allocator. " +# 64| "Should only be used for testing register allocator."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64Subtarget.cpp:67: constructor_uses_global_object: The constructor of global object "ForceStreamingCompatibleSVE" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceStreamingCompatibleSVE" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::CommaSeparated, cl::Hidden); +# 66| +# 67|-> static cl::opt ForceStreamingCompatibleSVE( +# 68| "force-streaming-compatible-sve", +# 69| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:58: constructor_uses_global_object: The constructor of global object "EnableCCMP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCCMP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| using namespace llvm; +# 57| +# 58|-> static cl::opt EnableCCMP("aarch64-enable-ccmp", +# 59| cl::desc("Enable the CCMP formation pass"), +# 60| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:63: constructor_uses_global_object: The constructor of global object "EnableCondBrTuning" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCondBrTuning" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 61| +# 62| static cl::opt +# 63|-> EnableCondBrTuning("aarch64-enable-cond-br-tune", +# 64| cl::desc("Enable the conditional branch tuning pass"), +# 65| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:67: constructor_uses_global_object: The constructor of global object "EnableAArch64CopyPropagation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAArch64CopyPropagation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| cl::init(true), cl::Hidden); +# 66| +# 67|-> static cl::opt EnableAArch64CopyPropagation( +# 68| "aarch64-enable-copy-propagation", +# 69| cl::desc("Enable the copy propagation with AArch64 copy instr"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:72: constructor_uses_global_object: The constructor of global object "EnableMCR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMCR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 70| cl::init(true), cl::Hidden); +# 71| +# 72|-> static cl::opt EnableMCR("aarch64-enable-mcr", +# 73| cl::desc("Enable the machine combiner pass"), +# 74| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:76: constructor_uses_global_object: The constructor of global object "EnableStPairSuppress" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableStPairSuppress" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 74| cl::init(true), cl::Hidden); +# 75| +# 76|-> static cl::opt EnableStPairSuppress("aarch64-enable-stp-suppress", +# 77| cl::desc("Suppress STP for AArch64"), +# 78| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:80: constructor_uses_global_object: The constructor of global object "EnableAdvSIMDScalar" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAdvSIMDScalar" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| cl::init(true), cl::Hidden); +# 79| +# 80|-> static cl::opt EnableAdvSIMDScalar( +# 81| "aarch64-enable-simd-scalar", +# 82| cl::desc("Enable use of AdvSIMD scalar integer instructions"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:86: constructor_uses_global_object: The constructor of global object "EnablePromoteConstant" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePromoteConstant" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> EnablePromoteConstant("aarch64-enable-promote-const", +# 87| cl::desc("Enable the promote constant pass"), +# 88| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:90: constructor_uses_global_object: The constructor of global object "EnableCollectLOH" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCollectLOH" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 88| cl::init(true), cl::Hidden); +# 89| +# 90|-> static cl::opt EnableCollectLOH( +# 91| "aarch64-enable-collect-loh", +# 92| cl::desc("Enable the pass that emits the linker optimization hints (LOH)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:96: constructor_uses_global_object: The constructor of global object "EnableDeadRegisterElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDeadRegisterElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| +# 95| static cl::opt +# 96|-> EnableDeadRegisterElimination("aarch64-enable-dead-defs", cl::Hidden, +# 97| cl::desc("Enable the pass that removes dead" +# 98| " definitons and replaces stores to" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:103: constructor_uses_global_object: The constructor of global object "EnableRedundantCopyElimination" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRedundantCopyElimination" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 101| cl::init(true)); +# 102| +# 103|-> static cl::opt EnableRedundantCopyElimination( +# 104| "aarch64-enable-copyelim", +# 105| cl::desc("Enable the redundant copy elimination pass"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:108: constructor_uses_global_object: The constructor of global object "EnableLoadStoreOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoadStoreOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 106| cl::Hidden); +# 107| +# 108|-> static cl::opt EnableLoadStoreOpt("aarch64-enable-ldst-opt", +# 109| cl::desc("Enable the load/store pair" +# 110| " optimization pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:113: constructor_uses_global_object: The constructor of global object "EnableAtomicTidy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAtomicTidy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::init(true), cl::Hidden); +# 112| +# 113|-> static cl::opt EnableAtomicTidy( +# 114| "aarch64-enable-atomic-cfg-tidy", cl::Hidden, +# 115| cl::desc("Run SimplifyCFG after expanding atomic operations" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:120: constructor_uses_global_object: The constructor of global object "EnableEarlyIfConversion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEarlyIfConversion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| +# 119| static cl::opt +# 120|-> EnableEarlyIfConversion("aarch64-enable-early-ifcvt", cl::Hidden, +# 121| cl::desc("Run early if-conversion"), +# 122| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:125: constructor_uses_global_object: The constructor of global object "EnableCondOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCondOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 123| +# 124| static cl::opt +# 125|-> EnableCondOpt("aarch64-enable-condopt", +# 126| cl::desc("Enable the condition optimizer pass"), +# 127| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:130: constructor_uses_global_object: The constructor of global object "EnableGEPOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGEPOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| +# 129| static cl::opt +# 130|-> EnableGEPOpt("aarch64-enable-gep-opt", cl::Hidden, +# 131| cl::desc("Enable optimizations on complex GEPs"), +# 132| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:135: constructor_uses_global_object: The constructor of global object "EnableSelectOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSelectOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| +# 134| static cl::opt +# 135|-> EnableSelectOpt("aarch64-select-opt", cl::Hidden, +# 136| cl::desc("Enable select to branch optimizations"), +# 137| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:140: constructor_uses_global_object: The constructor of global object "BranchRelaxation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BranchRelaxation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| +# 139| static cl::opt +# 140|-> BranchRelaxation("aarch64-enable-branch-relax", cl::Hidden, cl::init(true), +# 141| cl::desc("Relax out of range conditional branches")); +# 142| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:143: constructor_uses_global_object: The constructor of global object "EnableCompressJumpTables" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableCompressJumpTables" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 141| cl::desc("Relax out of range conditional branches")); +# 142| +# 143|-> static cl::opt EnableCompressJumpTables( +# 144| "aarch64-enable-compress-jump-tables", cl::Hidden, cl::init(true), +# 145| cl::desc("Use smallest entry possible for jump tables")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:149: constructor_uses_global_object: The constructor of global object "EnableGlobalMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 147| // FIXME: Unify control over GlobalMerge. +# 148| static cl::opt +# 149|-> EnableGlobalMerge("aarch64-enable-global-merge", cl::Hidden, +# 150| cl::desc("Enable the global merge pass")); +# 151| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:153: constructor_uses_global_object: The constructor of global object "EnableLoopDataPrefetch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoopDataPrefetch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 151| +# 152| static cl::opt +# 153|-> EnableLoopDataPrefetch("https://github.com/aarch64-enable-loop-data-prefetch", cl::Hidden, +# 154| cl::desc("Enable the loop data prefetch pass"), +# 155| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:157: constructor_uses_global_object: The constructor of global object "EnableGlobalISelAtO" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalISelAtO" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 155| cl::init(true)); +# 156| +# 157|-> static cl::opt EnableGlobalISelAtO( +# 158| "aarch64-enable-global-isel-at-O", cl::Hidden, +# 159| cl::desc("Enable GlobalISel at or below an opt level (-1 to disable)"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:163: constructor_uses_global_object: The constructor of global object "EnableSVEIntrinsicOpts" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSVEIntrinsicOpts" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 161| +# 162| static cl::opt +# 163|-> EnableSVEIntrinsicOpts("aarch64-enable-sve-intrinsic-opts", cl::Hidden, +# 164| cl::desc("Enable SVE intrinsic opts"), +# 165| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:167: constructor_uses_global_object: The constructor of global object "EnableFalkorHWPFFix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFalkorHWPFFix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 165| cl::init(true)); +# 166| +# 167|-> static cl::opt EnableFalkorHWPFFix("aarch64-enable-falkor-hwpf-fix", +# 168| cl::init(true), cl::Hidden); +# 169| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:171: constructor_uses_global_object: The constructor of global object "EnableBranchTargets" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableBranchTargets" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 169| +# 170| static cl::opt +# 171|-> EnableBranchTargets("aarch64-enable-branch-targets", cl::Hidden, +# 172| cl::desc("Enable the AArch64 branch target pass"), +# 173| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:175: constructor_uses_global_object: The constructor of global object "SVEVectorBitsMaxOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEVectorBitsMaxOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 173| cl::init(true)); +# 174| +# 175|-> static cl::opt SVEVectorBitsMaxOpt( +# 176| "aarch64-sve-vector-bits-max", +# 177| cl::desc("Assume SVE vector registers are at most this big, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:181: constructor_uses_global_object: The constructor of global object "SVEVectorBitsMinOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEVectorBitsMinOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 179| cl::init(0), cl::Hidden); +# 180| +# 181|-> static cl::opt SVEVectorBitsMinOpt( +# 182| "aarch64-sve-vector-bits-min", +# 183| cl::desc("Assume SVE vector registers are at least this big, " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:189: constructor_uses_global_object: The constructor of global object "EnableGISelLoadStoreOptPreLegal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGISelLoadStoreOptPreLegal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 187| extern cl::opt EnableHomogeneousPrologEpilog; +# 188| +# 189|-> static cl::opt EnableGISelLoadStoreOptPreLegal( +# 190| "aarch64-enable-gisel-ldst-prelegal", +# 191| cl::desc("Enable GlobalISel's pre-legalizer load/store optimization pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetMachine.cpp:194: constructor_uses_global_object: The constructor of global object "EnableGISelLoadStoreOptPostLegal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGISelLoadStoreOptPostLegal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 192| cl::init(true), cl::Hidden); +# 193| +# 194|-> static cl::opt EnableGISelLoadStoreOptPostLegal( +# 195| "aarch64-enable-gisel-ldst-postlegal", +# 196| cl::desc("Enable GlobalISel's post-legalizer load/store optimization pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:33: constructor_uses_global_object: The constructor of global object "EnableFalkorHWPFUnrollFix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFalkorHWPFUnrollFix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| #define DEBUG_TYPE "aarch64tti" +# 32| +# 33|-> static cl::opt EnableFalkorHWPFUnrollFix("enable-falkor-hwpf-unroll-fix", +# 34| cl::init(true), cl::Hidden); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:36: constructor_uses_global_object: The constructor of global object "SVEGatherOverhead" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEGatherOverhead" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| cl::init(true), cl::Hidden); +# 35| +# 36|-> static cl::opt SVEGatherOverhead("sve-gather-overhead", cl::init(10), +# 37| cl::Hidden); +# 38| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:39: constructor_uses_global_object: The constructor of global object "SVEScatterOverhead" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVEScatterOverhead" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| cl::Hidden); +# 38| +# 39|-> static cl::opt SVEScatterOverhead("sve-scatter-overhead", +# 40| cl::init(10), cl::Hidden); +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:42: constructor_uses_global_object: The constructor of global object "SVETailFoldInsnThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVETailFoldInsnThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| cl::init(10), cl::Hidden); +# 41| +# 42|-> static cl::opt SVETailFoldInsnThreshold("sve-tail-folding-insn-threshold", +# 43| cl::init(15), cl::Hidden); +# 44| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:46: constructor_uses_global_object: The constructor of global object "NeonNonConstStrideOverhead" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NeonNonConstStrideOverhead" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| +# 45| static cl::opt +# 46|-> NeonNonConstStrideOverhead("neon-nonconst-stride-overhead", cl::init(10), +# 47| cl::Hidden); +# 48| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:158: constructor_uses_global_object: The constructor of global object "SVETailFolding[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SVETailFolding[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 156| TailFoldingOption TailFoldingOptionLoc; +# 157| +# 158|-> cl::opt> SVETailFolding( +# 159| "sve-tail-folding", +# 160| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:184: constructor_uses_global_object: The constructor of global object "EnableFixedwidthAutovecInStreamingMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFixedwidthAutovecInStreamingMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 182| // code-generator is changed to use SVE instead of NEON for all fixed-width +# 183| // operations. +# 184|-> static cl::opt EnableFixedwidthAutovecInStreamingMode( +# 185| "enable-fixedwidth-autovec-in-streaming-mode", cl::init(false), cl::Hidden); +# 186| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:190: constructor_uses_global_object: The constructor of global object "EnableScalableAutovecInStreamingMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableScalableAutovecInStreamingMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 188| // and code-generator have been changed to avoid using scalable vector +# 189| // instructions that are not legal in streaming SVE mode. +# 190|-> static cl::opt EnableScalableAutovecInStreamingMode( +# 191| "enable-scalable-autovec-in-streaming-mode", cl::init(false), cl::Hidden); +# 192| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:2864: var_decl: Declaring variable "Options". +llvm-17.0.6.src/lib/Target/AArch64/AArch64TargetTransformInfo.cpp:2868: uninit_use: Using uninitialized value "Options". Field "Options.LoadSizes.InlineElts" is uninitialized. +# 2866| // TODO: Add cost modeling for strict align. Misaligned loads expand to +# 2867| // a bunch of instructions when strict align is enabled. +# 2868|-> return Options; +# 2869| } +# 2870| Options.AllowOverlappingLoads = true; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:95: var_decl: Declaring variable "Prefix". +llvm-17.0.6.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:129: uninit_use: Using uninitialized value "Prefix". Field "Prefix.ElementSize" is uninitialized. +# 127| } +# 128| +# 129|-> return Prefix; +# 130| } +# 131| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:1474: var_decl: Declaring variable "RealVal". +llvm-17.0.6.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:1475: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "convertFromString". +# 1473| // Calculate its FP value. +# 1474| APFloat RealVal(APFloat::IEEEdouble()); +# 1475|-> auto StatusOrErr = +# 1476| RealVal.convertFromString(Desc->Repr, APFloat::rmTowardZero); +# 1477| if (errorToBool(StatusOrErr.takeError()) || *StatusOrErr != APFloat::opOK) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3232: var_decl: Declaring variable "F". +llvm-17.0.6.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3235: uninit_use_in_call: Using uninitialized value "F.U" when calling "~APFloat". +# 3233| Operands.push_back( +# 3234| AArch64Operand::CreateFPImm(F, true, S, getContext())); +# 3235|-> } else { +# 3236| // Parse FP representation. +# 3237| APFloat RealVal(APFloat::IEEEdouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3237: var_decl: Declaring variable "RealVal". +llvm-17.0.6.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp:3238: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "convertFromString". +# 3236| // Parse FP representation. +# 3237| APFloat RealVal(APFloat::IEEEdouble()); +# 3238|-> auto StatusOrErr = +# 3239| RealVal.convertFromString(Tok.getString(), APFloat::rmTowardZero); +# 3240| if (errorToBool(StatusOrErr.takeError())) + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:2877: return_constant: Function call "llvm::Log2_32(MemSizeInBytes)" may return 4294967295. +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:2877: overrun-local: Overrunning array "Opcodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(MemSizeInBytes)" (which evaluates to 4294967295). +# 2875| I.getOperand(0).setReg(NewVal); +# 2876| } +# 2877|-> I.setDesc(TII.get(Opcodes[Log2_32(MemSizeInBytes)])); +# 2878| } +# 2879| constrainSelectedInstRegOperands(I, TII, TRI, RBI); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3571: var_decl: Declaring variable "Mopcode" without initializer. +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3595: uninit_use: Using uninitialized value "Mopcode". +# 3593| const Register SizeCopy = MRI.cloneVirtualRegister(Size.getReg()); +# 3594| +# 3595|-> const bool IsSet = Mopcode == AArch64::MOPSMemorySetPseudo; +# 3596| const auto &SrcValRegClass = +# 3597| IsSet ? AArch64::GPR64RegClass : AArch64::GPR64commonRegClass; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3942: return_constant: Function call "llvm::Log2_32(SrcEltSize / 8U)" may return 4294967295. +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3942: assignment: Assigning: "EltIdx" = "llvm::Log2_32(SrcEltSize / 8U)". The value of "EltIdx" is now 4294967295. +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:3944: overrun-local: Overrunning array "OpcTable" of 4 144-byte elements at element index 4294967295 (byte offset 618475290623) using index "EltIdx" (which evaluates to 4294967295). +# 3942| unsigned EltIdx = Log2_32(SrcEltSize / 8); +# 3943| unsigned NumEltsIdx = Log2_32(NumElts / 2); +# 3944|-> unsigned Opc = OpcTable[EltIdx][NumEltsIdx][PredIdx]; +# 3945| if (!Opc) { +# 3946| LLVM_DEBUG(dbgs() << "Could not map G_ICMP to cmp opcode"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:309: var_decl: Declaring variable "AltMappings". +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:319: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 317| AltMappings.push_back(&GPRMapping); +# 318| AltMappings.push_back(&FPRMapping); +# 319|-> return AltMappings; +# 320| } +# 321| case TargetOpcode::G_BITCAST: { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:331: var_decl: Declaring variable "AltMappings". +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:355: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 353| AltMappings.push_back(&GPRToFPRMapping); +# 354| AltMappings.push_back(&FPRToGPRMapping); +# 355|-> return AltMappings; +# 356| } +# 357| case TargetOpcode::G_LOAD: { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:367: var_decl: Declaring variable "AltMappings". +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp:383: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 381| AltMappings.push_back(&GPRMapping); +# 382| AltMappings.push_back(&FPRMapping); +# 383|-> return AltMappings; +# 384| } +# 385| default: + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:75: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:78: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:79: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 77| +# 78| if (Kind < FirstTargetFixupKind) +# 79|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 80| +# 81| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:75: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:78: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp:83: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 336 bytes. +# 81| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 82| "Invalid kind!"); +# 83|-> return Infos[Kind - FirstTargetFixupKind]; +# 84| } +# 85| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp:27: constructor_uses_global_object: The constructor of global object "AsmWriterVariant" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AsmWriterVariant" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| }; +# 26| +# 27|-> static cl::opt AsmWriterVariant( +# 28| "aarch64-neon-syntax", cl::init(Default), +# 29| cl::desc("Choose style of NEON code to emit from AArch64 backend:"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp:26: constructor_uses_global_object: The constructor of global object "MarkBTIProperty" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MarkBTIProperty" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| using namespace llvm; +# 25| +# 26|-> static cl::opt MarkBTIProperty( +# 27| "aarch64-mark-bti-property", cl::Hidden, +# 28| cl::desc("Add .note.gnu.property with BTI to assembly files"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp:27: constructor_uses_global_object: The constructor of global object "::StressCalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::StressCalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| namespace { +# 26| +# 27|-> static cl::opt StressCalls( +# 28| "amdgpu-stress-function-calls", +# 29| cl::Hidden, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUAttributor.cpp:949: var_decl: Declaring variable "AC". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUAttributor.cpp:957: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 955| }; +# 956| +# 957|-> Attributor A(Functions, InfoCache, AC); +# 958| +# 959| for (Function &F : M) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:42: constructor_uses_global_object: The constructor of global object "::WidenLoads" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::WidenLoads" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| namespace { +# 41| +# 42|-> static cl::opt WidenLoads( +# 43| "amdgpu-codegenprepare-widen-constant-loads", +# 44| cl::desc("Widen sub-dword constant address space loads in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:48: constructor_uses_global_object: The constructor of global object "::Widen16BitOps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::Widen16BitOps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| cl::init(false)); +# 47| +# 48|-> static cl::opt Widen16BitOps( +# 49| "amdgpu-codegenprepare-widen-16-bit-ops", +# 50| cl::desc("Widen uniform 16-bit instructions to 32-bit in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:55: constructor_uses_global_object: The constructor of global object "::ScalarizeLargePHIs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ScalarizeLargePHIs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| +# 54| static cl::opt +# 55|-> ScalarizeLargePHIs("amdgpu-codegenprepare-break-large-phis", +# 56| cl::desc("Break large PHI nodes for DAGISel"), +# 57| cl::ReallyHidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:60: constructor_uses_global_object: The constructor of global object "::ForceScalarizeLargePHIs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ForceScalarizeLargePHIs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| +# 59| static cl::opt +# 60|-> ForceScalarizeLargePHIs("amdgpu-codegenprepare-force-break-large-phis", +# 61| cl::desc("For testing purposes, always break large " +# 62| "PHIs even if it isn't profitable."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:65: constructor_uses_global_object: The constructor of global object "::ScalarizeLargePHIsThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ScalarizeLargePHIsThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::ReallyHidden, cl::init(false)); +# 64| +# 65|-> static cl::opt ScalarizeLargePHIsThreshold( +# 66| "amdgpu-codegenprepare-break-large-phis-threshold", +# 67| cl::desc("Minimum type size in bits for breaking large PHI nodes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:70: constructor_uses_global_object: The constructor of global object "::UseMul24Intrin" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::UseMul24Intrin" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| cl::ReallyHidden, cl::init(32)); +# 69| +# 70|-> static cl::opt UseMul24Intrin( +# 71| "amdgpu-codegenprepare-mul24", +# 72| cl::desc("Introduce mul24 intrinsics in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:77: constructor_uses_global_object: The constructor of global object "::ExpandDiv64InIR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ExpandDiv64InIR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| +# 76| // Legalize 64-bit division by using the generic IR expansion. +# 77|-> static cl::opt ExpandDiv64InIR( +# 78| "amdgpu-codegenprepare-expand-div64", +# 79| cl::desc("Expand 64-bit division in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:85: constructor_uses_global_object: The constructor of global object "::DisableIDivExpand" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisableIDivExpand" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| // Leave all division operations as they are. This supersedes ExpandDiv64InIR +# 84| // and is used for testing the legalizer. +# 85|-> static cl::opt DisableIDivExpand( +# 86| "amdgpu-codegenprepare-disable-idiv-expansion", +# 87| cl::desc("Prevent expanding integer division in AMDGPUCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:92: constructor_uses_global_object: The constructor of global object "::DisableFDivExpand" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisableFDivExpand" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| +# 91| // Disable processing of fdiv so we can better test the backend implementations. +# 92|-> static cl::opt DisableFDivExpand( +# 93| "amdgpu-codegenprepare-disable-fdiv-expansion", +# 94| cl::desc("Prevent expanding floating point division in AMDGPUCodeGenPrepare"), + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def:279: assignment: Assigning: "Idx" = "AGPRStartIdx". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def:283: assignment: Assigning: "Idx" += "llvm::Log2_32_Ceil(Size)". The value of "Idx" may now be up to 70. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def:290: illegal_address: "&llvm::AMDGPU::ValMappings[Idx]" evaluates to an address that is at byte offset 1120 of an array of 784 bytes. +# 288| assert(BankID == ValMappings[Idx].BreakDown->RegBank->getID()); +# 289| +# 290|-> return &ValMappings[Idx]; +# 291| } +# 292| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:41: constructor_uses_global_object: The constructor of global object "llvm::DumpHSAMetadata" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::DumpHSAMetadata" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| namespace llvm { +# 40| +# 41|-> static cl::opt DumpHSAMetadata( +# 42| "amdgpu-dump-hsa-metadata", +# 43| cl::desc("Dump AMDGPU HSA Metadata")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:44: constructor_uses_global_object: The constructor of global object "llvm::VerifyHSAMetadata" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "llvm::VerifyHSAMetadata" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| "amdgpu-dump-hsa-metadata", +# 43| cl::desc("Dump AMDGPU HSA Metadata")); +# 44|-> static cl::opt VerifyHSAMetadata( +# 45| "amdgpu-verify-hsa-metadata", +# 46| cl::desc("Verify AMDGPU HSA Metadata")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:34: constructor_uses_global_object: The constructor of global object "::EnableExactSolver" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::EnableExactSolver" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| namespace { +# 33| +# 34|-> static cl::opt EnableExactSolver( +# 35| "amdgpu-igrouplp-exact-solver", cl::Hidden, +# 36| cl::desc("Whether to use the exponential time solver to fit " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:41: constructor_uses_global_object: The constructor of global object "::CutoffForExact" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::CutoffForExact" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| cl::init(false)); +# 40| +# 41|-> static cl::opt CutoffForExact( +# 42| "amdgpu-igrouplp-exact-solver-cutoff", cl::init(0), cl::Hidden, +# 43| cl::desc("The maximum number of scheduling group conflicts " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:50: constructor_uses_global_object: The constructor of global object "::MaxBranchesExplored" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::MaxBranchesExplored" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| "the solver (e.g. by amdgpu-igrouplp-exact-solver")); +# 49| +# 50|-> static cl::opt MaxBranchesExplored( +# 51| "amdgpu-igrouplp-exact-solver-max-branches", cl::init(0), cl::Hidden, +# 52| cl::desc("The amount of branches that we are willing to explore with" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:55: constructor_uses_global_object: The constructor of global object "::UseCostHeur" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::UseCostHeur" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| "the exact algorithm before giving up.")); +# 54| +# 55|-> static cl::opt UseCostHeur( +# 56| "amdgpu-igrouplp-exact-solver-cost-heur", cl::init(true), cl::Hidden, +# 57| cl::desc("Whether to use the cost heuristic to make choices as we " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:596: var_decl: Declaring variable "Match" without initializer. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:603: uninit_use_in_call: Using uninitialized value "Match" when calling "isFull". +# 601| +# 602| if (UseCostHeur) { +# 603|-> if (Match->isFull()) { +# 604| ReadyList.push_back(std::pair(*I, MissPenalty)); +# 605| continue; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:742: var_decl: Declaring variable "Match" without initializer. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:751: uninit_use_in_call: Using uninitialized value "Match" when calling "isFull". +# 749| << (int)Match->getMask() << "\n"); +# 750| +# 751|-> if (Match->isFull()) { +# 752| LLVM_DEBUG(dbgs() << "SGID # " << CandSGID << " is full\n"); +# 753| continue; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUISelLowering.cpp:34: constructor_uses_global_object: The constructor of global object "AMDGPUBypassSlowDiv" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUBypassSlowDiv" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| #include "AMDGPUGenCallingConv.inc" +# 33| +# 34|-> static cl::opt AMDGPUBypassSlowDiv( +# 35| "amdgpu-bypass-slow-div", +# 36| cl::desc("Skip 64-bit divide for dynamic 32-bit values"), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp:430: var_decl: Declaring variable "Val". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp:431: uninit_use_in_call: Using uninitialized value "Val.U" when calling "divide". +# 429| const APFloat &ArgVal = C->getValueAPF(); +# 430| APFloat Val(ArgVal.getSemantics(), 1); +# 431|-> Val.divide(ArgVal, APFloat::rmNearestTiesToEven); +# 432| +# 433| // This is more precise than the instruction may give. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp:36: constructor_uses_global_object: The constructor of global object "AllowRiskySelect" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowRiskySelect" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| using namespace MIPatternMatch; +# 35| +# 36|-> static cl::opt AllowRiskySelect( +# 37| "amdgpu-global-isel-risky-select", +# 38| cl::desc("Allow GlobalISel to select cases that are likely to not work yet"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp:35: constructor_uses_global_object: The constructor of global object "WidenLoads" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "WidenLoads" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| // only but not dword aligned. +# 34| static cl::opt +# 35|-> WidenLoads("amdgpu-late-codegenprepare-widen-constant-loads", +# 36| cl::desc("Widen sub-dword constant address space loads in " +# 37| "AMDGPULateCodeGenPrepare"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:41: constructor_uses_global_object: The constructor of global object "EnableNewLegality" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableNewLegality" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| +# 40| // Hack until load/store selection patterns support any tuple of legal types. +# 41|-> static cl::opt EnableNewLegality( +# 42| "amdgpu-global-isel-new-legality", +# 43| cl::desc("Use GlobalISel desired legality, rather than try to use" + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:3711: var_decl: Declaring variable "CarryOut". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:3786: uninit_use: Using uninitialized value "CarryOut". Field "CarryOut.InlineElts" is uninitialized. +# 3784| } +# 3785| +# 3786|-> return CarryOut; +# 3787| }; +# 3788| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:4838: var_decl: Declaring variable "C0Val". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:4858: uninit_use_in_call: Using uninitialized value "C0Val.U" when calling "~APFloat". +# 4856| +# 4857| MI.eraseFromParent(); +# 4858|-> return true; +# 4859| } +# 4860| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:5906: zero_return: Function call "this->ST->getNSAMaxSize()" returns 0. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:5906: assignment: Assigning: "NSAMaxSize" = "this->ST->getNSAMaxSize()". The value of "NSAMaxSize" is now 0. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:5927: overrun-buffer-arg: Calling "slice" with "llvm::ArrayRef(PackedRegs).Data" and "NSAMaxSize - 1U" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 5925| LLT PackedAddrTy = +# 5926| LLT::fixed_vector(2 * (PackedRegs.size() - NSAMaxSize + 1), 16); +# 5927|-> auto Concat = B.buildConcatVectors( +# 5928| PackedAddrTy, ArrayRef(PackedRegs).slice(NSAMaxSize - 1)); +# 5929| PackedRegs[NSAMaxSize - 1] = Concat.getReg(0); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibCalls.cpp:30: constructor_uses_global_object: The constructor of global object "EnablePreLink" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePreLink" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| using namespace llvm; +# 29| +# 30|-> static cl::opt EnablePreLink("amdgpu-prelink", +# 31| cl::desc("Enable pre-link mode optimizations"), +# 32| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibCalls.cpp:35: constructor_uses_global_object: The constructor of global object "UseNative[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseNative[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| cl::Hidden); +# 34| +# 35|-> static cl::list UseNative("amdgpu-use-native", +# 36| cl::desc("Comma separated list of functions to replace with native, or all"), +# 37| cl::CommaSeparated, cl::ValueOptional, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:28: constructor_uses_global_object: The constructor of global object "EnableOCLManglingMismatchWA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableOCLManglingMismatchWA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 26| using namespace llvm; +# 27| +# 28|-> static cl::opt EnableOCLManglingMismatchWA( +# 29| "amdgpu-enable-ocl-mangling-mismatch-workaround", cl::init(true), +# 30| cl::ReallyHidden, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:380: var_decl: Declaring variable "P". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:381: uninit_use: Using uninitialized value "P". Field "P.Reserved" is uninitialized. +# 379| AMDGPULibFunc::Param ParamIterator::getNextParam() { +# 380| AMDGPULibFunc::Param P; +# 381|-> if (Index >= int(sizeof Rule.Param/sizeof Rule.Param[0])) return P; +# 382| +# 383| const char R = Rule.Param[Index]; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:380: var_decl: Declaring variable "P". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULibFunc.cpp:464: uninit_use: Using uninitialized value "P". Field "P.Reserved" is uninitialized. +# 462| } +# 463| ++Index; +# 464|-> return P; +# 465| } +# 466| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:218: constructor_uses_global_object: The constructor of global object "::SuperAlignLDSGlobals" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::SuperAlignLDSGlobals" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 216| namespace { +# 217| +# 218|-> cl::opt SuperAlignLDSGlobals( +# 219| "amdgpu-super-align-lds-globals", +# 220| cl::desc("Increase alignment of LDS if it is not on align boundary"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:224: constructor_uses_global_object: The constructor of global object "::LoweringKindLoc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::LoweringKindLoc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 222| +# 223| enum class LoweringKind { module, table, kernel, hybrid }; +# 224|-> cl::opt LoweringKindLoc( +# 225| "amdgpu-lower-module-lds-strategy", +# 226| cl::desc("Specify lowering strategy for function LDS access:"), cl::Hidden, + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:1340: var_decl: Declaring variable "F". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:1343: uninit_use_in_call: Using uninitialized value "F". Field "F.Scratch" is uninitialized when calling "emplace_back". +# 1341| DL.getTypeAllocSize(GV->getValueType()), +# 1342| AMDGPU::getAlign(DL, GV)); +# 1343|-> LayoutFields.emplace_back(F); +# 1344| } +# 1345| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp:2303: var_decl: Declaring variable "InnerRegion". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp:2312: uninit_use_in_call: Using uninitialized value "InnerRegion.RMRT" when calling "rewriteLiveOutRegs". +# 2310| +# 2311| LLVM_DEBUG(InnerRegion.print(dbgs(), TRI)); +# 2312|-> rewriteLiveOutRegs(IfBB, CodeBB, MergeBB, &InnerRegion, CurrentRegion); +# 2313| extractKilledPHIs(CodeBB); +# 2314| if (IsRegionEntryBB) { + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:35: constructor_uses_global_object: The constructor of global object "MemBoundThresh" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MemBoundThresh" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> MemBoundThresh("amdgpu-membound-threshold", cl::init(50), cl::Hidden, +# 36| cl::desc("Function mem bound threshold in %")); +# 37| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:39: constructor_uses_global_object: The constructor of global object "LimitWaveThresh" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LimitWaveThresh" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> LimitWaveThresh("amdgpu-limit-wave-threshold", cl::init(50), cl::Hidden, +# 40| cl::desc("Kernel limit wave threshold in %")); +# 41| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:43: constructor_uses_global_object: The constructor of global object "IAWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "IAWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| +# 42| static cl::opt +# 43|-> IAWeight("amdgpu-indirect-access-weight", cl::init(1000), cl::Hidden, +# 44| cl::desc("Indirect access memory instruction weight")); +# 45| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:47: constructor_uses_global_object: The constructor of global object "LSWeight" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LSWeight" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| +# 46| static cl::opt +# 47|-> LSWeight("amdgpu-large-stride-weight", cl::init(1000), cl::Hidden, +# 48| cl::desc("Large stride memory access weight")); +# 49| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp:51: constructor_uses_global_object: The constructor of global object "LargeStrideThresh" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LargeStrideThresh" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| +# 50| static cl::opt +# 51|-> LargeStrideThresh("amdgpu-large-stride-threshold", cl::init(64), cl::Hidden, +# 52| cl::desc("Large stride memory access threshold")); +# 53| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp:105: tainted_data_return: Called function "CurFmt.find_last_of(llvm::StringRef("%"), 18446744073709551615UL)", and a possible return value is known to be less than zero. +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp:105: assign: Assigning: "pTag" = "CurFmt.find_last_of(llvm::StringRef("%"), 18446744073709551615UL)". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp:108: overflow_sink: "--pTag", which might have underflowed, is passed to "CurFmt[--pTag]". +# 106| if (pTag != StringRef::npos) { +# 107| ArgDump = true; +# 108|-> while (pTag && CurFmt[--pTag] == '%') { +# 109| ArgDump = !ArgDump; +# 110| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp:53: constructor_uses_global_object: The constructor of global object "::DisablePromoteAllocaToVector" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisablePromoteAllocaToVector" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| static cl::opt +# 53|-> DisablePromoteAllocaToVector("disable-promote-alloca-to-vector", +# 54| cl::desc("Disable promote alloca to vector"), +# 55| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp:58: constructor_uses_global_object: The constructor of global object "::DisablePromoteAllocaToLDS" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::DisablePromoteAllocaToLDS" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| +# 57| static cl::opt +# 58|-> DisablePromoteAllocaToLDS("disable-promote-alloca-to-lds", +# 59| cl::desc("Disable promote alloca to LDS"), +# 60| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp:62: constructor_uses_global_object: The constructor of global object "::PromoteAllocaToVectorLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::PromoteAllocaToVectorLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| cl::init(false)); +# 61| +# 62|-> static cl::opt PromoteAllocaToVectorLimit( +# 63| "amdgpu-promote-alloca-to-vector-limit", +# 64| cl::desc("Maximum byte size to consider promote alloca to vector"), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp:306: var_decl: Declaring variable "AltMappings". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp:334: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 332| } +# 333| +# 334|-> return AltMappings; +# 335| } +# 336| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp:3587: assignment: Assigning: "ResultBank" = "InvalidRegBankID". +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp:3613: overrun-buffer-arg: Calling "getRegBank" with "this->RegBanks" and "ResultBank" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 3611| unsigned Size = MRI.getType(DstReg).getSizeInBits(); +# 3612| +# 3613|-> const ValueMapping &ValMap = +# 3614| getValueMapping(0, Size, getRegBank(ResultBank)); +# 3615| return getInstructionMapping( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp:49: constructor_uses_global_object: The constructor of global object "AssumedStackSizeForExternalCall" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumedStackSizeForExternalCall" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| // time if we don't know the true stack size. Assume a smaller number if this is +# 48| // only due to dynamic / non-entry block allocas. +# 49|-> static cl::opt AssumedStackSizeForExternalCall( +# 50| "amdgpu-assume-external-call-stack-size", +# 51| cl::desc("Assumed stack use of any external call (in bytes)"), cl::Hidden, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp:54: constructor_uses_global_object: The constructor of global object "AssumedStackSizeForDynamicSizeObjects" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumedStackSizeForDynamicSizeObjects" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| cl::init(16384)); +# 53| +# 54|-> static cl::opt AssumedStackSizeForDynamicSizeObjects( +# 55| "amdgpu-assume-dynamic-stack-object-size", +# 56| cl::desc("Assumed extra stack use if there are any " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp:62: constructor_uses_global_object: The constructor of global object "AnyAddressSpace" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AnyAddressSpace" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| using namespace llvm; +# 61| +# 62|-> static cl::opt AnyAddressSpace( +# 63| "amdgpu-any-address-space-out-arguments", +# 64| cl::desc("Replace pointer out arguments with " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp:69: constructor_uses_global_object: The constructor of global object "MaxNumRetRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxNumRetRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| cl::init(false)); +# 68| +# 69|-> static cl::opt MaxNumRetRegs( +# 70| "amdgpu-max-return-arg-num-regs", +# 71| cl::desc("Approximately limit number of return registers for replacing out arguments"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSetWavePriority.cpp:29: constructor_uses_global_object: The constructor of global object "DefaultVALUInstsThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DefaultVALUInstsThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| #define DEBUG_TYPE "amdgpu-set-wave-priority" +# 28| +# 29|-> static cl::opt DefaultVALUInstsThreshold( +# 30| "amdgpu-set-wave-priority-valu-insts-threshold", +# 31| cl::desc("VALU instruction count threshold for adjusting wave priority"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:43: constructor_uses_global_object: The constructor of global object "EnablePowerSched" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePowerSched" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| #undef AMDGPUSubtarget +# 42| +# 43|-> static cl::opt EnablePowerSched( +# 44| "amdgpu-enable-power-sched", +# 45| cl::desc("Enable scheduling to minimize mAI power bursts"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:48: constructor_uses_global_object: The constructor of global object "EnableVGPRIndexMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableVGPRIndexMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| cl::init(false)); +# 47| +# 48|-> static cl::opt EnableVGPRIndexMode( +# 49| "amdgpu-vgpr-index-mode", +# 50| cl::desc("Use GPR indexing mode instead of movrel for vector indexing"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:53: constructor_uses_global_object: The constructor of global object "UseAA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| cl::init(false)); +# 52| +# 53|-> static cl::opt UseAA("amdgpu-use-aa-in-codegen", +# 54| cl::desc("Enable the use of AA during codegen."), +# 55| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp:57: constructor_uses_global_object: The constructor of global object "NSAThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NSAThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 55| cl::init(true)); +# 56| +# 57|-> static cl::opt NSAThreshold("amdgpu-nsa-threshold", +# 58| cl::desc("Number of addresses from which to enable MIMG NSA."), +# 59| cl::init(3), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:107: constructor_uses_global_object: The constructor of global object "::SGPRRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::SGPRRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| static cl::opt> +# 107|-> SGPRRegAlloc("sgpr-regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), +# 108| cl::desc("Register allocator to use for SGPRs")); +# 109| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:112: constructor_uses_global_object: The constructor of global object "::VGPRRegAlloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::VGPRRegAlloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 110| static cl::opt> +# 112|-> VGPRRegAlloc("vgpr-regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), +# 113| cl::desc("Register allocator to use for VGPRs")); +# 114| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:176: constructor_uses_global_object: The constructor of global object "EnableSROA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSROA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 174| } +# 175| +# 176|-> static cl::opt EnableSROA( +# 177| "amdgpu-sroa", +# 178| cl::desc("Run SROA after promote alloca pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:183: constructor_uses_global_object: The constructor of global object "EnableEarlyIfConversion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableEarlyIfConversion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 181| +# 182| static cl::opt +# 183|-> EnableEarlyIfConversion("amdgpu-early-ifcvt", cl::Hidden, +# 184| cl::desc("Run early if-conversion"), +# 185| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:188: constructor_uses_global_object: The constructor of global object "OptExecMaskPreRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptExecMaskPreRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 186| +# 187| static cl::opt +# 188|-> OptExecMaskPreRA("amdgpu-opt-exec-mask-pre-ra", cl::Hidden, +# 189| cl::desc("Run pre-RA exec mask optimizations"), +# 190| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:193: constructor_uses_global_object: The constructor of global object "LowerCtorDtor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LowerCtorDtor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 191| +# 192| static cl::opt +# 193|-> LowerCtorDtor("amdgpu-lower-global-ctor-dtor", +# 194| cl::desc("Lower GPU ctor / dtors to globals on the device."), +# 195| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:198: constructor_uses_global_object: The constructor of global object "EnableLoadStoreVectorizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLoadStoreVectorizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 196| +# 197| // Option to disable vectorizer for tests. +# 198|-> static cl::opt EnableLoadStoreVectorizer( +# 199| "amdgpu-load-store-vectorizer", +# 200| cl::desc("Enable load store vectorizer"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:205: constructor_uses_global_object: The constructor of global object "ScalarizeGlobal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ScalarizeGlobal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 203| +# 204| // Option to control global loads scalarization +# 205|-> static cl::opt ScalarizeGlobal( +# 206| "amdgpu-scalarize-global-loads", +# 207| cl::desc("Enable global load scalarization"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:212: constructor_uses_global_object: The constructor of global object "InternalizeSymbols" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InternalizeSymbols" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 210| +# 211| // Option to run internalize pass. +# 212|-> static cl::opt InternalizeSymbols( +# 213| "amdgpu-internalize-symbols", +# 214| cl::desc("Enable elimination of non-kernel functions and unused globals"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:219: constructor_uses_global_object: The constructor of global object "EarlyInlineAll" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EarlyInlineAll" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 217| +# 218| // Option to inline all early. +# 219|-> static cl::opt EarlyInlineAll( +# 220| "amdgpu-early-inline-all", +# 221| cl::desc("Inline all functions early"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:225: constructor_uses_global_object: The constructor of global object "RemoveIncompatibleFunctions" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemoveIncompatibleFunctions" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 223| cl::Hidden); +# 224| +# 225|-> static cl::opt RemoveIncompatibleFunctions( +# 226| "amdgpu-enable-remove-incompatible-functions", cl::Hidden, +# 227| cl::desc("Enable removal of functions when they" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:231: constructor_uses_global_object: The constructor of global object "EnableSDWAPeephole" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSDWAPeephole" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 229| cl::init(true)); +# 230| +# 231|-> static cl::opt EnableSDWAPeephole( +# 232| "amdgpu-sdwa-peephole", +# 233| cl::desc("Enable SDWA peepholer"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:236: constructor_uses_global_object: The constructor of global object "EnableDPPCombine" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDPPCombine" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 234| cl::init(true)); +# 235| +# 236|-> static cl::opt EnableDPPCombine( +# 237| "amdgpu-dpp-combine", +# 238| cl::desc("Enable DPP combiner"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:242: constructor_uses_global_object: The constructor of global object "EnableAMDGPUAliasAnalysis" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAMDGPUAliasAnalysis" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 240| +# 241| // Enable address space based alias analysis +# 242|-> static cl::opt EnableAMDGPUAliasAnalysis("enable-amdgpu-aa", cl::Hidden, +# 243| cl::desc("Enable AMDGPU Alias Analysis"), +# 244| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:247: constructor_uses_global_object: The constructor of global object "LateCFGStructurize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LateCFGStructurize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 245| +# 246| // Option to run late CFG structurizer +# 247|-> static cl::opt LateCFGStructurize( +# 248| "amdgpu-late-structurize", +# 249| cl::desc("Enable late CFG structurization"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:254: constructor_uses_global_object: The constructor of global object "EnableLibCallSimplify" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLibCallSimplify" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 252| +# 253| // Enable lib calls simplifications +# 254|-> static cl::opt EnableLibCallSimplify( +# 255| "amdgpu-simplify-libcall", +# 256| cl::desc("Enable amdgpu library simplifications"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:260: constructor_uses_global_object: The constructor of global object "EnableLowerKernelArguments" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLowerKernelArguments" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 258| cl::Hidden); +# 259| +# 260|-> static cl::opt EnableLowerKernelArguments( +# 261| "amdgpu-ir-lower-kernel-arguments", +# 262| cl::desc("Lower kernel argument loads in IR pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:266: constructor_uses_global_object: The constructor of global object "EnableRegReassign" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRegReassign" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 264| cl::Hidden); +# 265| +# 266|-> static cl::opt EnableRegReassign( +# 267| "amdgpu-reassign-regs", +# 268| cl::desc("Enable register reassign optimizations on gfx10+"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:272: constructor_uses_global_object: The constructor of global object "OptVGPRLiveRange" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OptVGPRLiveRange" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 270| cl::Hidden); +# 271| +# 272|-> static cl::opt OptVGPRLiveRange( +# 273| "amdgpu-opt-vgpr-liverange", +# 274| cl::desc("Enable VGPR liverange optimizations for if-else structure"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:277: constructor_uses_global_object: The constructor of global object "AMDGPUAtomicOptimizerStrategy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AMDGPUAtomicOptimizerStrategy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 275| cl::init(true), cl::Hidden); +# 276| +# 277|-> static cl::opt AMDGPUAtomicOptimizerStrategy( +# 278| "amdgpu-atomic-optimizer-strategy", +# 279| cl::desc("Select DPP or Iterative strategy for scan"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:288: constructor_uses_global_object: The constructor of global object "EnableSIModeRegisterPass" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSIModeRegisterPass" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 286| +# 287| // Enable Mode register optimization +# 288|-> static cl::opt EnableSIModeRegisterPass( +# 289| "amdgpu-mode-register", +# 290| cl::desc("Enable mode register pass"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:296: constructor_uses_global_object: The constructor of global object "EnableInsertDelayAlu" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableInsertDelayAlu" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 294| // Enable GFX11+ s_delay_alu insertion +# 295| static cl::opt +# 296|-> EnableInsertDelayAlu("amdgpu-enable-delay-alu", +# 297| cl::desc("Enable s_delay_alu insertion"), +# 298| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:302: constructor_uses_global_object: The constructor of global object "EnableVOPD" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableVOPD" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 300| // Enable GFX11+ VOPD +# 301| static cl::opt +# 302|-> EnableVOPD("amdgpu-enable-vopd", +# 303| cl::desc("Enable VOPD, dual issue of VALU in wave32"), +# 304| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:308: constructor_uses_global_object: The constructor of global object "EnableDCEInRA" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableDCEInRA" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 306| // Option is used in lit tests to prevent deadcoding of patterns inspected. +# 307| static cl::opt +# 308|-> EnableDCEInRA("amdgpu-dce-in-ra", +# 309| cl::init(true), cl::Hidden, +# 310| cl::desc("Enable machine DCE inside regalloc")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:312: constructor_uses_global_object: The constructor of global object "EnableSetWavePriority" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSetWavePriority" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 310| cl::desc("Enable machine DCE inside regalloc")); +# 311| +# 312|-> static cl::opt EnableSetWavePriority("amdgpu-set-wave-priority", +# 313| cl::desc("Adjust wave priority"), +# 314| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:316: constructor_uses_global_object: The constructor of global object "EnableScalarIRPasses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableScalarIRPasses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 314| cl::init(false), cl::Hidden); +# 315| +# 316|-> static cl::opt EnableScalarIRPasses( +# 317| "amdgpu-scalar-ir-passes", +# 318| cl::desc("Enable scalar IR passes"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:322: constructor_uses_global_object: The constructor of global object "EnableStructurizerWorkarounds" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableStructurizerWorkarounds" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 320| cl::Hidden); +# 321| +# 322|-> static cl::opt EnableStructurizerWorkarounds( +# 323| "amdgpu-enable-structurizer-workarounds", +# 324| cl::desc("Enable workarounds for the StructurizeCFG pass"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:327: constructor_uses_global_object: The constructor of global object "EnableLowerModuleLDS" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableLowerModuleLDS" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 325| cl::Hidden); +# 326| +# 327|-> static cl::opt EnableLowerModuleLDS( +# 328| "amdgpu-enable-lower-module-lds", cl::desc("Enable lower module lds pass"), +# 329| cl::location(AMDGPUTargetMachine::EnableLowerModuleLDS), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:332: constructor_uses_global_object: The constructor of global object "EnablePreRAOptimizations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePreRAOptimizations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 330| cl::Hidden); +# 331| +# 332|-> static cl::opt EnablePreRAOptimizations( +# 333| "amdgpu-enable-pre-ra-optimizations", +# 334| cl::desc("Enable Pre-RA optimizations pass"), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:337: constructor_uses_global_object: The constructor of global object "EnablePromoteKernelArguments" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePromoteKernelArguments" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 335| cl::Hidden); +# 336| +# 337|-> static cl::opt EnablePromoteKernelArguments( +# 338| "amdgpu-enable-promote-kernel-arguments", +# 339| cl::desc("Enable promotion of flat kernel pointer arguments to global"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:342: constructor_uses_global_object: The constructor of global object "EnableMaxIlpSchedStrategy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMaxIlpSchedStrategy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 340| cl::Hidden, cl::init(true)); +# 341| +# 342|-> static cl::opt EnableMaxIlpSchedStrategy( +# 343| "amdgpu-enable-max-ilp-scheduling-strategy", +# 344| cl::desc("Enable scheduling strategy to maximize ILP for a single wave."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:347: constructor_uses_global_object: The constructor of global object "EnableRewritePartialRegUses" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableRewritePartialRegUses" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 345| cl::Hidden, cl::init(false)); +# 346| +# 347|-> static cl::opt EnableRewritePartialRegUses( +# 348| "amdgpu-enable-rewrite-partial-reg-uses", +# 349| cl::desc("Enable rewrite partial reg uses pass"), cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:35: constructor_uses_global_object: The constructor of global object "UnrollThresholdPrivate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdPrivate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| #define DEBUG_TYPE "AMDGPUtti" +# 34| +# 35|-> static cl::opt UnrollThresholdPrivate( +# 36| "amdgpu-unroll-threshold-private", +# 37| cl::desc("Unroll threshold for AMDGPU if private memory used in a loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:40: constructor_uses_global_object: The constructor of global object "UnrollThresholdLocal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdLocal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| cl::init(2700), cl::Hidden); +# 39| +# 40|-> static cl::opt UnrollThresholdLocal( +# 41| "amdgpu-unroll-threshold-local", +# 42| cl::desc("Unroll threshold for AMDGPU if local memory used in a loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:45: constructor_uses_global_object: The constructor of global object "UnrollThresholdIf" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollThresholdIf" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| cl::init(1000), cl::Hidden); +# 44| +# 45|-> static cl::opt UnrollThresholdIf( +# 46| "amdgpu-unroll-threshold-if", +# 47| cl::desc("Unroll threshold increment for AMDGPU for each if statement inside loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:50: constructor_uses_global_object: The constructor of global object "UnrollRuntimeLocal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollRuntimeLocal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| cl::init(200), cl::Hidden); +# 49| +# 50|-> static cl::opt UnrollRuntimeLocal( +# 51| "amdgpu-unroll-runtime-local", +# 52| cl::desc("Allow runtime unroll for AMDGPU if local memory used in a loop"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:55: constructor_uses_global_object: The constructor of global object "UnrollMaxBlockToAnalyze" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UnrollMaxBlockToAnalyze" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| cl::init(true), cl::Hidden); +# 54| +# 55|-> static cl::opt UnrollMaxBlockToAnalyze( +# 56| "amdgpu-unroll-max-block-to-analyze", +# 57| cl::desc("Inner loop block size threshold to analyze in unroll for AMDGPU"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:60: constructor_uses_global_object: The constructor of global object "ArgAllocaCost" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgAllocaCost" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(32), cl::Hidden); +# 59| +# 60|-> static cl::opt ArgAllocaCost("amdgpu-inline-arg-alloca-cost", +# 61| cl::Hidden, cl::init(4000), +# 62| cl::desc("Cost of alloca argument")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:68: constructor_uses_global_object: The constructor of global object "ArgAllocaCutoff" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ArgAllocaCutoff" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| // heuristic. +# 67| static cl::opt +# 68|-> ArgAllocaCutoff("amdgpu-inline-arg-alloca-cutoff", cl::Hidden, +# 69| cl::init(256), +# 70| cl::desc("Maximum alloca size to use for inline cost")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp:73: constructor_uses_global_object: The constructor of global object "InlineMaxBB" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InlineMaxBB" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| // Inliner constraint to achieve reasonable compilation time. +# 73|-> static cl::opt InlineMaxBB( +# 74| "amdgpu-inline-max-bb", cl::Hidden, cl::init(1100), +# 75| cl::desc("Maximum number of BBs allowed in a function after inlining" + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:2894: var_decl: Declaring variable "RealVal". +llvm-17.0.6.src/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:2896: uninit_use_in_call: Using uninitialized value "RealVal.U" when calling "convertFromString". +# 2894| APFloat RealVal(APFloat::IEEEdouble()); +# 2895| auto roundMode = APFloat::rmNearestTiesToEven; +# 2896|-> if (errorToBool(RealVal.convertFromString(Num, roundMode).takeError())) +# 2897| return ParseStatus::Failure; +# 2898| if (Negate) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:6284: var_decl: Declaring variable "OperandIdx" without initializer. +llvm-17.0.6.src/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:6325: uninit_use_in_call: Using uninitialized value "OperandIdx[1]" when calling "getOperand". +# 6323| if (OptionalIdx.find(AMDGPUOperand::ImmTyExpCompr) != OptionalIdx.end()) { +# 6324| Compr = true; +# 6325|-> Inst.getOperand(OperandIdx[1]) = Inst.getOperand(OperandIdx[2]); +# 6326| Inst.getOperand(OperandIdx[2]).setReg(AMDGPU::NoRegister); +# 6327| Inst.getOperand(OperandIdx[3]).setReg(AMDGPU::NoRegister); +llvm-17.0.6.src/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:6325: note: trimmed 1 message(s) with length over 512 + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNHazardRecognizer.cpp:42: constructor_uses_global_object: The constructor of global object "MFMAPaddingRatio" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MFMAPaddingRatio" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 40| +# 41| static cl::opt +# 42|-> MFMAPaddingRatio("amdgpu-mfma-padding-ratio", cl::init(0), cl::Hidden, +# 43| cl::desc("Fill a percentage of the latency between " +# 44| "neighboring MFMA with s_nops.")); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNIterativeScheduler.cpp:176: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/lib/Target/AMDGPU/GCNIterativeScheduler.cpp:176: leaked_storage: Ignoring storage allocated by "this->Sch.SchedImpl.release()" leaks it. +# 174| Sch.BaseClass::exitRegion(); +# 175| Sch.BaseClass::finishBlock(); +# 176|-> Sch.SchedImpl.release(); +# 177| Sch.SchedImpl = std::move(SaveSchedImpl); +# 178| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNPreRALongBranchReg.cpp:30: constructor_uses_global_object: The constructor of global object "::LongBranchFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::LongBranchFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| namespace { +# 29| +# 30|-> static cl::opt LongBranchFactor( +# 31| "amdgpu-long-branch-factor", cl::init(1.0), cl::Hidden, +# 32| cl::desc("Factor to apply to what qualifies as a long branch " + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNRegPressure.cpp:192: var_decl: Declaring variable "Res". +llvm-17.0.6.src/lib/Target/AMDGPU/GCNRegPressure.cpp:209: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 207| Res.push_back(RegisterMaskPair(Reg, UsedMask)); +# 208| } +# 209|-> return Res; +# 210| } +# 211| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNSchedStrategy.cpp:36: constructor_uses_global_object: The constructor of global object "DisableUnclusterHighRP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableUnclusterHighRP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static cl::opt +# 36|-> DisableUnclusterHighRP("amdgpu-disable-unclustred-high-rp-reschedule", +# 37| cl::Hidden, +# 38| cl::desc("Disable unclustred high register pressure " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNSchedStrategy.cpp:41: constructor_uses_global_object: The constructor of global object "ScheduleMetricBias" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ScheduleMetricBias" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 39| "reduction scheduling stage."), +# 40| cl::init(false)); +# 41|-> static cl::opt ScheduleMetricBias( +# 42| "amdgpu-schedule-metric-bias", cl::Hidden, +# 43| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/GCNSchedStrategy.cpp:49: constructor_uses_global_object: The constructor of global object "RelaxedOcc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RelaxedOcc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> RelaxedOcc("amdgpu-schedule-relaxed-occupancy", cl::Hidden, +# 50| cl::desc("Relax occupancy targets for kernels which are memory " +# 51| "bound (amdgpu-membound-threshold), or " + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:182: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:185: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-17.0.6.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:186: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 184| +# 185| if (Kind < FirstTargetFixupKind) +# 186|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 187| +# 188| return Infos[Kind - FirstTargetFixupKind]; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:182: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:185: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp:188: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 24 bytes. +# 186| return MCAsmBackend::getFixupKindInfo(Kind); +# 187| +# 188|-> return Infos[Kind - FirstTargetFixupKind]; +# 189| } +# 190| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp:27: constructor_uses_global_object: The constructor of global object "Keep16BitSuffixes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Keep16BitSuffixes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 25| using namespace llvm::AMDGPU; +# 26| +# 27|-> static cl::opt Keep16BitSuffixes( +# 28| "amdgpu-keep-16-bit-reg-suffixes", +# 29| cl::desc("Keep .l and .h suffixes in asm for debugging purposes"), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp:268: var_decl: Declaring variable "DstMI" without initializer. +llvm-17.0.6.src/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp:295: uninit_use_in_call: Using uninitialized value "DstMI" when calling "insert". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 293| } +# 294| if ((DstRegs.find(SrcMI) == DstRegs.end())) { +# 295|-> DstRegs.insert(DstMI); +# 296| return true; +# 297| } else + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/R600InstrInfo.cpp:258: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/Target/AMDGPU/R600InstrInfo.cpp:282: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 280| } +# 281| } +# 282|-> return Result; +# 283| } +# 284| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/R600InstrInfo.cpp:258: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/Target/AMDGPU/R600InstrInfo.cpp:313: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 311| Result.push_back(std::pair(&MO, 0)); +# 312| } +# 313|-> return Result; +# 314| } +# 315| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/AMDGPU/R600InstrInfo.cpp:1075: tainted_data_return: Called function "this->getIndirectIndexBegin(MF)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/AMDGPU/R600InstrInfo.cpp:1075: assign: Assigning: "Index" = "this->getIndirectIndexBegin(MF)". +llvm-17.0.6.src/lib/Target/AMDGPU/R600InstrInfo.cpp:1077: overflow: The expression "4 * Index" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/AMDGPU/R600InstrInfo.cpp:1077: overflow: The expression "4 * Index + Chan" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/AMDGPU/R600InstrInfo.cpp:1077: overflow_sink: "4 * Index + Chan", which might have underflowed, is passed to "llvm::R600::R600_TReg32RegClass.getRegister(4 * Index + Chan)". +# 1075| for (int Index = getIndirectIndexBegin(MF); Index <= End; ++Index) { +# 1076| for (unsigned Chan = 0; Chan < StackWidth; ++Chan) { +# 1077|-> unsigned Reg = R600::R600_TReg32RegClass.getRegister((4 * Index) + Chan); +# 1078| TRI.reserveRegisterTuples(Reserved, Reg); +# 1079| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp:122: var_decl: Declaring variable "Res". +llvm-17.0.6.src/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp:127: uninit_use: Using uninitialized value "Res". Field "Res.InlineElts" is uninitialized. +# 125| Res.push_back(Node->getOperand(OpIdx)); +# 126| } +# 127|-> return Res; +# 128| } +# 129| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/R600TargetMachine.cpp:26: constructor_uses_global_object: The constructor of global object "EnableR600StructurizeCFG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableR600StructurizeCFG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> EnableR600StructurizeCFG("r600-ir-structurize", +# 27| cl::desc("Use StructurizeCFG IR pass"), +# 28| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/R600TargetMachine.cpp:30: constructor_uses_global_object: The constructor of global object "EnableR600IfConvert" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableR600IfConvert" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| cl::init(true)); +# 29| +# 30|-> static cl::opt EnableR600IfConvert("r600-if-convert", +# 31| cl::desc("Use if conversion pass"), +# 32| cl::ReallyHidden, cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/R600TargetMachine.cpp:34: constructor_uses_global_object: The constructor of global object "EnableAMDGPUFunctionCallsOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAMDGPUFunctionCallsOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| cl::ReallyHidden, cl::init(true)); +# 33| +# 34|-> static cl::opt EnableAMDGPUFunctionCallsOpt( +# 35| "amdgpu-function-calls", cl::desc("Enable AMDGPU function call support"), +# 36| cl::location(AMDGPUTargetMachine::EnableFunctionCalls), cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIFixSGPRCopies.cpp:79: constructor_uses_global_object: The constructor of global object "EnableM0Merge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableM0Merge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| #define DEBUG_TYPE "si-fix-sgpr-copies" +# 78| +# 79|-> static cl::opt EnableM0Merge( +# 80| "amdgpu-enable-merge-m0", +# 81| cl::desc("Merge and hoist M0 initializations"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIFormMemoryClauses.cpp:29: constructor_uses_global_object: The constructor of global object "MaxClause" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxClause" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| // and stall. They can stall even earlier if there are outstanding counters. +# 28| static cl::opt +# 29|-> MaxClause("amdgpu-max-memory-clause", cl::Hidden, cl::init(15), +# 30| cl::desc("Maximum length of a memory clause, instructions")); +# 31| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIFrameLowering.cpp:23: constructor_uses_global_object: The constructor of global object "EnableSpillVGPRToAGPR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSpillVGPRToAGPR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| #define DEBUG_TYPE "frame-info" +# 22| +# 23|-> static cl::opt EnableSpillVGPRToAGPR( +# 24| "amdgpu-spill-vgpr-to-agpr", +# 25| cl::desc("Enable spilling VGPRs to AGPRs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:51: constructor_uses_global_object: The constructor of global object "DisableLoopAlignment" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLoopAlignment" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| STATISTIC(NumTailCalls, "Number of tail calls"); +# 50| +# 51|-> static cl::opt DisableLoopAlignment( +# 52| "amdgpu-disable-loop-alignment", +# 53| cl::desc("Do not align and prefetch loops"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:56: constructor_uses_global_object: The constructor of global object "UseDivergentRegisterIndexing" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseDivergentRegisterIndexing" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| cl::init(false)); +# 55| +# 56|-> static cl::opt UseDivergentRegisterIndexing( +# 57| "amdgpu-use-divergent-register-indexing", +# 58| cl::Hidden, + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:6883: zero_return: Function call "ST->getNSAMaxSize()" returns 0. +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:6883: assignment: Assigning: "NSAMaxSize" = "ST->getNSAMaxSize()". The value of "NSAMaxSize" is now 0. +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:6893: overrun-buffer-arg: Calling "drop_front" with "llvm::ArrayRef(VAddrs).Data" and "NSAMaxSize - 1U" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 6891| SDValue VAddr; +# 6892| if (UsePartialNSA) { +# 6893|-> VAddr = getBuildDwordsVector(DAG, DL, +# 6894| ArrayRef(VAddrs).drop_front(NSAMaxSize - 1)); +# 6895| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:9408: var_decl: Declaring variable "K0Val". +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:9409: uninit_use_in_call: Using uninitialized value "K0Val.U" when calling "getConstantFP". +# 9407| +# 9408| const APFloat K0Val(0x1p+96f); +# 9409|-> const SDValue K0 = DAG.getConstantFP(K0Val, SL, MVT::f32); +# 9410| +# 9411| const APFloat K1Val(0x1p-32f); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:9411: var_decl: Declaring variable "K1Val". +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:9412: uninit_use_in_call: Using uninitialized value "K1Val.U" when calling "getConstantFP". +# 9410| +# 9411| const APFloat K1Val(0x1p-32f); +# 9412|-> const SDValue K1 = DAG.getConstantFP(K1Val, SL, MVT::f32); +# 9413| +# 9414| const SDValue One = DAG.getConstantFP(1.0, SL, MVT::f32); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:50: constructor_uses_global_object: The constructor of global object "ForceEmitZeroFlag" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceEmitZeroFlag" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| "Force emit s_waitcnt vmcnt(0) instrs"); +# 49| +# 50|-> static cl::opt ForceEmitZeroFlag( +# 51| "amdgpu-waitcnt-forcezero", +# 52| cl::desc("Force all waitcnt instrs to be emitted as s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)"), + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:694: cond_at_most: Checking "Interval.first >= NUM_ALL_VGPRS" implies that "Interval.first" may be up to 512 on the false branch. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:698: assignment: Assigning: "RegNo" = "Interval.first". The value of "RegNo" may now be up to 512. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:698: incr: Incrementing "RegNo". The value of "RegNo" may now be up to 513. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:699: overrun-local: Overrunning array "this->VgprVmemTypes" of 513 bytes at byte offset 513 using index "RegNo" (which evaluates to 513). +# 697| VmemType V = getVmemType(Inst); +# 698| for (int RegNo = Interval.first; RegNo < Interval.second; ++RegNo) +# 699|-> VgprVmemTypes[RegNo] |= 1 << V; +# 700| } +# 701| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInstrInfo.cpp:55: constructor_uses_global_object: The constructor of global object "BranchOffsetBits" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BranchOffsetBits" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 53| // long branches. +# 54| static cl::opt +# 55|-> BranchOffsetBits("amdgpu-s-branch-bits", cl::ReallyHidden, cl::init(16), +# 56| cl::desc("Restrict range of branch instructions (DEBUG)")); +# 57| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInstrInfo.cpp:58: constructor_uses_global_object: The constructor of global object "Fix16BitCopies" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Fix16BitCopies" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| cl::desc("Restrict range of branch instructions (DEBUG)")); +# 57| +# 58|-> static cl::opt Fix16BitCopies( +# 59| "amdgpu-fix-16-bit-physreg-copies", +# 60| cl::desc("Fix copies between 32 and 16 bit registers by extending to 32 bit"), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/AMDGPU/SIInstrInfo.cpp:8829: var_decl: Declaring variable "Mask" without initializer. +llvm-17.0.6.src/lib/Target/AMDGPU/SIInstrInfo.cpp:8847: uninit_use_in_call: Using uninitialized value "(uint64_t)Mask" when calling "countr_zero". +# 8845| return false; +# 8846| +# 8847|-> unsigned BitNo = llvm::countr_zero((uint64_t)Mask); +# 8848| if (IsSigned && BitNo == SrcSize - 1) +# 8849| return false; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SILowerControlFlow.cpp:66: constructor_uses_global_object: The constructor of global object "RemoveRedundantEndcf" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "RemoveRedundantEndcf" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 64| +# 65| static cl::opt +# 66|-> RemoveRedundantEndcf("amdgpu-remove-redundant-endcf", +# 67| cl::init(true), cl::ReallyHidden); +# 68| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIMemoryLegalizer.cpp:33: constructor_uses_global_object: The constructor of global object "AmdgcnSkipCacheInvalidations" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AmdgcnSkipCacheInvalidations" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| #define PASS_NAME "SI Memory Legalizer" +# 32| +# 33|-> static cl::opt AmdgcnSkipCacheInvalidations( +# 34| "amdgcn-skip-cache-invalidations", cl::init(false), cl::Hidden, +# 35| cl::desc("Use this to skip inserting cache invalidating instructions.")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIPreEmitPeephole.cpp:25: constructor_uses_global_object: The constructor of global object "SkipThresholdFlag" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SkipThresholdFlag" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| static unsigned SkipThreshold; +# 24| +# 25|-> static cl::opt SkipThresholdFlag( +# 26| "amdgpu-skip-threshold", cl::Hidden, +# 27| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/SIRegisterInfo.cpp:32: constructor_uses_global_object: The constructor of global object "EnableSpillSGPRToVGPR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSpillSGPRToVGPR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| #include "AMDGPUGenRegisterInfo.inc" +# 31| +# 32|-> static cl::opt EnableSpillSGPRToVGPR( +# 33| "amdgpu-spill-sgpr-to-vgpr", +# 34| cl::desc("Enable spilling SGPRs to VGPRs"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp:36: constructor_uses_global_object: The constructor of global object "AmdhsaCodeObjectVersion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AmdhsaCodeObjectVersion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 34| +# 35| static llvm::cl::opt +# 36|-> AmdhsaCodeObjectVersion("amdhsa-code-object-version", llvm::cl::Hidden, +# 37| llvm::cl::desc("AMDHSA Code Object Version"), +# 38| llvm::cl::init(4)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:80: constructor_uses_global_object: The constructor of global object "EnableARM3Addr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableARM3Addr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| static cl::opt +# 80|-> EnableARM3Addr("enable-arm-3-addr-conv", cl::Hidden, +# 81| cl::desc("Enable ARM 2-addr to 3-addr conv")); +# 82| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:612: tainted_data_return: Called function "MI->findFirstPredOperandIdx()", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:612: assign: Assigning: "PIdx" = "MI->findFirstPredOperandIdx()". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:616: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:616: overflow_sink: "PIdx + 1", which might have overflowed, is passed to "MI->getOperand(PIdx + 1)". +# 614| MachineOperand &PMO = MI.getOperand(PIdx); +# 615| PMO.setImm(Pred[0].getImm()); +# 616|-> MI.getOperand(PIdx+1).setReg(Pred[1].getReg()); +# 617| +# 618| // Thumb 1 arithmetic instructions do not set CPSR when executed inside an + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:2248: tainted_data_return: Called function "MI->findFirstPredOperandIdx()", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:2248: assign: Assigning: "PIdx" = "MI->findFirstPredOperandIdx()". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:2254: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:2254: overflow_sink: "PIdx + 1", which might be negative, is passed to "MI->getOperand(PIdx + 1)". +# 2252| } +# 2253| +# 2254|-> PredReg = MI.getOperand(PIdx+1).getReg(); +# 2255| return (ARMCC::CondCodes)MI.getOperand(PIdx).getImm(); +# 2256| } + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5879: extract: Calling "operator []" which extracts wrapped state from parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5879: assign: Assigning: "FirstCand" = "RepeatedSequenceLocs[0UL]". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:6067: invalidate: Calling "operator =" invalidates the internal representation of parameter "RepeatedSequenceLocs". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:6078: use_after_free: Using invalidated internal representation of parameter "RepeatedSequenceLocs". +# 6076| // check if the range contains a call. These require a save + restore of +# 6077| // the link register. +# 6078|-> if (std::any_of(FirstCand.front(), FirstCand.back(), +# 6079| [](const MachineInstr &MI) { return MI.isCall(); })) +# 6080| NumBytesToCreateFrame += Costs.SaveRestoreLROnStack; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseRegisterInfo.cpp:849: tainted_data_return: Called function "MI->findFirstPredOperandIdx()", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/ARMBaseRegisterInfo.cpp:849: assign: Assigning: "PIdx" = "MI->findFirstPredOperandIdx()". +llvm-17.0.6.src/lib/Target/ARM/ARMBaseRegisterInfo.cpp:852: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/ARMBaseRegisterInfo.cpp:852: overflow_sink: "PIdx + 1", which might have overflowed, is passed to "MI->getOperand(PIdx + 1)". +# 850| ARMCC::CondCodes Pred = (PIdx == -1) +# 851| ? ARMCC::AL : (ARMCC::CondCodes)MI.getOperand(PIdx).getImm(); +# 852|-> Register PredReg = (PIdx == -1) ? Register() : MI.getOperand(PIdx+1).getReg(); +# 853| +# 854| const MCInstrDesc &MCID = MI.getDesc(); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMCallingConv.cpp:88: cond_const: Checking "i < 2U" implies that "i" is 2 on the false branch. +llvm-17.0.6.src/lib/Target/ARM/ARMCallingConv.cpp:92: overrun-local: Overrunning array "LoRegList" of 2 2-byte elements at element index 2 (byte offset 5) using index "i" (which evaluates to 2). +# 90| break; +# 91| +# 92|-> unsigned T = State.AllocateReg(LoRegList[i]); +# 93| (void)T; +# 94| assert(T == LoRegList[i] && "Could not allocate register"); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMCallingConv.cpp:88: cond_const: Checking "i < 2U" implies that "i" is 2 on the false branch. +llvm-17.0.6.src/lib/Target/ARM/ARMCallingConv.cpp:97: overrun-local: Overrunning array "LoRegList" of 2 2-byte elements at element index 2 (byte offset 5) using index "i" (which evaluates to 2). +# 95| +# 96| State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, Reg, LocVT, LocInfo)); +# 97|-> State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, LoRegList[i], +# 98| LocVT, LocInfo)); +# 99| return true; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMCallingConv.cpp:124: cond_const: Checking "i < 2U" implies that "i" is 2 on the false branch. +llvm-17.0.6.src/lib/Target/ARM/ARMCallingConv.cpp:129: overrun-local: Overrunning array "LoRegList" of 2 2-byte elements at element index 2 (byte offset 5) using index "i" (which evaluates to 2). +# 127| +# 128| State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, Reg, LocVT, LocInfo)); +# 129|-> State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, LoRegList[i], +# 130| LocVT, LocInfo)); +# 131| return true; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMConstantIslandPass.cpp:78: constructor_uses_global_object: The constructor of global object "AdjustJumpTableBlocks" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AdjustJumpTableBlocks" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| +# 77| static cl::opt +# 78|-> AdjustJumpTableBlocks("arm-adjust-jump-tables", cl::Hidden, cl::init(true), +# 79| cl::desc("Adjust basic block layout to better use TB[BH]")); +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMConstantIslandPass.cpp:82: constructor_uses_global_object: The constructor of global object "CPMaxIteration" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CPMaxIteration" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| +# 81| static cl::opt +# 82|-> CPMaxIteration("arm-constant-island-max-iteration", cl::Hidden, cl::init(30), +# 83| cl::desc("The max number of iteration for converge")); +# 84| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMConstantIslandPass.cpp:85: constructor_uses_global_object: The constructor of global object "SynthesizeThumb1TBB" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SynthesizeThumb1TBB" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("The max number of iteration for converge")); +# 84| +# 85|-> static cl::opt SynthesizeThumb1TBB( +# 86| "arm-synthesize-thumb-1-tbb", cl::Hidden, cl::init(true), +# 87| cl::desc("Use compressed jump tables in Thumb-1 by synthesizing an " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMExpandPseudoInsts.cpp:35: constructor_uses_global_object: The constructor of global object "VerifyARMPseudo" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VerifyARMPseudo" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 33| +# 34| static cl::opt +# 35|-> VerifyARMPseudo("verify-arm-pseudo-expand", cl::Hidden, +# 36| cl::desc("Verify machine code after expanding ARM pseudos")); +# 37| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1691: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1704: overrun-call: Overrunning callee's array of size 644 by passing argument "LC" (which evaluates to 644) in call to "ARMEmitLibcall". +# 1702| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SDIV!"); +# 1703| +# 1704|-> return ARMEmitLibcall(I, LC); +# 1705| } +# 1706| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1720: assignment: Assigning: "LC" = "UNKNOWN_LIBCALL". +llvm-17.0.6.src/lib/Target/ARM/ARMFastISel.cpp:1733: overrun-call: Overrunning callee's array of size 644 by passing argument "LC" (which evaluates to 644) in call to "ARMEmitLibcall". +# 1731| assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unsupported SREM!"); +# 1732| +# 1733|-> return ARMEmitLibcall(I, LC); +# 1734| } +# 1735| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMFrameLowering.cpp:169: constructor_uses_global_object: The constructor of global object "SpillAlignedNEONRegs" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SpillAlignedNEONRegs" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 167| +# 168| static cl::opt +# 169|-> SpillAlignedNEONRegs("align-neon-spills", cl::Hidden, cl::init(true), +# 170| cl::desc("Align ARM NEON spills in prolog and epilog")); +# 171| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMHazardRecognizer.cpp:23: constructor_uses_global_object: The constructor of global object "DataBankMask" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DataBankMask" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 21| using namespace llvm; +# 22| +# 23|-> static cl::opt DataBankMask("arm-data-bank-mask", cl::init(-1), +# 24| cl::Hidden); +# 25| static cl::opt AssumeITCMConflict("arm-assume-itcm-bankconflict", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMHazardRecognizer.cpp:25: constructor_uses_global_object: The constructor of global object "AssumeITCMConflict" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumeITCMConflict" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| static cl::opt DataBankMask("arm-data-bank-mask", cl::init(-1), +# 24| cl::Hidden); +# 25|-> static cl::opt AssumeITCMConflict("arm-assume-itcm-bankconflict", +# 26| cl::init(false), cl::Hidden); +# 27| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:46: constructor_uses_global_object: The constructor of global object "DisableShifterOp" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableShifterOp" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| +# 45| static cl::opt +# 46|-> DisableShifterOp("disable-shifter-op", cl::Hidden, +# 47| cl::desc("Disable isel of shifter-op"), +# 48| cl::init(false)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:3204: var_decl: Declaring variable "ImmAPF". +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:3209: uninit_use_in_call: Using uninitialized value "ImmAPF.U" when calling "~APFloat". +# 3207| case ARMISD::VDUP: { +# 3208| if (!isa(ImmNode.getOperand(0))) +# 3209|-> return false; +# 3210| unsigned Imm = ImmNode.getConstantOperandVal(0); +# 3211| if (ImmNode.getOpcode() == ARMISD::VMOVIMM) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:3213: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(((ScalarBits == 32U) ? llvm::APFloatBase::IEEEsingle() : llvm::APFloatBase::IEEEhalf()), llvm::APInt(ScalarBits, Imm, false))". +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:3213: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3211| if (ImmNode.getOpcode() == ARMISD::VMOVIMM) +# 3212| Imm = ARM_AM::decodeVMOVModImm(Imm, ScalarBits); +# 3213|-> ImmAPF = +# 3214| APFloat(ScalarBits == 32 ? APFloat::IEEEsingle() : APFloat::IEEEhalf(), +# 3215| APInt(ScalarBits, Imm)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:3219: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::ARM_AM::getFPImmFloat(ImmNode.getConstantOperandVal(0U)))". +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:3219: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 3217| } +# 3218| case ARMISD::VMOVFPIMM: { +# 3219|-> ImmAPF = APFloat(ARM_AM::getFPImmFloat(ImmNode.getConstantOperandVal(0))); +# 3220| break; +# 3221| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:3297: var_decl: Declaring variable "Opcode" without initializer. +llvm-17.0.6.src/lib/Target/ARM/ARMISelDAGToDAG.cpp:3310: uninit_use_in_call: Using uninitialized value "Opcode" when calling "getMachineNode". +# 3308| AddEmptyMVEPredicateToOps(Ops, dl, Type); +# 3309| +# 3310|-> ReplaceNode(N, CurDAG->getMachineNode(Opcode, dl, Type, Ops)); +# 3311| return true; +# 3312| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:131: constructor_uses_global_object: The constructor of global object "ARMInterworking" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ARMInterworking" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 129| +# 130| static cl::opt +# 131|-> ARMInterworking("arm-interworking", cl::Hidden, +# 132| cl::desc("Enable / disable ARM interworking (for debugging only)"), +# 133| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:135: constructor_uses_global_object: The constructor of global object "EnableConstpoolPromotion" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableConstpoolPromotion" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 133| cl::init(true)); +# 134| +# 135|-> static cl::opt EnableConstpoolPromotion( +# 136| "arm-promote-constant", cl::Hidden, +# 137| cl::desc("Enable / disable promotion of unnamed_addr constants into " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:140: constructor_uses_global_object: The constructor of global object "ConstpoolPromotionMaxSize" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConstpoolPromotionMaxSize" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 138| "constant pools"), +# 139| cl::init(false)); // FIXME: set to true by default once PR32780 is fixed +# 140|-> static cl::opt ConstpoolPromotionMaxSize( +# 141| "arm-promote-constant-max-size", cl::Hidden, +# 142| cl::desc("Maximum size of constant to promote into a constant pool"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:144: constructor_uses_global_object: The constructor of global object "ConstpoolPromotionMaxTotal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConstpoolPromotionMaxTotal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 142| cl::desc("Maximum size of constant to promote into a constant pool"), +# 143| cl::init(64)); +# 144|-> static cl::opt ConstpoolPromotionMaxTotal( +# 145| "arm-promote-constant-max-total", cl::Hidden, +# 146| cl::desc("Maximum size of ALL constants to promote into a constant pool"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:150: constructor_uses_global_object: The constructor of global object "MVEMaxSupportedInterleaveFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MVEMaxSupportedInterleaveFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 148| +# 149| cl::opt +# 150|-> MVEMaxSupportedInterleaveFactor("mve-max-interleave-factor", cl::Hidden, +# 151| cl::desc("Maximum interleave factor for MVE VLDn to generate."), +# 152| cl::init(2)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:5060: var_decl: Declaring variable "NewOpcode" without initializer. +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:5099: uninit_use_in_call: Using uninitialized value "NewOpcode" when calling "getNode". +# 5097| +# 5098| SDLoc dl(Op); +# 5099|-> SDValue Add = +# 5100| DAG.getNode(NewOpcode, dl, MVT::i32, +# 5101| DAG.getSExtOrTrunc(Op->getOperand(0), dl, MVT::i32), + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:10352: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(Op)->getSuccessOrdering()" (which evaluates to 15) in call to "isStrongerThanMonotonic". +#10350| +#10351| static SDValue LowerAtomicLoadStore(SDValue Op, SelectionDAG &DAG) { +#10352|-> if (isStrongerThanMonotonic(cast(Op)->getSuccessOrdering())) +#10353| // Acquire/Release load/store is not legal for targets without a dmb or +#10354| // equivalent available. + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:94: constructor_uses_global_object: The constructor of global object "AssumeMisalignedLoadStores" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AssumeMisalignedLoadStores" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 92| /// \see mayCombineMisaligned() +# 93| static cl::opt +# 94|-> AssumeMisalignedLoadStores("arm-assume-misaligned-load-store", cl::Hidden, +# 95| cl::init(false), cl::desc("Be more conservative in ARM load/store opt")); +# 96| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:2196: constructor_uses_global_object: The constructor of global object "InstReorderLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "InstReorderLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 2194| // Limit the number of instructions to be rescheduled. +# 2195| // FIXME: tune this limit, and/or come up with some better heuristics. +# 2196|-> static cl::opt InstReorderLimit("arm-prera-ldst-opt-reorder-limit", +# 2197| cl::init(8), cl::Hidden); +# 2198| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3024: tainted_data_return: Called function "getBaseOperandIndex(MI)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3024: cast_underflow: An assign of a possibly negative number to an unsigned type, which might trigger an underflow. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3033: overflow: The expression "BaseOp + 1U" is deemed underflowed because at least one of its arguments has underflowed. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3033: overflow_sink: "BaseOp + 1U", which might have underflowed, is passed to "MI->getOperand(BaseOp + 1U)". +# 3031| MRI.constrainRegClass(NewBaseReg, TRC); +# 3032| +# 3033|-> int OldOffset = MI->getOperand(BaseOp + 1).getImm(); +# 3034| if (isLegalAddressImm(MI->getOpcode(), OldOffset - Offset, TII)) +# 3035| MI->getOperand(BaseOp + 1).setImm(OldOffset - Offset); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3165: tainted_data_return: Called function "getBaseOperandIndex(Use)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3165: assign: Assigning: "BaseOp" = "getBaseOperandIndex(Use)". +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3174: overflow: The expression "BaseOp + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3174: overflow_sink: "BaseOp + 1", which might have overflowed, is passed to "Use->getOperand(BaseOp + 1)". +# 3172| if (isPreIndex(Use) || isPostIndex(Use)) +# 3173| PrePostInc = &Use; +# 3174|-> else if (Use.getOperand(BaseOp + 1).getImm() == 0) +# 3175| BaseAccess = &Use; +# 3176| else + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3223: tainted_data_return: Called function "getBaseOperandIndex(PrePostInc)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3223: assign: Assigning: "BaseOp" = "getBaseOperandIndex(PrePostInc)". +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3224: overflow: The expression "BaseOp + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3224: overflow_sink: "BaseOp + 1", which might be negative, is passed to "PrePostInc->getOperand(BaseOp + 1)". +# 3222| << "indexed VirtualReg " << Base.virtRegIndex() << "\n"); +# 3223| int BaseOp = getBaseOperandIndex(*PrePostInc); +# 3224|-> IncrementOffset = PrePostInc->getOperand(BaseOp+1).getImm(); +# 3225| BaseAccess = PrePostInc; +# 3226| NewBaseReg = PrePostInc->getOperand(0).getReg(); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3244: tainted_data_return: Called function "getBaseOperandIndex(Use)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3244: cast_underflow: An assign of a possibly negative number to an unsigned type, which might trigger an underflow. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3245: overflow: The expression "BaseOp + 1U" is deemed underflowed because at least one of its arguments has underflowed. +llvm-17.0.6.src/lib/Target/ARM/ARMLoadStoreOptimizer.cpp:3245: overflow_sink: "BaseOp + 1U", which might have underflowed, is passed to "Use->getOperand(BaseOp + 1U)". +# 3243| SuccessorAccesses.insert(Use); +# 3244| unsigned BaseOp = getBaseOperandIndex(*Use); +# 3245|-> if (!isLegalOrConvertableAddressImm(Use->getOpcode(), +# 3246| Use->getOperand(BaseOp + 1).getImm() - +# 3247| IncrementOffset, + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:80: constructor_uses_global_object: The constructor of global object "DisableTailPredication" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableTailPredication" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 78| +# 79| static cl::opt +# 80|-> DisableTailPredication("arm-loloops-disable-tailpred", cl::Hidden, +# 81| cl::desc("Disable tail-predication in the ARM LowOverheadLoop pass"), +# 82| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:85: constructor_uses_global_object: The constructor of global object "DisableOmitDLS" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableOmitDLS" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| +# 84| static cl::opt +# 85|-> DisableOmitDLS("arm-disable-omit-dls", cl::Hidden, +# 86| cl::desc("Disable omitting 'dls lr, lr' instructions"), +# 87| cl::init(false)); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:90: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(MI)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:90: assign: Assigning: "PIdx" = "llvm::findFirstVPTPredOperandIdx(MI)". +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:91: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:91: overflow_sink: "PIdx + 1", which might be negative, is passed to "MI->getOperand(PIdx + 1)". +# 89| static bool isVectorPredicated(MachineInstr *MI) { +# 90| int PIdx = llvm::findFirstVPTPredOperandIdx(*MI); +# 91|-> return PIdx != -1 && MI->getOperand(PIdx + 1).getReg() == ARM::VPR; +# 92| } +# 93| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:1584: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(MI)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:1584: assign: Assigning: "PIdx" = "llvm::findFirstVPTPredOperandIdx(MI)". +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:1589: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/ARMLowOverheadLoops.cpp:1589: overflow_sink: "PIdx + 1", which might have overflowed, is passed to "MI->getOperand(PIdx + 1)". +# 1587| "Expected Then predicate!"); +# 1588| MI->getOperand(PIdx).setImm(ARMVCC::None); +# 1589|-> MI->getOperand(PIdx + 1).setReg(0); +# 1590| }; +# 1591| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMParallelDSP.cpp:45: constructor_uses_global_object: The constructor of global object "DisableParallelDSP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableParallelDSP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 43| +# 44| static cl::opt +# 45|-> DisableParallelDSP("disable-arm-parallel-dsp", cl::Hidden, cl::init(false), +# 46| cl::desc("Disable the ARM Parallel DSP pass")); +# 47| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMParallelDSP.cpp:49: constructor_uses_global_object: The constructor of global object "NumLoadLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NumLoadLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| +# 48| static cl::opt +# 49|-> NumLoadLimit("arm-parallel-dsp-load-limit", cl::Hidden, cl::init(16), +# 50| cl::desc("Limit the number of loads analysed")); +# 51| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMSLSHardening.cpp:344: assignment: Assigning: "FirstOpIdxToRemove" = "std::max(ImpLROpIdx, ImpSPOpIdx)". The value of "FirstOpIdxToRemove" is now -1. +llvm-17.0.6.src/lib/Target/ARM/ARMSLSHardening.cpp:346: overrun-buffer-arg: Calling "removeOperand" with "BL->Operands" and "FirstOpIdxToRemove" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 344| int FirstOpIdxToRemove = std::max(ImpLROpIdx, ImpSPOpIdx); +# 345| int SecondOpIdxToRemove = std::min(ImpLROpIdx, ImpSPOpIdx); +# 346|-> BL->removeOperand(FirstOpIdxToRemove); +# 347| BL->removeOperand(SecondOpIdxToRemove); +# 348| // Now copy over the implicit operands from the original IndirectCall + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/ARMSLSHardening.cpp:345: assignment: Assigning: "SecondOpIdxToRemove" = "std::min(ImpLROpIdx, ImpSPOpIdx)". The value of "SecondOpIdxToRemove" is now -1. +llvm-17.0.6.src/lib/Target/ARM/ARMSLSHardening.cpp:347: overrun-buffer-arg: Calling "removeOperand" with "BL->Operands" and "SecondOpIdxToRemove" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 345| int SecondOpIdxToRemove = std::min(ImpLROpIdx, ImpSPOpIdx); +# 346| BL->removeOperand(FirstOpIdxToRemove); +# 347|-> BL->removeOperand(SecondOpIdxToRemove); +# 348| // Now copy over the implicit operands from the original IndirectCall +# 349| BL->copyImplicitOps(MF, IndirectCall); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSelectionDAGInfo.cpp:22: constructor_uses_global_object: The constructor of global object "EnableMemtransferTPLoop" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMemtransferTPLoop" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| #define DEBUG_TYPE "arm-selectiondag-info" +# 21| +# 22|-> cl::opt EnableMemtransferTPLoop( +# 23| "arm-memtransfer-tploop", cl::Hidden, +# 24| cl::desc("Control conversion of memcpy to " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:50: constructor_uses_global_object: The constructor of global object "UseFusedMulOps" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseFusedMulOps" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| +# 49| static cl::opt +# 50|-> UseFusedMulOps("arm-use-mulops", +# 51| cl::init(true), cl::Hidden); +# 52| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:59: constructor_uses_global_object: The constructor of global object "IT" itself makes use of global object "llvm::cl::AllSubCommands" defined in another compilation unit. The order of construction is unspecified, so "IT" might be created before "llvm::cl::AllSubCommands" is available. +# 57| +# 58| static cl::opt +# 59|-> IT(cl::desc("IT block support"), cl::Hidden, cl::init(DefaultIT), +# 60| cl::values(clEnumValN(DefaultIT, "arm-default-it", +# 61| "Generate any type of IT block"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:68: constructor_uses_global_object: The constructor of global object "ForceFastISel" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceFastISel" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 66| /// currently supported (for testing only). +# 67| static cl::opt +# 68|-> ForceFastISel("arm-force-fast-isel", +# 69| cl::init(false), cl::Hidden); +# 70| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMSubtarget.cpp:71: constructor_uses_global_object: The constructor of global object "EnableSubRegLiveness" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSubRegLiveness" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::init(false), cl::Hidden); +# 70| +# 71|-> static cl::opt EnableSubRegLiveness("arm-enable-subreg-liveness", +# 72| cl::init(false), cl::Hidden); +# 73| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:62: constructor_uses_global_object: The constructor of global object "DisableA15SDOptimization" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableA15SDOptimization" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 60| +# 61| static cl::opt +# 62|-> DisableA15SDOptimization("disable-a15-sd-optimization", cl::Hidden, +# 63| cl::desc("Inhibit optimization of S->D register accesses on A15"), +# 64| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:67: constructor_uses_global_object: The constructor of global object "EnableAtomicTidy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableAtomicTidy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl::opt +# 67|-> EnableAtomicTidy("arm-atomic-cfg-tidy", cl::Hidden, +# 68| cl::desc("Run SimplifyCFG after expanding atomic operations" +# 69| " to make use of cmpxchg flow-based information"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:73: constructor_uses_global_object: The constructor of global object "EnableARMLoadStoreOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableARMLoadStoreOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| +# 72| static cl::opt +# 73|-> EnableARMLoadStoreOpt("arm-load-store-opt", cl::Hidden, +# 74| cl::desc("Enable ARM load/store optimization pass"), +# 75| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetMachine.cpp:79: constructor_uses_global_object: The constructor of global object "EnableGlobalMerge" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableGlobalMerge" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| // FIXME: Unify control over GlobalMerge. +# 78| static cl::opt +# 79|-> EnableGlobalMerge("arm-global-merge", cl::Hidden, +# 80| cl::desc("Enable the global merge pass")); +# 81| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetTransformInfo.cpp:47: constructor_uses_global_object: The constructor of global object "EnableMaskedLoadStores" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMaskedLoadStores" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 45| #define DEBUG_TYPE "armtti" +# 46| +# 47|-> static cl::opt EnableMaskedLoadStores( +# 48| "enable-arm-maskedldst", cl::Hidden, cl::init(true), +# 49| cl::desc("Enable the generation of masked loads and stores")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetTransformInfo.cpp:51: constructor_uses_global_object: The constructor of global object "DisableLowOverheadLoops" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLowOverheadLoops" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| cl::desc("Enable the generation of masked loads and stores")); +# 50| +# 51|-> static cl::opt DisableLowOverheadLoops( +# 52| "disable-arm-loloops", cl::Hidden, cl::init(false), +# 53| cl::desc("Disable the generation of low-overhead loops")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/ARMTargetTransformInfo.cpp:56: constructor_uses_global_object: The constructor of global object "AllowWLSLoops" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AllowWLSLoops" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| static cl::opt +# 56|-> AllowWLSLoops("allow-arm-wlsloops", cl::Hidden, cl::init(true), +# 57| cl::desc("Enable the generation of WLS loops")); +# 58| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:85: constructor_uses_global_object: The constructor of global object "::ImplicitItMode" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::ImplicitItMode" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| enum class ImplicitItModeTy { Always, Never, ARMOnly, ThumbOnly }; +# 84| +# 85|-> static cl::opt ImplicitItMode( +# 86| "arm-implicit-it", cl::init(ImplicitItModeTy::ARMOnly), +# 87| cl::desc("Allow conditional instructions outdside of an IT block"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:97: constructor_uses_global_object: The constructor of global object "::AddBuildAttributes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::AddBuildAttributes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 95| "Warn in ARM, emit implicit ITs in Thumb"))); +# 96| +# 97|-> static cl::opt AddBuildAttributes("arm-add-build-attributes", +# 98| cl::init(false)); +# 99| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:6012: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(RealVal)". +llvm-17.0.6.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp:6012: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 6010| return Error(Loc, "encoded floating point value out of range"); +# 6011| float RealVal = ARM_AM::getFPImmFloat(Val); +# 6012|-> Val = APFloat(RealVal).bitcastToAPInt().getZExtValue(); +# 6013| +# 6014| Operands.push_back(ARMOperand::CreateImm( + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:191: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:194: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:195: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 193| +# 194| if (Kind < FirstTargetFixupKind) +# 195|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 196| +# 197| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:191: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:194: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:199: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 984 bytes. +# 197| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 198| "Invalid kind!"); +# 199|-> return (Endian == support::little ? InfosLE +# 200| : InfosBE)[Kind - FirstTargetFixupKind]; +# 201| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:1091: var_decl: Declaring variable "FullSizeBytes" without initializer. +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp:1102: uninit_use: Using uninitialized value "FullSizeBytes". +# 1100| // bitfields above. +# 1101| for (unsigned i = 0; i != NumBytes; ++i) { +# 1102|-> unsigned Idx = Endian == support::little ? i : (FullSizeBytes - 1 - i); +# 1103| Data[Offset + Idx] |= uint8_t((Value >> (i * 8)) & 0xff); +# 1104| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp:581: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::bit_cast(uint64_t const(MO->getDFPImm())))". +llvm-17.0.6.src/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp:581: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 579| return static_cast(MO.getImm()); +# 580| } else if (MO.isDFPImm()) { +# 581|-> return static_cast(APFloat(bit_cast(MO.getDFPImm())) +# 582| .bitcastToAPInt() +# 583| .getHiBits(32) + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MLxExpansionPass.cpp:32: constructor_uses_global_object: The constructor of global object "ForceExapnd" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceExapnd" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 30| +# 31| static cl::opt +# 32|-> ForceExapnd("expand-all-fp-mlx", cl::init(false), cl::Hidden); +# 33| static cl::opt +# 34| ExpandLimit("expand-limit", cl::init(~0U), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MLxExpansionPass.cpp:34: constructor_uses_global_object: The constructor of global object "ExpandLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExpandLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| ForceExapnd("expand-all-fp-mlx", cl::init(false), cl::Hidden); +# 33| static cl::opt +# 34|-> ExpandLimit("expand-limit", cl::init(~0U), cl::Hidden); +# 35| +# 36| STATISTIC(NumExpand, "Number of fp MLA / MLS instructions expanded"); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVEGatherScatterLowering.cpp:50: constructor_uses_global_object: The constructor of global object "EnableMaskedGatherScatters" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMaskedGatherScatters" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 48| #define DEBUG_TYPE "arm-mve-gather-scatter-lowering" +# 49| +# 50|-> cl::opt EnableMaskedGatherScatters( +# 51| "enable-arm-maskedgatscat", cl::Hidden, cl::init(true), +# 52| cl::desc("Enable the generation of masked gathers and scatters")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVELaneInterleavingPass.cpp:79: constructor_uses_global_object: The constructor of global object "EnableInterleave" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableInterleave" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 77| #define DEBUG_TYPE "mve-laneinterleave" +# 78| +# 79|-> cl::opt EnableInterleave( +# 80| "enable-mve-interleave", cl::Hidden, cl::init(true), +# 81| cl::desc("Enable interleave MVE vector operation lowering")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:39: constructor_uses_global_object: The constructor of global object "MergeEndDec" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MergeEndDec" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> MergeEndDec("arm-enable-merge-loopenddec", cl::Hidden, +# 40| cl::desc("Enable merging Loop End and Dec instructions."), +# 41| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:44: constructor_uses_global_object: The constructor of global object "SetLRPredicate" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SetLRPredicate" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| static cl::opt +# 44|-> SetLRPredicate("arm-set-lr-predicate", cl::Hidden, +# 45| cl::desc("Enable setting lr as a predicate in tail predication regions."), +# 46| cl::init(true)); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:538: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(MI)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:538: assign: Assigning: "Idx" = "llvm::findFirstVPTPredOperandIdx(MI)". +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:539: overflow: The expression "Idx + 2" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:539: overflow_sink: "Idx + 2", which might be negative, is passed to "MI->getOperand(Idx + 2)". +# 537| for (MachineInstr *MI : MVEInstrs) { +# 538| int Idx = findFirstVPTPredOperandIdx(*MI); +# 539|-> MI->getOperand(Idx + 2).setReg(LR); +# 540| } +# 541| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:928: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(Instr)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:928: assign: Assigning: "PIdx" = "llvm::findFirstVPTPredOperandIdx(Instr)". +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:931: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:931: overflow_sink: "PIdx + 1", which might be negative, is passed to "Instr->getOperand(PIdx + 1)". +# 929| if (PIdx == -1) +# 930| continue; +# 931|-> Register VPR = Instr.getOperand(PIdx + 1).getReg(); +# 932| if (!VPR.isVirtual()) +# 933| continue; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/MVETailPredication.cpp:60: constructor_uses_global_object: The constructor of global object "EnableTailPredication" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTailPredication" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| #define DESC "Transform predicated vector loops to use MVE tail predication" +# 59| +# 60|-> cl::opt EnableTailPredication( +# 61| "tail-predication", cl::desc("MVE tail-predication pass options"), +# 62| cl::init(TailPredication::Enabled), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:39: constructor_uses_global_object: The constructor of global object "OldT2IfCvt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "OldT2IfCvt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> OldT2IfCvt("old-thumb2-ifcvt", cl::Hidden, +# 40| cl::desc("Use old-style Thumb2 if-conversion heuristics"), +# 41| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:44: constructor_uses_global_object: The constructor of global object "PreferNoCSEL" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreferNoCSEL" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| +# 43| static cl::opt +# 44|-> PreferNoCSEL("prefer-no-csel", cl::Hidden, +# 45| cl::desc("Prefer predicated Move to CSEL"), +# 46| cl::init(false)); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:788: tainted_data_return: Called function "llvm::findFirstVPTPredOperandIdx(MI)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:788: assign: Assigning: "PIdx" = "llvm::findFirstVPTPredOperandIdx(MI)". +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:794: overflow: The expression "PIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/ARM/Thumb2InstrInfo.cpp:794: overflow_sink: "PIdx + 1", which might be negative, is passed to "MI->getOperand(PIdx + 1)". +# 792| } +# 793| +# 794|-> PredReg = MI.getOperand(PIdx+1).getReg(); +# 795| return (ARMVCC::VPTCodes)MI.getOperand(PIdx).getImm(); +# 796| } + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2SizeReduction.cpp:54: constructor_uses_global_object: The constructor of global object "ReduceLimit" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReduceLimit" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| STATISTIC(NumLdSts, "Number of 32-bit load / store reduced to 16-bit ones"); +# 53| +# 54|-> static cl::opt ReduceLimit("t2-reduce-limit", +# 55| cl::init(-1), cl::Hidden); +# 56| static cl::opt ReduceLimit2Addr("t2-reduce-limit2", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2SizeReduction.cpp:56: constructor_uses_global_object: The constructor of global object "ReduceLimit2Addr" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReduceLimit2Addr" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| static cl::opt ReduceLimit("t2-reduce-limit", +# 55| cl::init(-1), cl::Hidden); +# 56|-> static cl::opt ReduceLimit2Addr("t2-reduce-limit2", +# 57| cl::init(-1), cl::Hidden); +# 58| static cl::opt ReduceLimitLdSt("t2-reduce-limit3", + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/ARM/Thumb2SizeReduction.cpp:58: constructor_uses_global_object: The constructor of global object "ReduceLimitLdSt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ReduceLimitLdSt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 56| static cl::opt ReduceLimit2Addr("t2-reduce-limit2", +# 57| cl::init(-1), cl::Hidden); +# 58|-> static cl::opt ReduceLimitLdSt("t2-reduce-limit3", +# 59| cl::init(-1), cl::Hidden); +# 60| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFAdjustOpt.cpp:33: constructor_uses_global_object: The constructor of global object "DisableBPFserializeICMP" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBPFserializeICMP" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| +# 32| static cl::opt +# 33|-> DisableBPFserializeICMP("bpf-disable-serialize-icmp", cl::Hidden, +# 34| cl::desc("BPF: Disable Serializing ICMP insns."), +# 35| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFAdjustOpt.cpp:37: constructor_uses_global_object: The constructor of global object "DisableBPFavoidSpeculation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBPFavoidSpeculation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 35| cl::init(false)); +# 36| +# 37|-> static cl::opt DisableBPFavoidSpeculation( +# 38| "bpf-disable-avoid-speculation", cl::Hidden, +# 39| cl::desc("BPF: Disable Avoiding Speculative Code Motion."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFISelLowering.cpp:34: constructor_uses_global_object: The constructor of global object "BPFExpandMemcpyInOrder" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BPFExpandMemcpyInOrder" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| #define DEBUG_TYPE "bpf-lower" +# 33| +# 34|-> static cl::opt BPFExpandMemcpyInOrder("bpf-expand-memcpy-in-order", +# 35| cl::Hidden, cl::init(false), +# 36| cl::desc("Expand memcpy into load/store pairs in order")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFRegisterInfo.cpp:31: constructor_uses_global_object: The constructor of global object "BPFStackSizeOption" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BPFStackSizeOption" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt +# 31|-> BPFStackSizeOption("bpf-stack-size", +# 32| cl::desc("Specify the BPF stack size limit"), +# 33| cl::init(512)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/BPF/BPFTargetMachine.cpp:33: constructor_uses_global_object: The constructor of global object "DisableMIPeephole" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableMIPeephole" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| +# 32| static cl:: +# 33|-> opt DisableMIPeephole("disable-bpf-peephole", cl::Hidden, +# 34| cl::desc("Disable machine peepholes for BPF")); +# 35| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:3894: var_decl: Declaring variable "TrgReg" without initializer. +llvm-17.0.6.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:4016: uninit_use: Using uninitialized value "TrgReg". +# 4014| } +# 4015| +# 4016|-> bool IsTrgRegZero = (TrgReg == Mips::ZERO); +# 4017| bool IsSrcRegZero = (SrcReg == Mips::ZERO); +# 4018| if (IsSrcRegZero && IsTrgRegZero) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:4167: var_decl: Declaring variable "RtReg" without initializer. +llvm-17.0.6.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp:4242: uninit_use: Using uninitialized value "RtReg". +# 4240| // GAS. GAS has an inconsistency/missed optimization in that not all cases +# 4241| // are handled equivalently. As the observed behaviour is the same, we're ok. +# 4242|-> if (RtReg == Mips::ZERO || RtReg == Mips::ZERO_64) { +# 4243| if (UseTraps) { +# 4244| TOut.emitRRI(Mips::TEQ, ZeroReg, ZeroReg, 0x7, IDLoc, STI); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp:22: constructor_uses_global_object: The constructor of global object "EmitJalrReloc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmitJalrReloc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| // and libLLVMMipsCodeGen +# 21| cl::opt +# 22|-> EmitJalrReloc("mips-jalr-reloc", cl::Hidden, +# 23| cl::desc("MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"), +# 24| cl::init(true)); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:514: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:516: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:517: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 515| return MCAsmBackend::getFixupKindInfo(FK_NONE); +# 516| if (Kind < FirstTargetFixupKind) +# 517|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 518| +# 519| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:514: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:516: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:523: illegal_address: "LittleEndianInfos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1680 bytes. +# 521| +# 522| if (Endian == support::little) +# 523|-> return LittleEndianInfos[Kind - FirstTargetFixupKind]; +# 524| return BigEndianInfos[Kind - FirstTargetFixupKind]; +# 525| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:514: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:516: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp:524: illegal_address: "BigEndianInfos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 1680 bytes. +# 522| if (Endian == support::little) +# 523| return LittleEndianInfos[Kind - FirstTargetFixupKind]; +# 524|-> return BigEndianInfos[Kind - FirstTargetFixupKind]; +# 525| } +# 526| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp:34: constructor_uses_global_object: The constructor of global object "::RoundSectionSizes" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "::RoundSectionSizes" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| +# 33| namespace { +# 34|-> static cl::opt RoundSectionSizes( +# 35| "mips-round-section-sizes", cl::init(false), +# 36| cl::desc("Round section sizes up to the section alignment"), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/Mips16ISelLowering.cpp:26: constructor_uses_global_object: The constructor of global object "DontExpandCondPseudos16" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DontExpandCondPseudos16" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| #define DEBUG_TYPE "mips-lower" +# 25| +# 26|-> static cl::opt DontExpandCondPseudos16( +# 27| "mips16-dont-expand-cond-pseudo", +# 28| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsBranchExpansion.cpp:114: constructor_uses_global_object: The constructor of global object "SkipLongBranch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SkipLongBranch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 112| +# 113| static cl::opt +# 114|-> SkipLongBranch("skip-mips-long-branch", cl::init(false), +# 115| cl::desc("MIPS: Skip branch expansion pass."), cl::Hidden); +# 116| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsBranchExpansion.cpp:118: constructor_uses_global_object: The constructor of global object "ForceLongBranch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceLongBranch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| +# 117| static cl::opt +# 118|-> ForceLongBranch("force-mips-long-branch", cl::init(false), +# 119| cl::desc("MIPS: Expand all branches to long format."), +# 120| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsConstantIslandPass.cpp:69: constructor_uses_global_object: The constructor of global object "AlignConstantIslands" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "AlignConstantIslands" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| // FIXME: This option should be removed once it has received sufficient testing. +# 68| static cl::opt +# 69|-> AlignConstantIslands("mips-align-constant-islands", cl::Hidden, cl::init(true), +# 70| cl::desc("Align constant islands in code")); +# 71| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsConstantIslandPass.cpp:74: constructor_uses_global_object: The constructor of global object "ConstantIslandsSmallOffset" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ConstantIslandsSmallOffset" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 72| // Rather than do make check tests with huge amounts of code, we force +# 73| // the test to use this amount. +# 74|-> static cl::opt ConstantIslandsSmallOffset( +# 75| "mips-constant-islands-small-offset", +# 76| cl::init(0), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsConstantIslandPass.cpp:82: constructor_uses_global_object: The constructor of global object "NoLoadRelaxation" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoLoadRelaxation" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| // For testing purposes we tell it to not use relaxed load forms so that it +# 81| // will split blocks. +# 82|-> static cl::opt NoLoadRelaxation( +# 83| "mips-constant-islands-no-load-relaxation", +# 84| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:59: constructor_uses_global_object: The constructor of global object "DisableDelaySlotFiller" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableDelaySlotFiller" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| " are not NOP."); +# 58| +# 59|-> static cl::opt DisableDelaySlotFiller( +# 60| "disable-mips-delay-filler", +# 61| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:65: constructor_uses_global_object: The constructor of global object "DisableForwardSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableForwardSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 63| cl::Hidden); +# 64| +# 65|-> static cl::opt DisableForwardSearch( +# 66| "disable-mips-df-forward-search", +# 67| cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:71: constructor_uses_global_object: The constructor of global object "DisableSuccBBSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSuccBBSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| cl::Hidden); +# 70| +# 71|-> static cl::opt DisableSuccBBSearch( +# 72| "disable-mips-df-succbb-search", +# 73| cl::init(true), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:77: constructor_uses_global_object: The constructor of global object "DisableBackwardSearch" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableBackwardSearch" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 75| cl::Hidden); +# 76| +# 77|-> static cl::opt DisableBackwardSearch( +# 78| "disable-mips-df-backward-search", +# 79| cl::init(false), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsDelaySlotFiller.cpp:93: constructor_uses_global_object: The constructor of global object "MipsCompactBranchPolicy" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MipsCompactBranchPolicy" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 91| }; +# 92| +# 93|-> static cl::opt MipsCompactBranchPolicy( +# 94| "mips-compact-branches", cl::Optional, cl::init(CB_Optimal), +# 95| cl::desc("MIPS Specific: Compact branch policy."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsISelLowering.cpp:86: constructor_uses_global_object: The constructor of global object "NoZeroDivCheck" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoZeroDivCheck" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 84| +# 85| static cl::opt +# 86|-> NoZeroDivCheck("mno-check-zero-division", cl::Hidden, +# 87| cl::desc("MIPS: Don't trap on integer division by zero."), +# 88| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsMachineFunction.cpp:22: constructor_uses_global_object: The constructor of global object "FixGlobalBaseReg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FixGlobalBaseReg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 20| +# 21| static cl::opt +# 22|-> FixGlobalBaseReg("mips-fix-global-base-reg", cl::Hidden, cl::init(true), +# 23| cl::desc("Always use $gp as the global base register.")); +# 24| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsOptimizePICCall.cpp:46: constructor_uses_global_object: The constructor of global object "LoadTargetFromGOT" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LoadTargetFromGOT" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 44| #define DEBUG_TYPE "optimize-mips-pic-call" +# 45| +# 46|-> static cl::opt LoadTargetFromGOT("mips-load-target-from-got", +# 47| cl::init(true), +# 48| cl::desc("Load target address from GOT"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsOptimizePICCall.cpp:51: constructor_uses_global_object: The constructor of global object "EraseGPOpnd" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EraseGPOpnd" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 49| cl::Hidden); +# 50| +# 51|-> static cl::opt EraseGPOpnd("mips-erase-gp-opnd", +# 52| cl::init(true), cl::desc("Erase GP Operand"), +# 53| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsOs16.cpp:25: constructor_uses_global_object: The constructor of global object "Mips32FunctionMask[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips32FunctionMask[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 23| #define DEBUG_TYPE "mips-os16" +# 24| +# 25|-> static cl::opt Mips32FunctionMask( +# 26| "mips32-function-mask", +# 27| cl::init(""), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSEISelLowering.cpp:56: constructor_uses_global_object: The constructor of global object "UseMipsTailCalls" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseMipsTailCalls" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 54| +# 55| static cl::opt +# 56|-> UseMipsTailCalls("mips-tail-calls", cl::Hidden, +# 57| cl::desc("MIPS: permit tail calls."), cl::init(false)); +# 58| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSEISelLowering.cpp:59: constructor_uses_global_object: The constructor of global object "NoDPLoadStore" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoDPLoadStore" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| cl::desc("MIPS: permit tail calls."), cl::init(false)); +# 58| +# 59|-> static cl::opt NoDPLoadStore("mno-ldc1-sdc1", cl::init(false), +# 60| cl::desc("Expand double precision loads and " +# 61| "stores to their single precision " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:39: constructor_uses_global_object: The constructor of global object "Mixed16_32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mixed16_32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| // +# 38| static cl::opt +# 39|-> Mixed16_32("mips-mixed-16-32", cl::init(false), +# 40| cl::desc("Allow for a mixture of Mips16 " +# 41| "and Mips32 code in a single output file"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:44: constructor_uses_global_object: The constructor of global object "Mips_Os16" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips_Os16" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 42| cl::Hidden); +# 43| +# 44|-> static cl::opt Mips_Os16("mips-os16", cl::init(false), +# 45| cl::desc("Compile all functions that don't use " +# 46| "floating point as Mips 16"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:49: constructor_uses_global_object: The constructor of global object "Mips16HardFloat" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips16HardFloat" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 47| cl::Hidden); +# 48| +# 49|-> static cl::opt Mips16HardFloat("mips16-hard-float", cl::NotHidden, +# 50| cl::desc("Enable mips16 hard float."), +# 51| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:54: constructor_uses_global_object: The constructor of global object "Mips16ConstantIslands" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "Mips16ConstantIslands" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 52| +# 53| static cl::opt +# 54|-> Mips16ConstantIslands("mips16-constant-islands", cl::NotHidden, +# 55| cl::desc("Enable mips16 constant islands."), +# 56| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsSubtarget.cpp:59: constructor_uses_global_object: The constructor of global object "GPOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GPOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 57| +# 58| static cl::opt +# 59|-> GPOpt("mgpopt", cl::Hidden, +# 60| cl::desc("Enable gp-relative addressing of mips small data items")); +# 61| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetMachine.cpp:52: constructor_uses_global_object: The constructor of global object "EnableMulMulFix" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableMulMulFix" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 50| +# 51| static cl::opt +# 52|-> EnableMulMulFix("mfix4300", cl::init(false), +# 53| cl::desc("Enable the VR4300 mulmul bug fix."), cl::Hidden); +# 54| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:24: constructor_uses_global_object: The constructor of global object "SSThreshold" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "SSThreshold" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 22| +# 23| static cl::opt +# 24|-> SSThreshold("mips-ssection-threshold", cl::Hidden, +# 25| cl::desc("Small data and bss section threshold size (default=8)"), +# 26| cl::init(8)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:29: constructor_uses_global_object: The constructor of global object "LocalSData" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LocalSData" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 27| +# 28| static cl::opt +# 29|-> LocalSData("mlocal-sdata", cl::Hidden, +# 30| cl::desc("MIPS: Use gp_rel for object-local data."), +# 31| cl::init(true)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:34: constructor_uses_global_object: The constructor of global object "ExternSData" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExternSData" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 32| +# 33| static cl::opt +# 34|-> ExternSData("mextern-sdata", cl::Hidden, +# 35| cl::desc("MIPS: Use gp_rel for data that is not defined by the " +# 36| "current object."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/Mips/MipsTargetObjectFile.cpp:40: constructor_uses_global_object: The constructor of global object "EmbeddedData" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EmbeddedData" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| +# 39| static cl::opt +# 40|-> EmbeddedData("membedded-data", cl::Hidden, +# 41| cl::desc("MIPS: Try to allocate variables in the following" +# 42| " sections if possible: .rodata, .sdata, .data ."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp:96: constructor_uses_global_object: The constructor of global object "LowerCtorDtor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "LowerCtorDtor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| +# 95| static cl::opt +# 96|-> LowerCtorDtor("nvptx-lower-global-ctor-dtor", +# 97| cl::desc("Lower GPU ctor / dtors to globals on the device."), +# 98| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXCtorDtorLowering.cpp:31: constructor_uses_global_object: The constructor of global object "GlobalStr[abi:cxx11]" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GlobalStr[abi:cxx11]" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 29| +# 30| static cl::opt +# 31|-> GlobalStr("nvptx-lower-global-ctor-dtor-id", +# 32| cl::desc("Override unique ID of ctor/dtor globals."), +# 33| cl::init(""), cl::Hidden); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp:871: assignment: Assigning: "Ordering" = "LD->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp:876: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isStrongerThanMonotonic". +# 874| // with PTX ISA 6.0 / sm_70. +# 875| // TODO: Check if we can actually use the new instructions and implement them. +# 876|-> if (isStrongerThanMonotonic(Ordering)) +# 877| return false; +# 878| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp:1649: assignment: Assigning: "Ordering" = "ST->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp:1654: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isStrongerThanMonotonic". +# 1652| // with PTX ISA 6.0 / sm_70. +# 1653| // TODO: Check if we can actually use the new instructions and implement them. +# 1654|-> if (isStrongerThanMonotonic(Ordering)) +# 1655| return false; +# 1656| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:71: constructor_uses_global_object: The constructor of global object "sched4reg" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "sched4reg" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 69| static std::atomic GlobalUniqueCallSite; +# 70| +# 71|-> static cl::opt sched4reg( +# 72| "nvptx-sched4reg", +# 73| cl::desc("NVPTX Specific: schedule for register pressue"), cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:75: constructor_uses_global_object: The constructor of global object "FMAContractLevelOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FMAContractLevelOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 73| cl::desc("NVPTX Specific: schedule for register pressue"), cl::init(false)); +# 74| +# 75|-> static cl::opt FMAContractLevelOpt( +# 76| "nvptx-fma-level", cl::Hidden, +# 77| cl::desc("NVPTX Specific: FMA contraction (0: don't do it" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:81: constructor_uses_global_object: The constructor of global object "UsePrecDivF32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UsePrecDivF32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 79| cl::init(2)); +# 80| +# 81|-> static cl::opt UsePrecDivF32( +# 82| "nvptx-prec-divf32", cl::Hidden, +# 83| cl::desc("NVPTX Specifies: 0 use div.approx, 1 use div.full, 2 use" + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:87: constructor_uses_global_object: The constructor of global object "UsePrecSqrtF32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UsePrecSqrtF32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 85| cl::init(2)); +# 86| +# 87|-> static cl::opt UsePrecSqrtF32( +# 88| "nvptx-prec-sqrtf32", cl::Hidden, +# 89| cl::desc("NVPTX Specific: 0 use sqrt.approx, 1 use sqrt.rn."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:92: constructor_uses_global_object: The constructor of global object "ForceMinByValParamAlign" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ForceMinByValParamAlign" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 90| cl::init(true)); +# 91| +# 92|-> static cl::opt ForceMinByValParamAlign( +# 93| "nvptx-force-min-byval-param-align", cl::Hidden, +# 94| cl::desc("NVPTX Specific: force 4-byte minimal alignment for byval" + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:339: var_decl: Declaring variable "VectorInfo". +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:343: uninit_use: Using uninitialized value "VectorInfo". Field "VectorInfo.InlineElts" is uninitialized. +# 341| +# 342| if (IsVAArg) +# 343|-> return VectorInfo; +# 344| +# 345| // Check what we can vectorize using 128/64/32-bit accesses. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:339: var_decl: Declaring variable "VectorInfo". +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXISelLowering.cpp:379: uninit_use: Using uninitialized value "VectorInfo". Field "VectorInfo.InlineElts" is uninitialized. +# 377| } +# 378| } +# 379|-> return VectorInfo; +# 380| } +# 381| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXSubtarget.cpp:26: constructor_uses_global_object: The constructor of global object "NoF16Math" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NoF16Math" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 24| +# 25| static cl::opt +# 26|-> NoF16Math("nvptx-no-f16-math", cl::Hidden, +# 27| cl::desc("NVPTX Specific: Disable generation of f16 math ops."), +# 28| cl::init(false)); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:48: constructor_uses_global_object: The constructor of global object "DisableLoadStoreVectorizer" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableLoadStoreVectorizer" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 46| // encounter (or suspect) a bug. +# 47| static cl::opt +# 48|-> DisableLoadStoreVectorizer("disable-nvptx-load-store-vectorizer", +# 49| cl::desc("Disable load/store vectorizer"), +# 50| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:53: constructor_uses_global_object: The constructor of global object "DisableRequireStructuredCFG" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableRequireStructuredCFG" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 51| +# 52| // TODO: Remove this flag when we are confident with no regressions. +# 53|-> static cl::opt DisableRequireStructuredCFG( +# 54| "disable-nvptx-require-structured-cfg", +# 55| cl::desc("Transitional flag to turn off NVPTX's requirement on preserving " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:60: constructor_uses_global_object: The constructor of global object "UseShortPointersOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseShortPointersOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 58| cl::init(false), cl::Hidden); +# 59| +# 60|-> static cl::opt UseShortPointersOpt( +# 61| "nvptx-short-ptr", +# 62| cl::desc( + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVPTXTargetMachine.cpp:69: constructor_uses_global_object: The constructor of global object "ExitOnUnreachable" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ExitOnUnreachable" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 67| // makes it into the LLVM-17 release. +# 68| static cl::opt +# 69|-> ExitOnUnreachable("nvptx-exit-on-unreachable", +# 70| cl::desc("Lower 'unreachable' as 'exit' instruction."), +# 71| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVVMIntrRange.cpp:30: constructor_uses_global_object: The constructor of global object "NVVMIntrRangeSM" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NVVMIntrRangeSM" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 28| +# 29| // Add !range metadata based on limits of given SM variant. +# 30|-> static cl::opt NVVMIntrRangeSM("nvvm-intr-range-sm", cl::init(20), +# 31| cl::Hidden, cl::desc("SM variant")); +# 32| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/NVPTX/NVVMReflect.cpp:70: constructor_uses_global_object: The constructor of global object "NVVMReflectEnabled" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "NVVMReflectEnabled" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| +# 69| static cl::opt +# 70|-> NVVMReflectEnabled("nvvm-reflect-enable", cl::init(true), cl::Hidden, +# 71| cl::desc("NVVM reflection, enabled by default")); +# 72| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp:607: overrun-local: Overrunning array "CRRegs" of 8 2-byte elements at element index 4294967239 (byte offset 8589934479) using index "this->getCRBitMask()" (which evaluates to 4294967239). +# 605| void addCRBitMaskOperands(MCInst &Inst, unsigned N) const { +# 606| assert(N == 1 && "Invalid number of operands!"); +# 607|-> Inst.addOperand(MCOperand::createReg(CRRegs[getCRBitMask()])); +# 608| } +# 609| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:127: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:130: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:131: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 129| +# 130| if (Kind < FirstTargetFixupKind) +# 131|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 132| +# 133| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:127: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:130: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp:135: illegal_address: "((this->Endian == little) ? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 264 bytes. +# 133| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 134| "Invalid kind!"); +# 135|-> return (Endian == support::little +# 136| ? InfosLE +# 137| : InfosBE)[Kind - FirstTargetFixupKind]; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp:33: constructor_uses_global_object: The constructor of global object "FullRegNames" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FullRegNames" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 31| // to the verbose-asm setting. +# 32| static cl::opt +# 33|-> FullRegNames("ppc-asm-full-reg-names", cl::Hidden, cl::init(false), +# 34| cl::desc("Use full register names when printing assembly")); +# 35| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp:38: constructor_uses_global_object: The constructor of global object "ShowVSRNumsAsVR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ShowVSRNumsAsVR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 36| // Useful for testing purposes. Prints vs{31-63} as v{0-31} respectively. +# 37| static cl::opt +# 38|-> ShowVSRNumsAsVR("ppc-vsr-nums-as-vr", cl::Hidden, cl::init(false), +# 39| cl::desc("Prints full register names with vs{31-63} as v{0-31}")); +# 40| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp:43: constructor_uses_global_object: The constructor of global object "FullRegNamesWithPercent" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FullRegNamesWithPercent" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 41| // Prints full register names with percent symbol. +# 42| static cl::opt +# 43|-> FullRegNamesWithPercent("ppc-reg-with-percent-prefix", cl::Hidden, +# 44| cl::init(false), +# 45| cl::desc("Prints full register names with percent")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCAsmPrinter.cpp:96: constructor_uses_global_object: The constructor of global object "EnableSSPCanaryBitInTB" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableSSPCanaryBitInTB" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 94| STATISTIC(NumTOCEHBlock, "Number of EH Block TOC Entries."); +# 95| +# 96|-> static cl::opt EnableSSPCanaryBitInTB( +# 97| "aix-ssp-tb-bit", cl::init(false), +# 98| cl::desc("Enable Passing SSP Canary info in Trackback on AIX"), cl::Hidden); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/PowerPC/PPCCallingConv.cpp:159: cond_const: Checking "i < 4UL" implies that "i" is 4 on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/PPCCallingConv.cpp:163: overrun-local: Overrunning array "LoRegList" of 4 2-byte elements at element index 4 (byte offset 9) using index "i" (which evaluates to 4). +# 161| break; +# 162| +# 163|-> unsigned T = State.AllocateReg(LoRegList[i]); +# 164| (void)T; +# 165| assert(T == LoRegList[i] && "Could not allocate register"); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/PowerPC/PPCCallingConv.cpp:159: cond_const: Checking "i < 4UL" implies that "i" is 4 on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/PPCCallingConv.cpp:168: overrun-local: Overrunning array "LoRegList" of 4 2-byte elements at element index 4 (byte offset 9) using index "i" (which evaluates to 4). +# 166| +# 167| State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, Reg, LocVT, LocInfo)); +# 168|-> State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, LoRegList[i], +# 169| LocVT, LocInfo)); +# 170| return true; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/PowerPC/PPCCallingConv.cpp:188: cond_const: Checking "i < 1UL" implies that "i" is 1 on the false branch. +llvm-17.0.6.src/lib/Target/PowerPC/PPCCallingConv.cpp:193: overrun-local: Overrunning array "LoRegList" of 1 2-byte elements at element index 1 (byte offset 3) using index "i" (which evaluates to 1). +# 191| +# 192| State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, Reg, LocVT, LocInfo)); +# 193|-> State.addLoc(CCValAssign::getCustomReg(ValNo, ValVT, LoRegList[i], +# 194| LocVT, LocInfo)); +# 195| return true; + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCExpandISEL.cpp:40: constructor_uses_global_object: The constructor of global object "GenerateISEL" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "GenerateISEL" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 38| // ISEL instruction, else expand it. +# 39| static cl::opt +# 40|-> GenerateISEL("ppc-gen-isel", +# 41| cl::desc("Enable generating the ISEL instruction."), +# 42| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCFrameLowering.cpp:39: constructor_uses_global_object: The constructor of global object "EnablePEVectorSpills" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnablePEVectorSpills" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 37| +# 38| static cl::opt +# 39|-> EnablePEVectorSpills("ppc-enable-pe-vector-spills", +# 40| cl::desc("Enable spills in prologue to vector registers."), +# 41| cl::init(false), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:91: constructor_uses_global_object: The constructor of global object "ANDIGlueBug" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "ANDIGlueBug" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 89| +# 90| // FIXME: Remove this once the bug has been fixed! +# 91|-> cl::opt ANDIGlueBug("expose-ppc-andi-glue-bug", +# 92| cl::desc("expose the ANDI glue bug on PPC"), cl::Hidden); +# 93| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:95: constructor_uses_global_object: The constructor of global object "UseBitPermRewriter" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseBitPermRewriter" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 93| +# 94| static cl::opt +# 95|-> UseBitPermRewriter("ppc-use-bit-perm-rewriter", cl::init(true), +# 96| cl::desc("use aggressive ppc isel for bit permutations"), +# 97| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:98: constructor_uses_global_object: The constructor of global object "BPermRewriterNoMasking" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "BPermRewriterNoMasking" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 96| cl::desc("use aggressive ppc isel for bit permutations"), +# 97| cl::Hidden); +# 98|-> static cl::opt BPermRewriterNoMasking( +# 99| "ppc-bit-perm-rewriter-stress-rotates", +# 100| cl::desc("stress rotate selection in aggressive ppc isel for " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:104: constructor_uses_global_object: The constructor of global object "EnableBranchHint" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableBranchHint" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 102| cl::Hidden); +# 103| +# 104|-> static cl::opt EnableBranchHint( +# 105| "ppc-use-branch-hint", cl::init(true), +# 106| cl::desc("Enable static hinting of branches on ppc"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:109: constructor_uses_global_object: The constructor of global object "EnableTLSOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableTLSOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 107| cl::Hidden); +# 108| +# 109|-> static cl::opt EnableTLSOpt( +# 110| "ppc-tls-opt", cl::init(true), +# 111| cl::desc("Enable tls optimization peephole"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:118: constructor_uses_global_object: The constructor of global object "CmpInGPR" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "CmpInGPR" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 116| ICGPR_SextI32, ICGPR_ZextI64, ICGPR_SextI64 }; +# 117| +# 118|-> static cl::opt CmpInGPR( +# 119| "ppc-gpr-icmps", cl::Hidden, cl::init(ICGPR_All), +# 120| cl::desc("Specify the types of comparisons to emit GPR-only code for."), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:107: constructor_uses_global_object: The constructor of global object "DisablePPCPreinc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePPCPreinc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 105| #define DEBUG_TYPE "ppc-lowering" +# 106| +# 107|-> static cl::opt DisablePPCPreinc("disable-ppc-preinc", +# 108| cl::desc("disable preincrement load/store generation on PPC"), cl::Hidden); +# 109| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:110: constructor_uses_global_object: The constructor of global object "DisableILPPref" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableILPPref" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 108| cl::desc("disable preincrement load/store generation on PPC"), cl::Hidden); +# 109| +# 110|-> static cl::opt DisableILPPref("disable-ppc-ilp-pref", +# 111| cl::desc("disable setting the node scheduling preference to ILP on PPC"), cl::Hidden); +# 112| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:113: constructor_uses_global_object: The constructor of global object "DisablePPCUnaligned" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePPCUnaligned" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 111| cl::desc("disable setting the node scheduling preference to ILP on PPC"), cl::Hidden); +# 112| +# 113|-> static cl::opt DisablePPCUnaligned("disable-ppc-unaligned", +# 114| cl::desc("disable unaligned load/store generation on PPC"), cl::Hidden); +# 115| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:116: constructor_uses_global_object: The constructor of global object "DisableSCO" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableSCO" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 114| cl::desc("disable unaligned load/store generation on PPC"), cl::Hidden); +# 115| +# 116|-> static cl::opt DisableSCO("disable-ppc-sco", +# 117| cl::desc("disable sibling call optimization on ppc"), cl::Hidden); +# 118| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:119: constructor_uses_global_object: The constructor of global object "DisableInnermostLoopAlign32" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableInnermostLoopAlign32" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 117| cl::desc("disable sibling call optimization on ppc"), cl::Hidden); +# 118| +# 119|-> static cl::opt DisableInnermostLoopAlign32("disable-ppc-innermost-loop-align32", +# 120| cl::desc("don't always align innermost loop to 32 bytes on ppc"), cl::Hidden); +# 121| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:122: constructor_uses_global_object: The constructor of global object "UseAbsoluteJumpTables" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseAbsoluteJumpTables" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 120| cl::desc("don't always align innermost loop to 32 bytes on ppc"), cl::Hidden); +# 121| +# 122|-> static cl::opt UseAbsoluteJumpTables("ppc-use-absolute-jumptables", +# 123| cl::desc("use absolute jump tables on ppc"), cl::Hidden); +# 124| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:126: constructor_uses_global_object: The constructor of global object "DisablePerfectShuffle" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisablePerfectShuffle" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 124| +# 125| static cl::opt +# 126|-> DisablePerfectShuffle("ppc-disable-perfect-shuffle", +# 127| cl::desc("disable vector permute decomposition"), +# 128| cl::init(true), cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCISelLowering.cpp:130: constructor_uses_global_object: The constructor of global object "DisableAutoPairedVecSt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableAutoPairedVecSt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 128| cl::init(true), cl::Hidden); +# 129| +# 130|-> cl::opt DisableAutoPairedVecSt( +# 131| "disable-auto-paired-vec-st", +# 132| cl::desc("disable automatically generated 32byte paired vector stores"), + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:67: constructor_uses_global_object: The constructor of global object "DisableCTRLoopAnal" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCTRLoopAnal" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 65| +# 66| static cl:: +# 67|-> opt DisableCTRLoopAnal("disable-ppc-ctrloop-analysis", cl::Hidden, +# 68| cl::desc("Disable analysis for CTR loops")); +# 69| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:70: constructor_uses_global_object: The constructor of global object "DisableCmpOpt" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "DisableCmpOpt" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 68| cl::desc("Disable analysis for CTR loops")); +# 69| +# 70|-> static cl::opt DisableCmpOpt("disable-ppc-cmp-opt", +# 71| cl::desc("Disable compare instruction optimization"), cl::Hidden); +# 72| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:73: constructor_uses_global_object: The constructor of global object "VSXSelfCopyCrash" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "VSXSelfCopyCrash" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 71| cl::desc("Disable compare instruction optimization"), cl::Hidden); +# 72| +# 73|-> static cl::opt VSXSelfCopyCrash("crash-on-ppc-vsx-self-copy", +# 74| cl::desc("Causes the backend to crash instead of generating a nop VSX copy"), +# 75| cl::Hidden); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:78: constructor_uses_global_object: The constructor of global object "UseOldLatencyCalc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "UseOldLatencyCalc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 76| +# 77| static cl::opt +# 78|-> UseOldLatencyCalc("ppc-old-latency-calc", cl::Hidden, +# 79| cl::desc("Use the old (incorrect) instruction latency calculation")); +# 80| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:82: constructor_uses_global_object: The constructor of global object "FMARPFactor" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "FMARPFactor" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 80| +# 81| static cl::opt +# 82|-> FMARPFactor("ppc-fma-rp-factor", cl::Hidden, cl::init(1.5), +# 83| cl::desc("register pressure factor for the transformations.")); +# 84| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:85: constructor_uses_global_object: The constructor of global object "EnableFMARegPressureReduction" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableFMARegPressureReduction" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 83| cl::desc("register pressure factor for the transformations.")); +# 84| +# 85|-> static cl::opt EnableFMARegPressureReduction( +# 86| "ppc-fma-rp-reduction", cl::Hidden, cl::init(true), +# 87| cl::desc("enable register pressure reduce in machine combiner pass.")); + +Error: NEGATIVE_RETURNS (CWE-394): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:388: negative_return_fn: Function "this->this->getFMAOpIdxInfo(this->Root->getOpcode())" returns a negative number. +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:388: negative_returns: Using variable "this->this->getFMAOpIdxInfo(this->Root->getOpcode())" as an index to array "FMAOpIdxInfo". +# 386| auto IsReassociableAddOrSub = [&](const MachineInstr &Instr, +# 387| unsigned OpType) { +# 388|-> if (Instr.getOpcode() != +# 389| FMAOpIdxInfo[getFMAOpIdxInfo(Root.getOpcode())][OpType]) +# 390| return false; + +Error: NEGATIVE_RETURNS (CWE-394): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:810: negative_return_fn: Function "this->getFMAOpIdxInfo(FmaOp)" returns a negative number. +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:810: assign: Assigning: "Idx" = "this->getFMAOpIdxInfo(FmaOp)". +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:817: negative_returns: Using variable "Idx" as an index to array "FMAOpIdxInfo". +# 815| (Pattern == MachineCombinerPattern::REASSOC_XMM_AMM_BMM); +# 816| +# 817|-> uint16_t AddOpIdx = FMAOpIdxInfo[Idx][InfoArrayIdxAddOpIdx]; +# 818| uint16_t FirstMulOpIdx = FMAOpIdxInfo[Idx][InfoArrayIdxMULOpIdx]; +# 819| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:1260: var_decl: Declaring variable "Nop". +llvm-17.0.6.src/lib/Target/PowerPC/PPCInstrInfo.cpp:1262: uninit_use: Using uninitialized value "Nop". Field "Nop.Operands.InlineElts" is uninitialized. +# 1260| MCInst Nop; +# 1261| Nop.setOpcode(PPC::NOP); +# 1262|-> return Nop; +# 1263| } +# 1264| + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:120: constructor_uses_global_object: The constructor of global object "MaxVarsPrep" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "MaxVarsPrep" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 118| +# 119| static cl::opt +# 120|-> MaxVarsPrep("ppc-formprep-max-vars", cl::Hidden, cl::init(24), +# 121| cl::desc("Potential common base number threshold per function " +# 122| "for PPC loop prep")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:124: constructor_uses_global_object: The constructor of global object "PreferUpdateForm" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "PreferUpdateForm" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 122| "for PPC loop prep")); +# 123| +# 124|-> static cl::opt PreferUpdateForm("ppc-formprep-prefer-update", +# 125| cl::init(true), cl::Hidden, +# 126| cl::desc("prefer update form when ds form is also a update form")); + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:128: constructor_uses_global_object: The constructor of global object "EnableUpdateFormForNonConstInc" itself makes use of global object "llvm::cl::TopLevelSubCommand" defined in another compilation unit. The order of construction is unspecified, so "EnableUpdateFormForNonConstInc" might be created before "llvm::cl::TopLevelSubCommand" is available. +# 126| cl::desc("prefer update form when ds form is also a update form")); +# 127| +# 128|-> static cl::opt EnableUpdateFormForNonConstInc( +# 129| "ppc-formprep-update-nonconst-inc", cl::init(false), cl::Hidden, +# 130| cl::desc("prepare update form when the load/store increment is a loop " + +Error: GLOBAL_INIT_ORDER (CWE-908): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:133: error[too-many]: 3010 occurrences of constructor_uses_global_object exceeded the specified limit 1024 +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:133: note: 1986 occurrences of constructor_uses_global_object were discarded because of this + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:865: var_decl: Declaring variable "Buckets". +llvm-17.0.6.src/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp:893: uninit_use: Using uninitialized value "Buckets". Field "Buckets.InlineElts" is uninitialized. +# 891| addOneCandidate(&J, LSCEV, Buckets, isValidDiff, MaxCandidateNum); +# 892| } +# 893|-> return Buckets; +# 894| } +# 895| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:161: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:164: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-17.0.6.src/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:165: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 163| +# 164| if (Kind < FirstTargetFixupKind) +# 165|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 166| +# 167| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:161: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:164: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp:169: illegal_address: "llvm::SystemZ::MCFixupKindInfos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 432 bytes. +# 167| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && +# 168| "Invalid kind!"); +# 169|-> return SystemZ::MCFixupKindInfos[Kind - FirstTargetFixupKind]; +# 170| } +# 171| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/SystemZ/SystemZElimCompare.cpp:650: return_constant: Function call "MBBI->findRegisterUseOperandIdx(llvm::Register(CC), false, this->TRI)" may return -1. +llvm-17.0.6.src/lib/Target/SystemZ/SystemZElimCompare.cpp:650: assignment: Assigning: "CCUse" = "MBBI->findRegisterUseOperandIdx(llvm::Register(CC), false, this->TRI)". The value of "CCUse" is now -1. +llvm-17.0.6.src/lib/Target/SystemZ/SystemZElimCompare.cpp:652: overrun-buffer-arg: Calling "removeOperand" with "Branch->Operands" and "CCUse" is suspicious because of the very large index, 4294967295. The index may be due to a negative parameter being interpreted as unsigned. +# 650| int CCUse = MBBI->findRegisterUseOperandIdx(SystemZ::CC, false, TRI); +# 651| assert(CCUse >= 0 && "BRC/BCR must use CC"); +# 652|-> Branch->removeOperand(CCUse); +# 653| // Remove regmask (sibcall). +# 654| if (Type == SystemZII::CompareAndSibcall) + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp:79: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-17.0.6.src/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp:80: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 78| +# 79| if (Kind < FirstTargetFixupKind) +# 80|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 81| +# 82| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp:311: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, Op->getSFPImm(), false))". +llvm-17.0.6.src/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp:311: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 309| O << Op.getImm(); +# 310| } else if (Op.isSFPImm()) { +# 311|-> O << ::toString(APFloat(APFloat::IEEEsingle(), APInt(32, Op.getSFPImm()))); +# 312| } else if (Op.isDFPImm()) { +# 313| O << ::toString(APFloat(APFloat::IEEEdouble(), APInt(64, Op.getDFPImm()))); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp:313: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, Op->getDFPImm(), false))". +llvm-17.0.6.src/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp:313: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 311| O << ::toString(APFloat(APFloat::IEEEsingle(), APInt(32, Op.getSFPImm()))); +# 312| } else if (Op.isDFPImm()) { +# 313|-> O << ::toString(APFloat(APFloat::IEEEdouble(), APInt(64, Op.getDFPImm()))); +# 314| } else { +# 315| assert(Op.isExpr() && "unknown operand kind in printOperand"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp:126: var_decl: Declaring variable "SinkableDbgValues". +llvm-17.0.6.src/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp:211: uninit_use: Using uninitialized value "SinkableDbgValues". Field "SinkableDbgValues.InlineElts" is uninitialized. +# 209| SinkableDbgValues.push_back(DV); +# 210| } +# 211|-> return SinkableDbgValues; +# 212| } +# 213| +llvm-17.0.6.src/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp:211: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp:1919: var_decl: Declaring variable "Ext" without initializer. +llvm-17.0.6.src/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp:1931: uninit_use_in_call: Using uninitialized value "Ext" when calling "getNode". +# 1929| SDValue Ret = Src; +# 1930| while (Scale != 1) { +# 1931|-> Ret = DAG.getNode(Ext, DL, +# 1932| Ret.getValueType() +# 1933| .widenIntegerVectorElementType(*DAG.getContext()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/AsmParser/X86AsmParser.cpp:2111: var_decl: Declaring variable "Info". +llvm-17.0.6.src/lib/Target/X86/AsmParser/X86AsmParser.cpp:2113: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "onIdentifierExpr". +# 2111| InlineAsmIdentifierInfo Info; +# 2112| AsmTypeInfo Type; +# 2113|-> if (SM.onIdentifierExpr(Val, Identifier, Info, Type, +# 2114| isParsingMSInlineAsm(), ErrMsg)) +# 2115| return Error(Loc, ErrMsg); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Target/X86/ImmutableGraph.h:375: address_of: Taking address with "*__begin0" yields a singleton pointer. +llvm-17.0.6.src/lib/Target/X86/ImmutableGraph.h:375: assign: Assigning: "N" = "*__begin0". +llvm-17.0.6.src/lib/Target/X86/ImmutableGraph.h:380: callee_ptr_arith: Passing "N" to function "edges" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 378| NewVertexArray[VertexI].Value = N.getValue(); +# 379| NewVertexArray[VertexI].Edges = &NewEdgeArray[EdgeI]; +# 380|-> for (const Edge &E : N.edges()) { +# 381| if (TrimEdges.contains(E)) +# 382| continue; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:307: overflow: The expression "MemoryOperand + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:307: overflow_sink: "MemoryOperand + AddrSegmentReg", which might have overflowed, is passed to "Inst->getOperand(MemoryOperand + AddrSegmentReg)". +# 305| if (MemoryOperand >= 0) { +# 306| // Check for explicit segment override on memory operand. +# 307|-> SegmentReg = Inst.getOperand(MemoryOperand + X86::AddrSegmentReg).getReg(); +# 308| } +# 309| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:300: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:302: overflow: The expression "MemoryOperand" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:339: overflow: The expression "MemoryOperand + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:339: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:340: overflow_sink: "BaseRegNum", which might have underflowed, is passed to "Inst->getOperand(BaseRegNum)". +# 338| if (MemoryOperand >= 0) { +# 339| unsigned BaseRegNum = MemoryOperand + X86::AddrBaseReg; +# 340|-> unsigned BaseReg = Inst.getOperand(BaseRegNum).getReg(); +# 341| if (BaseReg == X86::ESP || BaseReg == X86::EBP) +# 342| return X86::SS_Encoding; + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:635: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:638: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 0 and 127 (inclusive) on the true branch. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:639: overrun-call: Overrunning callee's array of size 22 by passing argument "Kind" (which evaluates to 127) in call to "getFixupKindInfo". +# 637| +# 638| if (Kind < FirstTargetFixupKind) +# 639|-> return MCAsmBackend::getFixupKindInfo(Kind); +# 640| +# 641| assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:635: cond_between: Checking "Kind >= FirstLiteralRelocationKind" implies that "Kind" is between 0 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:638: cond_between: Checking "Kind < FirstTargetFixupKind" implies that "Kind" is between 128 and 255 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:644: illegal_address: "Infos[Kind - FirstTargetFixupKind]" evaluates to an address that is at byte offset 3048 of an array of 216 bytes. +# 642| "Invalid kind!"); +# 643| assert(Infos[Kind - FirstTargetFixupKind].Name && "Empty fixup name!"); +# 644|-> return Infos[Kind - FirstTargetFixupKind]; +# 645| } +# 646| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1031: alias: Assigning: "Nops" = "Nops16Bit". "Nops" now points to element 0 of "Nops16Bit" (which consists of 4 11-byte elements). +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1040: cond_at_most: Checking "ThisNopLength <= 10" implies that "ThisNopLength" may be up to 10 on the true branch. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1040: assignment: Assigning: "Prefixes" = "(ThisNopLength <= 10) ? 0 : (ThisNopLength - 10)". The value of "Prefixes" is now 0. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1043: assignment: Assigning: "Rest" = "ThisNopLength - Prefixes". The value of "Rest" may now be up to 10. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1044: cond_between: Checking "Rest != 0" implies that "Rest" is between 1 and 10 (inclusive) on the true branch. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:1045: illegal_address: "Nops + (Rest - 1)" evaluates to an address that is at byte offset 99 of an array of 44 bytes. +# 1043| const uint8_t Rest = ThisNopLength - Prefixes; +# 1044| if (Rest != 0) +# 1045|-> OS.write(Nops[Rest - 1], Rest); +# 1046| Count -= ThisNopLength; +# 1047| } while (Count != 0); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp:390: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp:390: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp:395: overflow_sink: "MemoryOperand", which might be negative, is passed to "llvm::X86_MC::needsAddressSizeOverride(MI, STI, MemoryOperand, TSFlags)". +# 393| +# 394| // Address-Size override prefix +# 395|-> if (Flags & X86::IP_HAS_AD_SIZE && +# 396| !X86_MC::needsAddressSizeOverride(*MI, STI, MemoryOperand, TSFlags)) { +# 397| if (STI.hasFeature(X86::Is16Bit) || STI.hasFeature(X86::Is64Bit)) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:796: overflow: The expression "MemoryOperand" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:797: overflow: The expression "MemoryOperand + AddrSegmentReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:797: overflow_sink: "MemoryOperand + AddrSegmentReg", which might have underflowed, is passed to "this->emitSegmentOverridePrefix(MemoryOperand + AddrSegmentReg, MI, CB)". +# 795| if (MemoryOperand != -1) { +# 796| MemoryOperand += CurOp; +# 797|-> emitSegmentOverridePrefix(MemoryOperand + X86::AddrSegmentReg, MI, CB); +# 798| } +# 799| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:793: assign: Assigning: "MemoryOperand" = "llvm::X86II::getMemoryOperandNo(TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:796: overflow: The expression "MemoryOperand" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:808: overflow_sink: "MemoryOperand", which might be negative, is passed to "llvm::X86_MC::needsAddressSizeOverride(MI, STI, MemoryOperand, TSFlags)". +# 806| +# 807| // Emit the address size opcode prefix as needed. +# 808|-> if (X86_MC::needsAddressSizeOverride(MI, STI, MemoryOperand, TSFlags) || +# 809| Flags & X86::IP_HAS_AD_SIZE) +# 810| emitByte(0x67, CB); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:652: overflow: The expression "MemOpStart + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:652: overflow_sink: "MemOpStart + AddrSegmentReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrSegmentReg)". +# 650| MemOpStart += X86II::getOperandBias(MCID); +# 651| +# 652|-> const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 653| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:650: overflow: The expression "MemOpStart" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:653: overflow: The expression "MemOpStart + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:653: overflow_sink: "MemOpStart + AddrBaseReg", which might have underflowed, is passed to "Inst->getOperand(MemOpStart + AddrBaseReg)". +# 651| +# 652| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 653|-> const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:654: overflow: The expression "MemOpStart + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:654: overflow_sink: "MemOpStart + AddrIndexReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrIndexReg)". +# 652| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 653| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654|-> const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 656| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:655: overflow: The expression "MemOpStart + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:655: overflow_sink: "MemOpStart + AddrScaleAmt", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrScaleAmt)". +# 653| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655|-> const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 656| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 657| if (SegReg.getReg() != 0 || IndexReg.getReg() != 0 || ScaleAmt.getImm() != 1 || + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:647: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:656: overflow: The expression "MemOpStart + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:656: overflow_sink: "MemOpStart + AddrDisp", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrDisp)". +# 654| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 655| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 656|-> const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 657| if (SegReg.getReg() != 0 || IndexReg.getReg() != 0 || ScaleAmt.getImm() != 1 || +# 658| !Disp.isImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:678: overflow: The expression "MemOpStart + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:678: overflow_sink: "MemOpStart + AddrSegmentReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrSegmentReg)". +# 676| return std::nullopt; +# 677| MemOpStart += X86II::getOperandBias(MCID); +# 678|-> const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 679| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:677: overflow: The expression "MemOpStart" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:679: overflow: The expression "MemOpStart + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:679: overflow_sink: "MemOpStart + AddrBaseReg", which might have underflowed, is passed to "Inst->getOperand(MemOpStart + AddrBaseReg)". +# 677| MemOpStart += X86II::getOperandBias(MCID); +# 678| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 679|-> const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:680: overflow: The expression "MemOpStart + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:680: overflow_sink: "MemOpStart + AddrIndexReg", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrIndexReg)". +# 678| const MCOperand &SegReg = Inst.getOperand(MemOpStart + X86::AddrSegmentReg); +# 679| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680|-> const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 682| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:681: overflow: The expression "MemOpStart + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:681: overflow_sink: "MemOpStart + AddrScaleAmt", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrScaleAmt)". +# 679| const MCOperand &BaseReg = Inst.getOperand(MemOpStart + X86::AddrBaseReg); +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681|-> const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 682| const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 683| // Must be a simple rip-relative address. + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:674: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(MCID.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:682: overflow: The expression "MemOpStart + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:682: overflow_sink: "MemOpStart + AddrDisp", which might be negative, is passed to "Inst->getOperand(MemOpStart + AddrDisp)". +# 680| const MCOperand &IndexReg = Inst.getOperand(MemOpStart + X86::AddrIndexReg); +# 681| const MCOperand &ScaleAmt = Inst.getOperand(MemOpStart + X86::AddrScaleAmt); +# 682|-> const MCOperand &Disp = Inst.getOperand(MemOpStart + X86::AddrDisp); +# 683| // Must be a simple rip-relative address. +# 684| if (BaseReg.getReg() != X86::RIP || SegReg.getReg() != 0 || + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:340: var_decl: Declaring variable "PotentialBlockers". +llvm-17.0.6.src/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:353: uninit_use: Using uninitialized value "PotentialBlockers". Field "PotentialBlockers.InlineElts" is uninitialized. +# 351| MachineInstr &MI = *PBInst; +# 352| if (MI.getDesc().isCall()) +# 353|-> return PotentialBlockers; +# 354| PotentialBlockers.push_back(&MI); +# 355| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:340: var_decl: Declaring variable "PotentialBlockers". +llvm-17.0.6.src/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:377: uninit_use: Using uninitialized value "PotentialBlockers". Field "PotentialBlockers.InlineElts" is uninitialized. +# 375| } +# 376| } +# 377|-> return PotentialBlockers; +# 378| } +# 379| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:529: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:529: assign: Assigning: "MemOpStart" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:534: cast_underflow: An assign of a possibly negative number to an unsigned type, which might trigger an underflow. +llvm-17.0.6.src/lib/Target/X86/X86DomainReassignment.cpp:537: overflow_sink: "MemOpIdx", which might be negative, is passed to "MI->getOperand(MemOpIdx)". +# 535| MemOpEnd = MemOpStart + X86::AddrNumOperands; +# 536| MemOpIdx < MemOpEnd; ++MemOpIdx) { +# 537|-> const MachineOperand &Op = MI.getOperand(MemOpIdx); +# 538| if (Op.isReg() && Op.getReg() == Reg) +# 539| return true; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: assign: Assigning: "AddrOffset" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:655: overflow: The expression "AddrOffset" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:656: overflow: The expression "AddrOffset + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:656: overflow_sink: "AddrOffset + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(AddrOffset + AddrBaseReg)". +# 654| if (AddrOffset >= 0) { +# 655| AddrOffset += X86II::getOperandBias(Desc); +# 656|-> MachineOperand &p = MI.getOperand(AddrOffset + X86::AddrBaseReg); +# 657| if (p.isReg() && p.getReg() != X86::ESP) { +# 658| seekLEAFixup(p, I, MBB); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:653: assign: Assigning: "AddrOffset" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:660: overflow: The expression "AddrOffset + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86FixupLEAs.cpp:660: overflow_sink: "AddrOffset + AddrIndexReg", which might have overflowed, is passed to "MI->getOperand(AddrOffset + AddrIndexReg)". +# 658| seekLEAFixup(p, I, MBB); +# 659| } +# 660|-> MachineOperand &q = MI.getOperand(AddrOffset + X86::AddrIndexReg); +# 661| if (q.isReg() && q.getReg() != X86::ESP) { +# 662| seekLEAFixup(q, I, MBB); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:9274: var_decl: Declaring variable "FirstNonZeroIdx" without initializer. +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:9330: uninit_use: Using uninitialized value "FirstNonZeroIdx". +# 9328| +# 9329| SDValue V2 = Elt.getOperand(0); +# 9330|-> if (Elt == FirstNonZero && EltIdx == FirstNonZeroIdx) +# 9331| V1 = SDValue(); +# 9332| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:9806: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEhalf(), Val)". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:9806: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 9804| if (VT.isFloatingPoint()) { +# 9805| if (ScalarSize == 16) +# 9806|-> return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 9807| if (ScalarSize == 32) +# 9808| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:9808: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), Val)". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:9808: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 9806| return ConstantFP::get(C, APFloat(APFloat::IEEEhalf(), Val)); +# 9807| if (ScalarSize == 32) +# 9808|-> return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 9809| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 9810| return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:9810: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), Val)". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:9810: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 9808| return ConstantFP::get(C, APFloat(APFloat::IEEEsingle(), Val)); +# 9809| assert(ScalarSize == 64 && "Unsupported floating point scalar size"); +# 9810|-> return ConstantFP::get(C, APFloat(APFloat::IEEEdouble(), Val)); +# 9811| } +# 9812| return Constant::getIntegerValue(Type::getIntNTy(C, ScalarSize), Val); + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:18398: address_of: Taking address with "&Perm2" yields a singleton pointer. +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:18398: callee_ptr_arith: Passing "&Perm2" to function "ReplaceAllUsesWith" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +#18396| DAG.getTargetConstant(0x31, DL, MVT::i8)); +#18397| if (IsFirstHalf) { +#18398|-> DAG.ReplaceAllUsesWith(SecondHalf, &Perm2); +#18399| return Perm1; +#18400| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:18401: address_of: Taking address with "&Perm1" yields a singleton pointer. +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:18401: callee_ptr_arith: Passing "&Perm1" to function "ReplaceAllUsesWith" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +#18399| return Perm1; +#18400| } +#18401|-> DAG.ReplaceAllUsesWith(FirstHalf, &Perm1); +#18402| return Perm2; +#18403| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22022: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, 4841369599423283200UL, false))". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22022: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#22020| +#22021| SmallVector CV1; +#22022|-> CV1.push_back( +#22023| ConstantFP::get(*Context, APFloat(APFloat::IEEEdouble(), +#22024| APInt(64, 0x4330000000000000ULL)))); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22025: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, 4985484787499139072UL, false))". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22025: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#22023| ConstantFP::get(*Context, APFloat(APFloat::IEEEdouble(), +#22024| APInt(64, 0x4330000000000000ULL)))); +#22025|-> CV1.push_back( +#22026| ConstantFP::get(*Context, APFloat(APFloat::IEEEdouble(), +#22027| APInt(64, 0x4530000000000000ULL)))); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22212: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), llvm::APInt(64U, 4841369599423283200UL, false))". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22212: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#22210| Op->getSimpleValueType(0) == MVT::v4f64) { +#22211| SDValue ZExtIn = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::v4i64, V); +#22212|-> Constant *Bias = ConstantFP::get( +#22213| *DAG.getContext(), +#22214| APFloat(APFloat::IEEEdouble(), APInt(64, 0x4330000000000000ULL))); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22298: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), llvm::APInt(32U, 1392509056UL, false))". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22298: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#22296| +#22297| // Create the vector constant for (0x1.0p39f + 0x1.0p23f). +#22298|-> SDValue VecCstFSub = DAG.getConstantFP( +#22299| APFloat(APFloat::IEEEsingle(), APInt(32, 0x53000080)), DL, VecFloatVT); +#22300| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22568: var_decl: Declaring variable "Thresh". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:22582: uninit_use_in_call: Using uninitialized value "Thresh.U" when calling "getConstantFP". +#22580| "FP conversion should have been exact"); +#22581| +#22582|-> SDValue ThreshVal = DAG.getConstantFP(Thresh, DL, TheVT); +#22583| +#22584| EVT ResVT = getSetCCResultType(DAG.getDataLayout(), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:24318: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, MaskElt)". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:24318: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#24316| APInt::getSignMask(EltBits); +#24317| const fltSemantics &Sem = SelectionDAG::EVTToAPFloatSemantics(VT); +#24318|-> SDValue Mask = DAG.getConstantFP(APFloat(Sem, MaskElt), dl, LogicVT); +#24319| +#24320| SDValue Op0 = Op.getOperand(0); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:24376: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, llvm::APInt(llvm::APInt::getSignMask(EltSizeInBits)))". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:24376: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#24374| // The mask constants are automatically splatted for vector types. +#24375| unsigned EltSizeInBits = VT.getScalarSizeInBits(); +#24376|-> SDValue SignMask = DAG.getConstantFP( +#24377| APFloat(Sem, APInt::getSignMask(EltSizeInBits)), dl, LogicVT); +#24378| SDValue MagMask = DAG.getConstantFP( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:24378: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Sem, llvm::APInt(llvm::APInt::getSignedMaxValue(EltSizeInBits)))". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:24378: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#24376| SDValue SignMask = DAG.getConstantFP( +#24377| APFloat(Sem, APInt::getSignMask(EltSizeInBits)), dl, LogicVT); +#24378|-> SDValue MagMask = DAG.getConstantFP( +#24379| APFloat(Sem, APInt::getSignedMaxValue(EltSizeInBits)), dl, LogicVT); +#24380| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:42013: var_decl: Declaring variable "Mask". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:42035: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +#42033| switch (N.getOpcode()) { +#42034| case X86ISD::PSHUFD: +#42035|-> return Mask; +#42036| case X86ISD::PSHUFLW: +#42037| Mask.resize(4); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:42013: var_decl: Declaring variable "Mask". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:42038: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +#42036| case X86ISD::PSHUFLW: +#42037| Mask.resize(4); +#42038|-> return Mask; +#42039| case X86ISD::PSHUFHW: +#42040| Mask.erase(Mask.begin(), Mask.begin() + 4); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:42013: var_decl: Declaring variable "Mask". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:42043: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +#42041| for (int &M : Mask) +#42042| M -= 4; +#42043|-> return Mask; +#42044| default: +#42045| llvm_unreachable("No valid shuffle instruction found!"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:45507: var_decl: Declaring variable "F64". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:45508: uninit_use_in_call: Using uninitialized value "F64.U" when calling "getConstantFP". +#45506| // TODO - investigate supporting sext 32-bit immediates on x86_64. +#45507| APFloat F64(APFloat::IEEEdouble(), EltBits[0]); +#45508|-> return DAG.getBitcast(VT, DAG.getConstantFP(F64, DL, MVT::f64)); +#45509| } +#45510| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:53485: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), AI)". +llvm-17.0.6.src/lib/Target/X86/X86ISelLowering.cpp:53485: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +#53483| return CI->getValue() == AI; +#53484| if (const auto *CF = dyn_cast(CP->getConstVal())) +#53485|-> return CF->getValue() == APFloat(APFloat::IEEEsingle(), AI); +#53486| } +#53487| return false; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: overflow: The expression "Offset + Bias" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:205: overflow_sink: "MemOpOffset", which might have overflowed, is passed to "::IsMemOpCompatibleWithPrefetch(*Current, MemOpOffset)". +# 203| int MemOpOffset = Offset + Bias; +# 204| // FIXME(mtrofin): ORE message when the recommendation cannot be taken. +# 205|-> if (!IsMemOpCompatibleWithPrefetch(*Current, MemOpOffset)) +# 206| continue; +# 207| Prefetches.clear(); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: overflow: The expression "Offset + Bias" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrBaseReg", which might have underflowed, is passed to "Current->getOperand(MemOpOffset + AddrBaseReg)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrDisp", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrDisp)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrIndexReg", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrIndexReg)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrScaleAmt", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrScaleAmt)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:199: assign: Assigning: "Offset" = "llvm::X86II::getMemoryOperandNo(Current->getDesc().TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:203: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow: The expression "MemOpOffset + AddrSegmentReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InsertPrefetch.cpp:229: overflow_sink: "MemOpOffset + AddrSegmentReg", which might have overflowed, is passed to "Current->getOperand(MemOpOffset + AddrSegmentReg)". +# 227| // FIXME(mtrofin): consider adding a: +# 228| // MachineInstrBuilder::set(unsigned offset, op). +# 229|-> MIB.addReg(Current->getOperand(MemOpOffset + X86::AddrBaseReg).getReg()) +# 230| .addImm( +# 231| Current->getOperand(MemOpOffset + X86::AddrScaleAmt).getImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3220: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3220: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3224: overflow: The expression "MemRefBegin + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3224: overflow_sink: "MemRefBegin + AddrDisp", which might be negative, is passed to "MI->getOperand(MemRefBegin + AddrDisp)". +# 3222| MemRefBegin += X86II::getOperandBias(Desc); +# 3223| +# 3224|-> const MachineOperand &MO = MI.getOperand(MemRefBegin + X86::AddrDisp); +# 3225| if (!MO.isJTI()) +# 3226| return -1; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3813: overflow: The expression "MemRefBegin" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3815: overflow: The expression "MemRefBegin + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3815: overflow_sink: "MemRefBegin + AddrBaseReg", which might have underflowed, is passed to "MemI->getOperand(MemRefBegin + AddrBaseReg)". +# 3813| MemRefBegin += X86II::getOperandBias(Desc); +# 3814| +# 3815|-> auto &BaseOp = MemI.getOperand(MemRefBegin + X86::AddrBaseReg); +# 3816| if (!BaseOp.isReg()) // Can be an MO_FrameIndex +# 3817| return std::nullopt; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3819: overflow: The expression "MemRefBegin + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3819: overflow_sink: "MemRefBegin + AddrDisp", which might have overflowed, is passed to "MemI->getOperand(MemRefBegin + AddrDisp)". +# 3817| return std::nullopt; +# 3818| +# 3819|-> const MachineOperand &DispMO = MemI.getOperand(MemRefBegin + X86::AddrDisp); +# 3820| // Displacement can be symbolic +# 3821| if (!DispMO.isImm()) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3826: overflow: The expression "MemRefBegin + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3826: overflow_sink: "MemRefBegin + AddrIndexReg", which might have overflowed, is passed to "MemI->getOperand(MemRefBegin + AddrIndexReg)". +# 3824| ExtAddrMode AM; +# 3825| AM.BaseReg = BaseOp.getReg(); +# 3826|-> AM.ScaledReg = MemI.getOperand(MemRefBegin + X86::AddrIndexReg).getReg(); +# 3827| AM.Scale = MemI.getOperand(MemRefBegin + X86::AddrScaleAmt).getImm(); +# 3828| AM.Displacement = DispMO.getImm(); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3809: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3827: overflow: The expression "MemRefBegin + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3827: overflow_sink: "MemRefBegin + AddrScaleAmt", which might have overflowed, is passed to "MemI->getOperand(MemRefBegin + AddrScaleAmt)". +# 3825| AM.BaseReg = BaseOp.getReg(); +# 3826| AM.ScaledReg = MemI.getOperand(MemRefBegin + X86::AddrIndexReg).getReg(); +# 3827|-> AM.Scale = MemI.getOperand(MemRefBegin + X86::AddrScaleAmt).getImm(); +# 3828| AM.Displacement = DispMO.getImm(); +# 3829| return AM; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3910: overflow: The expression "MemRefBegin" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3912: overflow: The expression "MemRefBegin + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3912: overflow_sink: "MemRefBegin + AddrBaseReg", which might have underflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrBaseReg)". +# 3910| MemRefBegin += X86II::getOperandBias(Desc); +# 3911| +# 3912|-> const MachineOperand *BaseOp = +# 3913| &MemOp.getOperand(MemRefBegin + X86::AddrBaseReg); +# 3914| if (!BaseOp->isReg()) // Can be an MO_FrameIndex + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3917: overflow: The expression "MemRefBegin + AddrScaleAmt" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3917: overflow_sink: "MemRefBegin + AddrScaleAmt", which might have overflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrScaleAmt)". +# 3915| return false; +# 3916| +# 3917|-> if (MemOp.getOperand(MemRefBegin + X86::AddrScaleAmt).getImm() != 1) +# 3918| return false; +# 3919| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3920: overflow: The expression "MemRefBegin + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3920: overflow_sink: "MemRefBegin + AddrIndexReg", which might have overflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrIndexReg)". +# 3918| return false; +# 3919| +# 3920|-> if (MemOp.getOperand(MemRefBegin + X86::AddrIndexReg).getReg() != +# 3921| X86::NoRegister) +# 3922| return false; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3906: assign: Assigning: "MemRefBegin" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3924: overflow: The expression "MemRefBegin + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:3924: overflow_sink: "MemRefBegin + AddrDisp", which might have overflowed, is passed to "MemOp->getOperand(MemRefBegin + AddrDisp)". +# 3922| return false; +# 3923| +# 3924|-> const MachineOperand &DispMO = MemOp.getOperand(MemRefBegin + X86::AddrDisp); +# 3925| +# 3926| // Displacement can be symbolic + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:6895: var_decl: Declaring variable "LoadMMOs". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:6911: uninit_use: Using uninitialized value "LoadMMOs". Field "LoadMMOs.InlineElts" is uninitialized. +# 6909| } +# 6910| +# 6911|-> return LoadMMOs; +# 6912| } +# 6913| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:6916: var_decl: Declaring variable "StoreMMOs". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:6932: uninit_use: Using uninitialized value "StoreMMOs". Field "StoreMMOs.InlineElts" is uninitialized. +# 6930| } +# 6931| +# 6932|-> return StoreMMOs; +# 6933| } +# 6934| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:8442: var_decl: Declaring variable "Nop". +llvm-17.0.6.src/lib/Target/X86/X86InstrInfo.cpp:8444: uninit_use: Using uninitialized value "Nop". Field "Nop.Operands.InlineElts" is uninitialized. +# 8442| MCInst Nop; +# 8443| Nop.setOpcode(X86::NOOP); +# 8444|-> return Nop; +# 8445| } +# 8446| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:562: address_of: Taking address with "*__begin1" yields a singleton pointer. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:562: assign: Assigning: "RootN" = "*__begin1". +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:563: callee_ptr_arith: Passing "RootN" to function "edges" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 561| NodeSet ReachableNodes{G}; +# 562| for (const Node &RootN : G.nodes()) { +# 563|-> if (llvm::none_of(RootN.edges(), MachineGadgetGraph::isGadgetEdge)) +# 564| continue; // skip this node if it isn't a gadget source +# 565| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:688: address_of: Taking address with "*__begin1" yields a singleton pointer. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:688: assign: Assigning: "N" = "*__begin1". +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:689: callee_ptr_arith: Passing "N" to function "edges" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 687| // than the gadget sink, or an (a)-type cut otherwise. +# 688| for (const Node &N : Graph->nodes()) { +# 689|-> for (const Edge &E : N.edges()) { +# 690| if (!MachineGadgetGraph::isGadgetEdge(E)) +# 691| continue; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:728: address_of: Taking address with "*__begin1" yields a singleton pointer. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:728: assign: Assigning: "N" = "*__begin1". +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:729: callee_ptr_arith: Passing "N" to function "edges" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 727| int FencesInserted = 0; +# 728| for (const Node &N : G.nodes()) { +# 729|-> for (const Edge &E : N.edges()) { +# 730| if (CutEdges.contains(E)) { +# 731| MachineInstr *MI = N.getValue(), *Prev; + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:776: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:776: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:783: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:785: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:785: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 783| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 784| +# 785|-> const MachineOperand &BaseMO = +# 786| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 787| const MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:776: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:776: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:787: overflow: The expression "MemRefBeginIdx + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp:787: overflow_sink: "MemRefBeginIdx + AddrIndexReg", which might have overflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrIndexReg)". +# 785| const MachineOperand &BaseMO = +# 786| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 787|-> const MachineOperand &IndexMO = +# 788| MI.getOperand(MemRefBeginIdx + X86::AddrIndexReg); +# 789| return (BaseMO.isReg() && BaseMO.getReg() != X86::NoRegister && + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: assign: Assigning: "MemOpNo" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:454: overflow: The expression "MemOpNo" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:458: overflow: The expression "MemOpNo + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:458: overflow_sink: "MemOpNo + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemOpNo + AddrBaseReg)". +# 456| // If the address base of the use instruction is not the LEA def register - +# 457| // the LEA is not replaceable. +# 458|-> if (!isIdenticalOp(MI.getOperand(MemOpNo + X86::AddrBaseReg), MO)) +# 459| return false; +# 460| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:447: assign: Assigning: "MemOpNo" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:469: overflow: The expression "MemOpNo + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:469: overflow_sink: "MemOpNo + AddrDisp", which might have overflowed, is passed to "MI->getOperand(MemOpNo + AddrDisp)". +# 467| +# 468| // Check that the new address displacement will fit 4 bytes. +# 469|-> if (MI.getOperand(MemOpNo + X86::AddrDisp).isImm() && +# 470| !isInt<32>(MI.getOperand(MemOpNo + X86::AddrDisp).getImm() + +# 471| AddrDispShift)) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:511: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:511: assign: Assigning: "MemOpNo" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:517: overflow: The expression "MemOpNo" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:520: overflow_sink: "MemOpNo", which might have overflowed, is passed to "getMemOpKey(MI, MemOpNo)". +# 518| +# 519| // Do not call chooseBestLEA if there was no matching LEA +# 520|-> auto Insns = LEAs.find(getMemOpKey(MI, MemOpNo)); +# 521| if (Insns == LEAs.end()) +# 522| continue; +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:520: note: trimmed 1 message(s) with length over 512 + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:672: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:672: cast_overflow: An assign that casts to a different type, which might trigger an overflow. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:680: overflow: The expression "MemOpNo + AddrDisp" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86OptimizeLEAs.cpp:680: overflow_sink: "MemOpNo + AddrDisp", which might have overflowed, is passed to "MI->getOperand(MemOpNo + AddrDisp)". +# 678| +# 679| // Update address disp. +# 680|-> MachineOperand &Op = MI.getOperand(MemOpNo + X86::AddrDisp); +# 681| if (Op.isImm()) +# 682| Op.setImm(Op.getImm() + AddrDispShift); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86RegisterBankInfo.cpp:309: var_decl: Declaring variable "AltMappings". +llvm-17.0.6.src/lib/Target/X86/X86RegisterBankInfo.cpp:311: uninit_use: Using uninitialized value "AltMappings". Field "AltMappings.InlineElts" is uninitialized. +# 309| InstructionMappings AltMappings; +# 310| AltMappings.push_back(&Mapping); +# 311|-> return AltMappings; +# 312| } +# 313| default: + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:601: var_decl: Declaring variable "Infos". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:681: uninit_use: Using uninitialized value "Infos". Field "Infos.InlineElts" is uninitialized. +# 679| } +# 680| +# 681|-> return Infos; +# 682| } +# 683| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1052: var_decl: Declaring variable "CMovs". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1056: uninit_use: Using uninitialized value "CMovs". Field "CMovs.InlineElts" is uninitialized. +# 1054| // If we didn't find any indirect branches with targets, nothing to do here. +# 1055| if (IndirectTargetMBBs.empty()) +# 1056|-> return CMovs; +# 1057| +# 1058| // We found indirect branches and targets that need to be instrumented to + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1052: var_decl: Declaring variable "CMovs". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1200: uninit_use: Using uninitialized value "CMovs". Field "CMovs.InlineElts" is uninitialized. +# 1198| +# 1199| // Return all the newly inserted cmov instructions of the predicate state. +# 1200|-> return CMovs; +# 1201| } +# 1202| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1326: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1326: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1334: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1336: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1336: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 1334| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 1335| +# 1336|-> MachineOperand &BaseMO = +# 1337| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1338| MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1326: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1326: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1338: overflow: The expression "MemRefBeginIdx + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1338: overflow_sink: "MemRefBeginIdx + AddrIndexReg", which might have overflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrIndexReg)". +# 1336| MachineOperand &BaseMO = +# 1337| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1338|-> MachineOperand &IndexMO = +# 1339| MI.getOperand(MemRefBeginIdx + X86::AddrIndexReg); +# 1340| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1408: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1410: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1410: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "MI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 1408| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 1409| +# 1410|-> MachineOperand &BaseMO = +# 1411| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1412| MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1405: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1412: overflow: The expression "MemRefBeginIdx + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1412: overflow_sink: "MemRefBeginIdx + AddrIndexReg", which might be negative, is passed to "MI->getOperand(MemRefBeginIdx + AddrIndexReg)". +# 1410| MachineOperand &BaseMO = +# 1411| MI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1412|-> MachineOperand &IndexMO = +# 1413| MI.getOperand(MemRefBeginIdx + X86::AddrIndexReg); +# 1414| hardenLoadAddr(MI, BaseMO, IndexMO, AddrRegToHardenedReg); + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1807: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1807: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1810: overflow: The expression "MemRefBeginIdx" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1812: overflow: The expression "MemRefBeginIdx + AddrBaseReg" is deemed overflowed because at least one of its arguments has overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1812: overflow_sink: "MemRefBeginIdx + AddrBaseReg", which might have underflowed, is passed to "UseMI->getOperand(MemRefBeginIdx + AddrBaseReg)". +# 1810| MemRefBeginIdx += X86II::getOperandBias(Desc); +# 1811| +# 1812|-> MachineOperand &BaseMO = +# 1813| UseMI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1814| MachineOperand &IndexMO = + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1807: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1807: assign: Assigning: "MemRefBeginIdx" = "llvm::X86II::getMemoryOperandNo(Desc.TSFlags)". +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1814: overflow: The expression "MemRefBeginIdx + AddrIndexReg" is considered to have possibly overflowed. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1814: overflow_sink: "MemRefBeginIdx + AddrIndexReg", which might be negative, is passed to "UseMI->getOperand(MemRefBeginIdx + AddrIndexReg)". +# 1812| MachineOperand &BaseMO = +# 1813| UseMI.getOperand(MemRefBeginIdx + X86::AddrBaseReg); +# 1814|-> MachineOperand &IndexMO = +# 1815| UseMI.getOperand(MemRefBeginIdx + X86::AddrIndexReg); +# 1816| if ((BaseMO.isReg() && BaseMO.getReg() == DefReg) || + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1873: return_constant: Function call "llvm::Log2_32(RegBytes)" may return 4294967295. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1873: assignment: Assigning: "RegIdx" = "llvm::Log2_32(RegBytes)". The value of "RegIdx" is now 4294967295. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1886: overrun-local: Overrunning array "NOREXRegClasses" of 4 8-byte elements at element index 4294967295 (byte offset 34359738367) using index "RegIdx" (which evaluates to 4294967295). +# 1884| &X86::GR8_NOREXRegClass, &X86::GR16_NOREXRegClass, +# 1885| &X86::GR32_NOREXRegClass, &X86::GR64_NOREXRegClass}; +# 1886|-> if (RC == NOREXRegClasses[RegIdx]) +# 1887| return false; +# 1888| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1873: return_constant: Function call "llvm::Log2_32(RegBytes)" may return 4294967295. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1873: assignment: Assigning: "RegIdx" = "llvm::Log2_32(RegBytes)". The value of "RegIdx" is now 4294967295. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1892: overrun-local: Overrunning array "GPRRegClasses" of 4 8-byte elements at element index 4294967295 (byte offset 34359738367) using index "RegIdx" (which evaluates to 4294967295). +# 1890| &X86::GR8RegClass, &X86::GR16RegClass, &X86::GR32RegClass, +# 1891| &X86::GR64RegClass}; +# 1892|-> return RC->hasSuperClassEq(GPRRegClasses[RegIdx]); +# 1893| } +# 1894| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1924: return_constant: Function call "llvm::Log2_32(Bytes)" may return 4294967295. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1924: overrun-local: Overrunning array "SubRegImms" of 3 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(Bytes)" (which evaluates to 4294967295). +# 1922| if (Bytes != 8) { +# 1923| unsigned SubRegImms[] = {X86::sub_8bit, X86::sub_16bit, X86::sub_32bit}; +# 1924|-> unsigned SubRegImm = SubRegImms[Log2_32(Bytes)]; +# 1925| Register NarrowStateReg = MRI->createVirtualRegister(RC); +# 1926| BuildMI(MBB, InsertPt, Loc, TII->get(TargetOpcode::COPY), NarrowStateReg) + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1937: return_constant: Function call "llvm::Log2_32(Bytes)" may return 4294967295. +llvm-17.0.6.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp:1937: overrun-local: Overrunning array "OrOpCodes" of 4 4-byte elements at element index 4294967295 (byte offset 17179869183) using index "llvm::Log2_32(Bytes)" (which evaluates to 4294967295). +# 1935| Register NewReg = MRI->createVirtualRegister(RC); +# 1936| unsigned OrOpCodes[] = {X86::OR8rr, X86::OR16rr, X86::OR32rr, X86::OR64rr}; +# 1937|-> unsigned OrOpCode = OrOpCodes[Log2_32(Bytes)]; +# 1938| auto OrI = BuildMI(MBB, InsertPt, Loc, TII->get(OrOpCode), NewReg) +# 1939| .addReg(StateReg) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Target/X86/X86TargetTransformInfo.cpp:6104: var_decl: Declaring variable "Options". +llvm-17.0.6.src/lib/Target/X86/X86TargetTransformInfo.cpp:6123: uninit_use: Using uninitialized value "Options". Field "Options.LoadSizes.InlineElts" is uninitialized. +# 6121| Options.LoadSizes.push_back(2); +# 6122| Options.LoadSizes.push_back(1); +# 6123|-> return Options; +# 6124| } +# 6125| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/TextAPI/TextStub.cpp:583: var_decl: Declaring variable "Targets". +llvm-17.0.6.src/lib/TextAPI/TextStub.cpp:595: uninit_use: Using uninitialized value "Targets". Field "Targets.InlineElts" is uninitialized. +# 593| } +# 594| } +# 595|-> return Targets; +# 596| } +# 597| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroFrame.cpp:472: var_decl: Declaring variable "Defs". +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroFrame.cpp:477: uninit_use: Using uninitialized value "Defs". Field "Defs.InlineElts" is uninitialized. +# 475| for (const auto &A : Allocas) +# 476| Defs.push_back(A.Alloca); +# 477|-> return Defs; +# 478| } +# 479| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroFrame.cpp:802: var_decl: Declaring variable "Allocas". +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroFrame.cpp:806: uninit_use: Using uninitialized value "Allocas". Field "Allocas.InlineElts" is uninitialized. +# 804| for (const auto &A : FrameData.Allocas) +# 805| Allocas.push_back(A.Alloca); +# 806|-> return Allocas; +# 807| }; +# 808| StackLifetime StackLifetimeAnalyzer(F, ExtractAllocas(), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroSplit.cpp:689: var_decl: Declaring variable "Intrinsics". +llvm-17.0.6.src/lib/Transforms/Coroutines/CoroSplit.cpp:693: uninit_use: Using uninitialized value "Intrinsics". Field "Intrinsics.InlineElts" is uninitialized. +# 691| if (auto *DVI = dyn_cast(&I)) +# 692| Intrinsics.push_back(DVI); +# 693|-> return Intrinsics; +# 694| } +# 695| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/Attributor.cpp:3696: var_decl: Declaring variable "AC". +llvm-17.0.6.src/lib/Transforms/IPO/Attributor.cpp:3699: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 3697| AC.IsModulePass = IsModulePass; +# 3698| AC.DeleteFns = DeleteFns; +# 3699|-> Attributor A(Functions, InfoCache, AC); +# 3700| +# 3701| // Create shallow wrappers for all functions that are not IPO amendable + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/Attributor.cpp:3696: var_decl: Declaring variable "AC". +llvm-17.0.6.src/lib/Transforms/IPO/Attributor.cpp:3699: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 3697| AC.IsModulePass = IsModulePass; +# 3698| AC.DeleteFns = DeleteFns; +# 3699|-> Attributor A(Functions, InfoCache, AC); +# 3700| +# 3701| // Create shallow wrappers for all functions that are not IPO amendable + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Transforms/IPO/ForceFunctionAttrs.cpp:43: assignment: Assigning: "Kind" = "llvm::Attribute::getAttrKindFromName(KV.second)". The value of "Kind" is now between 0 and 87 (inclusive). +llvm-17.0.6.src/lib/Transforms/IPO/ForceFunctionAttrs.cpp:44: cond_between: Checking "Kind == None" implies that "Kind" is between 1 and 87 (inclusive) on the false branch. +llvm-17.0.6.src/lib/Transforms/IPO/ForceFunctionAttrs.cpp:44: overrun-call: Overrunning callee's array of size 84 by passing argument "Kind" (which evaluates to 87) in call to "canUseAsFnAttr". +# 42| return Kind; +# 43| Kind = Attribute::getAttrKindFromName(KV.second); +# 44|-> if (Kind == Attribute::None || !Attribute::canUseAsFnAttr(Kind)) { +# 45| LLVM_DEBUG(dbgs() << "ForcedAttribute: " << KV.second +# 46| << " unknown or not a function attribute!\n"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/FunctionAttrs.cpp:1692: var_decl: Declaring variable "Res". +llvm-17.0.6.src/lib/Transforms/IPO/FunctionAttrs.cpp:1718: uninit_use: Using uninitialized value "Res". Field "Res.SCCNodes.vector_.InlineElts" is uninitialized. +# 1716| Res.SCCNodes.insert(F); +# 1717| } +# 1718|-> return Res; +# 1719| } +# 1720| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:955: var_decl: Declaring variable "TIL". +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:1020: uninit_use: Using uninitialized value "TIL". Field "TIL.AlignLog2" is uninitialized. +# 1018| TTRes.SizeM1BitWidth <= 5 ? Int32Ty : Int64Ty); +# 1019| +# 1020|-> return TIL; +# 1021| } +# 1022| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:955: var_decl: Declaring variable "TIL". +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:1020: uninit_use: Using uninitialized value "TIL". Field "TIL.InlineBits" is uninitialized. +# 1018| TTRes.SizeM1BitWidth <= 5 ? Int32Ty : Int64Ty); +# 1019| +# 1020|-> return TIL; +# 1021| } +# 1022| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:955: var_decl: Declaring variable "TIL". +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:1020: uninit_use: Using uninitialized value "TIL". Field "TIL.OffsetedGlobal" is uninitialized. +# 1018| TTRes.SizeM1BitWidth <= 5 ? Int32Ty : Int64Ty); +# 1019| +# 1020|-> return TIL; +# 1021| } +# 1022| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:955: var_decl: Declaring variable "TIL". +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:1020: uninit_use: Using uninitialized value "TIL". Field "TIL.TheByteArray" is uninitialized. +# 1018| TTRes.SizeM1BitWidth <= 5 ? Int32Ty : Int64Ty); +# 1019| +# 1020|-> return TIL; +# 1021| } +# 1022| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:1125: var_decl: Declaring variable "TIL". +llvm-17.0.6.src/lib/Transforms/IPO/LowerTypeTests.cpp:1162: uninit_use_in_call: Using uninitialized value "TIL.InlineBits" when calling "lowerTypeTestCall". +# 1160| for (CallInst *CI : TIUI.CallSites) { +# 1161| ++NumTypeTestCallsLowered; +# 1162|-> Value *Lowered = lowerTypeTestCall(TypeId, CI, TIL); +# 1163| if (Lowered) { +# 1164| CI->replaceAllUsesWith(Lowered); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:2812: var_decl: Declaring variable "VMaps". +llvm-17.0.6.src/lib/Transforms/IPO/MemProfContextDisambiguation.cpp:2861: uninit_use: Using uninitialized value "VMaps". Field "VMaps.InlineElts" is uninitialized. +# 2859| } +# 2860| } +# 2861|-> return VMaps; +# 2862| } +# 2863| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/OpenMPOpt.cpp:5549: var_decl: Declaring variable "AC". +llvm-17.0.6.src/lib/Transforms/IPO/OpenMPOpt.cpp:5558: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 5556| AC.InitializationCallback = OpenMPOpt::registerAAsForFunction; +# 5557| +# 5558|-> Attributor A(Functions, InfoCache, AC); +# 5559| +# 5560| OpenMPOpt OMPOpt(SCC, CGUpdater, OREGetter, InfoCache, A); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/IPO/SampleProfile.cpp:1638: var_decl: Declaring variable "R". +llvm-17.0.6.src/lib/Transforms/IPO/SampleProfile.cpp:1643: uninit_use: Using uninitialized value "R". Field "R.InlineElts" is uninitialized. +# 1641| InstrProfValueData{FunctionSamples::getGUID(I.first), I.second}); +# 1642| } +# 1643|-> return R; +# 1644| } +# 1645| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/lib/Transforms/IPO/SampleProfile.cpp:2569: extract: Calling "get" which extracts wrapped state from local "OwnedORE". +llvm-17.0.6.src/lib/Transforms/IPO/SampleProfile.cpp:2569: escape: The internal representation of local "OwnedORE" escapes into "this->ORE", but is destroyed when it exits scope. +# 2567| } else { +# 2568| OwnedORE = std::make_unique(&F); +# 2569|-> ORE = OwnedORE.get(); +# 2570| } +# 2571| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAddSub.cpp:386: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(C0->getValueAPF()->getSemantics())". +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAddSub.cpp:386: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 384| +# 385| // Both operands are zero. Weird! +# 386|-> Addend0.set(APFloat(C0->getValueAPF().getSemantics()), nullptr); +# 387| return 1; +# 388| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCompares.cpp:7132: var_decl: Declaring variable "SMax". +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCompares.cpp:7133: uninit_use_in_call: Using uninitialized value "SMax.U" when calling "convertFromAPInt". +# 7131| // and large values. +# 7132| APFloat SMax(RHS.getSemantics()); +# 7133|-> SMax.convertFromAPInt(APInt::getSignedMaxValue(IntWidth), true, +# 7134| APFloat::rmNearestTiesToEven); +# 7135| if (SMax < RHS) { // smax < 13123.0 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCompares.cpp:7144: var_decl: Declaring variable "UMax". +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCompares.cpp:7145: uninit_use_in_call: Using uninitialized value "UMax.U" when calling "convertFromAPInt". +# 7143| // +INF and large values. +# 7144| APFloat UMax(RHS.getSemantics()); +# 7145|-> UMax.convertFromAPInt(APInt::getMaxValue(IntWidth), false, +# 7146| APFloat::rmNearestTiesToEven); +# 7147| if (UMax < RHS) { // umax < 13123.0 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCompares.cpp:7157: var_decl: Declaring variable "SMin". +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCompares.cpp:7158: uninit_use_in_call: Using uninitialized value "SMin.U" when calling "convertFromAPInt". +# 7156| // See if the RHS value is < SignedMin. +# 7157| APFloat SMin(RHS.getSemantics()); +# 7158|-> SMin.convertFromAPInt(APInt::getSignedMinValue(IntWidth), true, +# 7159| APFloat::rmNearestTiesToEven); +# 7160| if (SMin > RHS) { // smin > 12312.0 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCompares.cpp:7168: var_decl: Declaring variable "UMin". +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCompares.cpp:7169: uninit_use_in_call: Using uninitialized value "UMin.U" when calling "convertFromAPInt". +# 7167| // See if the RHS value is < UnsignedMin. +# 7168| APFloat UMin(RHS.getSemantics()); +# 7169|-> UMin.convertFromAPInt(APInt::getMinValue(IntWidth), false, +# 7170| APFloat::rmNearestTiesToEven); +# 7171| if (UMin > RHS) { // umin > 12312.0 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstructionCombining.cpp:1092: var_decl: Declaring variable "Cond" without initializer. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstructionCombining.cpp:1146: uninit_use_in_call: Using uninitialized value "Cond" when calling "CreateSelect". +# 1144| return nullptr; +# 1145| +# 1146|-> Value *SI = Builder.CreateSelect(Cond, True, False); +# 1147| SI->takeName(&I); +# 1148| return SI; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Instrumentation/BlockCoverageInference.cpp:67: var_decl: Declaring variable "Dependencies". +llvm-17.0.6.src/lib/Transforms/Instrumentation/BlockCoverageInference.cpp:74: uninit_use: Using uninitialized value "Dependencies". Field "Dependencies.vector_.InlineElts" is uninitialized. +# 72| if (It != SuccessorDependencies.end()) +# 73| Dependencies.set_union(It->second); +# 74|-> return Dependencies; +# 75| } +# 76| +llvm-17.0.6.src/lib/Transforms/Instrumentation/BlockCoverageInference.cpp:74: note: trimmed 2 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Instrumentation/ControlHeightReduction.cpp:1240: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/Transforms/Instrumentation/ControlHeightReduction.cpp:1257: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 1255| assert(Result.empty() && +# 1256| "If no outer (top-level), must return no nested ones"); +# 1257|-> return Result; +# 1258| } +# 1259| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp:1316: var_decl: Declaring variable "ArgIt". +llvm-17.0.6.src/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp:1317: uninit_use_in_call: Using uninitialized value "ArgIt". Field "ArgIt.Ptr" is uninitialized when calling "vector". +# 1315| } else { +# 1316| auto ArgIt = pointer_iterator(NewF->arg_begin()); +# 1317|-> std::vector Args(ArgIt, ArgIt + FT->getNumParams()); +# 1318| +# 1319| CallInst *CI = CallInst::Create(F, Args, "", BB); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Instrumentation/GCOVProfiling.cpp:214: var_decl: Declaring variable "Path". +llvm-17.0.6.src/lib/Transforms/Instrumentation/GCOVProfiling.cpp:220: uninit_use: Using uninitialized value "Path". Field "Path.InlineElts" is uninitialized. +# 218| else +# 219| sys::path::append(Path, SP->getDirectory(), SP->getFilename()); +# 220|-> return Path; +# 221| } +# 222| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Instrumentation/MemorySanitizer.cpp:3628: var_decl: Declaring variable "Mask". +llvm-17.0.6.src/lib/Transforms/Instrumentation/MemorySanitizer.cpp:3632: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 3630| Mask.append(2, X); +# 3631| } +# 3632|-> return Mask; +# 3633| } +# 3634| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/lib/Transforms/Instrumentation/MemorySanitizer.cpp:4626: tainted_data_return: Called function "this->getNumOutputArgs(IA, CB)", and a possible return value may be less than zero. +llvm-17.0.6.src/lib/Transforms/Instrumentation/MemorySanitizer.cpp:4626: assign: Assigning: "OutputArgs" = "this->getNumOutputArgs(IA, CB)". +llvm-17.0.6.src/lib/Transforms/Instrumentation/MemorySanitizer.cpp:4632: assign: Assigning: "i" = "OutputArgs". +llvm-17.0.6.src/lib/Transforms/Instrumentation/MemorySanitizer.cpp:4633: overflow_sink: "i", which might have overflowed, is passed to "CB->getOperand(i)". +# 4631| // that we won't overwrite uninit values before checking them. +# 4632| for (int i = OutputArgs; i < NumOperands; i++) { +# 4633|-> Value *Operand = CB->getOperand(i); +# 4634| instrumentAsmArgument(Operand, CB->getParamElementType(i), I, IRB, DL, +# 4635| /*isOutput*/ false); + +Error: VIRTUAL_DTOR (CWE-772): +llvm-17.0.6.src/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:494: no_virtual_dtor: Class "::PGOBBInfo" does not have a virtual destructor. +llvm-17.0.6.src/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1002: dtor_in_derived: Class "::PGOUseBBInfo" has a compiler-generated destructor. It is non-empty because of its field "InEdges". A pointer to class "::PGOUseBBInfo" is upcast to class "::PGOBBInfo" which doesn't have a virtual destructor. +llvm-17.0.6.src/include/llvm/Transforms/Instrumentation/CFGMST.h:57: upcast: Example 1: Casting from a pointer to "::PGOUseBBInfo" to a pointer to "::PGOBBInfo" in "this->findAndCompressGroup(static_cast<::PGOUseBBInfo *>(G->Group))". +/usr/include/c++/14/bits/unique_ptr.h:93: delete: Example 1: Deletion of type "::PGOBBInfo". +/usr/include/c++/14/bits/unique_ptr.h:1076: alloc: Example 1: Allocated an object of type "::PGOUseBBInfo". +llvm-17.0.6.src/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1007: non-empty_dtor_field: Field "InEdges" in class "::PGOUseBBInfo". +# 492| +# 493| /// This class stores the auxiliary information for each BB in the MST. +# 494|-> struct PGOBBInfo { +# 495| PGOBBInfo *Group; +# 496| uint32_t Index; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1866: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(CountValue * 1.)". +llvm-17.0.6.src/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1866: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1864| CountValue = Func.getBBInfo(&BBI).CountValue; +# 1865| BFICountValue = *BFICount; +# 1866|-> SumCount.add(APFloat(CountValue * 1.0), APFloat::rmNearestTiesToEven); +# 1867| SumBFICount.add(APFloat(BFICountValue * 1.0), APFloat::rmNearestTiesToEven); +# 1868| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1867: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(BFICountValue * 1.)". +llvm-17.0.6.src/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1867: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1865| BFICountValue = *BFICount; +# 1866| SumCount.add(APFloat(CountValue * 1.0), APFloat::rmNearestTiesToEven); +# 1867|-> SumBFICount.add(APFloat(BFICountValue * 1.0), APFloat::rmNearestTiesToEven); +# 1868| } +# 1869| if (SumCount.isZero()) + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/lib/Transforms/Instrumentation/ThreadSanitizer.cpp:757: overrun-local: Overrunning array "this->TsanAtomicRMW" of 17 80-byte elements at element index 31 (byte offset 2559) using index "RMWI->getOperation()" (which evaluates to 31). +# 755| if (Idx < 0) +# 756| return false; +# 757|-> FunctionCallee F = TsanAtomicRMW[RMWI->getOperation()][Idx]; +# 758| if (!F) +# 759| return false; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Scalar/DivRemPairs.cpp:145: var_decl: Declaring variable "Worklist". +llvm-17.0.6.src/lib/Transforms/Scalar/DivRemPairs.cpp:164: uninit_use: Using uninitialized value "Worklist". Field "Worklist.InlineElts" is uninitialized. +# 162| } +# 163| +# 164|-> return Worklist; +# 165| } +# 166| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Scalar/GVN.cpp:327: var_decl: Declaring variable "e". +llvm-17.0.6.src/lib/Transforms/Scalar/GVN.cpp:368: uninit_use: Using uninitialized value "e". Field "e.varargs.InlineElts" is uninitialized. +# 366| } +# 367| +# 368|-> return e; +# 369| } +# 370| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Scalar/GVN.cpp:375: var_decl: Declaring variable "e". +llvm-17.0.6.src/lib/Transforms/Scalar/GVN.cpp:387: uninit_use: Using uninitialized value "e". Field "e.varargs.InlineElts" is uninitialized. +# 385| e.opcode = (Opcode << 8) | Predicate; +# 386| e.commutative = true; +# 387|-> return e; +# 388| } +# 389| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Scalar/GVN.cpp:393: var_decl: Declaring variable "e". +llvm-17.0.6.src/lib/Transforms/Scalar/GVN.cpp:405: uninit_use: Using uninitialized value "e". Field "e.varargs.InlineElts" is uninitialized. +# 403| e.varargs.push_back(lookupOrAdd(WO->getLHS())); +# 404| e.varargs.push_back(lookupOrAdd(WO->getRHS())); +# 405|-> return e; +# 406| } +# 407| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Scalar/GVN.cpp:420: var_decl: Declaring variable "E". +llvm-17.0.6.src/lib/Transforms/Scalar/GVN.cpp:448: uninit_use: Using uninitialized value "E". Field "E.varargs.InlineElts" is uninitialized. +# 446| E.varargs.push_back(lookupOrAdd(Op)); +# 447| } +# 448|-> return E; +# 449| } +# 450| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Scalar/GVNSink.cpp:245: var_decl: Declaring variable "M". +llvm-17.0.6.src/lib/Transforms/Scalar/GVNSink.cpp:247: uninit_use: Using uninitialized value "M". Field "M.Values.InlineElts" is uninitialized. +# 245| ModelledPHI M; +# 246| M.Values.push_back(reinterpret_cast(ID)); +# 247|-> return M; +# 248| } +# 249| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1156: var_decl: Declaring variable "V". +llvm-17.0.6.src/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1158: uninit_use: Using uninitialized value "V". Field "V.InlineElts" is uninitialized. +# 1156| SmallVector V; +# 1157| V.push_back(reinterpret_cast(-1)); +# 1158|-> return V; +# 1159| } +# 1160| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1162: var_decl: Declaring variable "V". +llvm-17.0.6.src/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1164: uninit_use: Using uninitialized value "V". Field "V.InlineElts" is uninitialized. +# 1162| SmallVector V; +# 1163| V.push_back(reinterpret_cast(-2)); +# 1164|-> return V; +# 1165| } +# 1166| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp:2400: var_decl: Declaring variable "Leaves". +llvm-17.0.6.src/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp:2407: uninit_use: Using uninitialized value "Leaves". Field "Leaves.InlineElts" is uninitialized. +# 2405| })) +# 2406| Leaves.push_back(Expr); +# 2407|-> return Leaves; +# 2408| } +# 2409| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Utils/ASanStackFrameLayout.cpp:118: var_decl: Declaring variable "SB". +llvm-17.0.6.src/lib/Transforms/Utils/ASanStackFrameLayout.cpp:130: uninit_use: Using uninitialized value "SB". Field "SB.InlineElts" is uninitialized. +# 128| } +# 129| SB.resize(Layout.FrameSize / Granularity, kAsanStackRightRedzoneMagic); +# 130|-> return SB; +# 131| } +# 132| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Utils/InlineFunction.cpp:1348: var_decl: Declaring variable "Valid". +llvm-17.0.6.src/lib/Transforms/Utils/InlineFunction.cpp:1360: uninit_use: Using uninitialized value "Valid". Field "Valid.Attrs.InlineElts" is uninitialized. +# 1358| if (AB.contains(Attribute::NonNull)) +# 1359| Valid.addAttribute(Attribute::NonNull); +# 1360|-> return Valid; +# 1361| } +# 1362| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Utils/LibCallsShrinkWrap.cpp:102: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(Val)". +llvm-17.0.6.src/lib/Transforms/Utils/LibCallsShrinkWrap.cpp:102: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 100| Value *createCond(IRBuilder<> &BBBuilder, Value *Arg, CmpInst::Predicate Cmp, +# 101| float Val) { +# 102|-> Constant *V = ConstantFP::get(BBBuilder.getContext(), APFloat(Val)); +# 103| if (!Arg->getType()->isFloatTy()) +# 104| V = ConstantExpr::getFPExtend(V, Arg->getType()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Utils/LoopUtils.cpp:124: var_decl: Declaring variable "UsedOutside". +llvm-17.0.6.src/lib/Transforms/Utils/LoopUtils.cpp:138: uninit_use: Using uninitialized value "UsedOutside". Field "UsedOutside.InlineElts" is uninitialized. +# 136| } +# 137| +# 138|-> return UsedOutside; +# 139| } +# 140| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Utils/SampleProfileInference.cpp:137: var_decl: Declaring variable "SrcEdge" without initializer. +llvm-17.0.6.src/lib/Transforms/Utils/SampleProfileInference.cpp:151: uninit_use_in_call: Using uninitialized value "SrcEdge". Field "SrcEdge.OnShortestPath" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 149| DstEdge.RevEdgeIndex = Edges[Src].size(); +# 150| +# 151|-> Edges[Src].push_back(SrcEdge); +# 152| Edges[Dst].push_back(DstEdge); +# 153| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Utils/SampleProfileInference.cpp:144: var_decl: Declaring variable "DstEdge" without initializer. +llvm-17.0.6.src/lib/Transforms/Utils/SampleProfileInference.cpp:152: uninit_use_in_call: Using uninitialized value "DstEdge". Field "DstEdge.OnShortestPath" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 150| +# 151| Edges[Src].push_back(SrcEdge); +# 152|-> Edges[Dst].push_back(DstEdge); +# 153| } +# 154| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Utils/ValueMapper.cpp:1066: var_decl: Declaring variable "WE" without initializer. +llvm-17.0.6.src/lib/Transforms/Utils/ValueMapper.cpp:1071: uninit_use_in_call: Using uninitialized value "WE". Field "WE.AppendingGVIsOldCtorDtor" is uninitialized when calling "push_back". +# 1069| WE.Data.GVInit.GV = &GV; +# 1070| WE.Data.GVInit.Init = &Init; +# 1071|-> Worklist.push_back(WE); +# 1072| } +# 1073| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Utils/ValueMapper.cpp:1100: var_decl: Declaring variable "WE" without initializer. +llvm-17.0.6.src/lib/Transforms/Utils/ValueMapper.cpp:1105: uninit_use_in_call: Using uninitialized value "WE". Field "WE.AppendingGVIsOldCtorDtor" is uninitialized when calling "push_back". +# 1103| WE.Data.AliasOrIFunc.GV = &GV; +# 1104| WE.Data.AliasOrIFunc.Target = &Target; +# 1105|-> Worklist.push_back(WE); +# 1106| } +# 1107| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Utils/ValueMapper.cpp:1112: var_decl: Declaring variable "WE" without initializer. +llvm-17.0.6.src/lib/Transforms/Utils/ValueMapper.cpp:1116: uninit_use_in_call: Using uninitialized value "WE". Field "WE.AppendingGVIsOldCtorDtor" is uninitialized when calling "push_back". +# 1114| WE.MCID = MCID; +# 1115| WE.Data.RemapF = &F; +# 1116|-> Worklist.push_back(WE); +# 1117| } +# 1118| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Vectorize/SLPVectorizer.cpp:2545: var_decl: Declaring variable "Mask". +llvm-17.0.6.src/lib/Transforms/Vectorize/SLPVectorizer.cpp:2548: uninit_use: Using uninitialized value "Mask". Field "Mask.InlineElts" is uninitialized. +# 2546| inversePermutation(ReorderIndices, Mask); +# 2547| ::addMask(Mask, ReuseShuffleIndices); +# 2548|-> return Mask; +# 2549| } +# 2550| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Vectorize/SLPVectorizer.cpp:3567: var_decl: Declaring variable "V". +llvm-17.0.6.src/lib/Transforms/Vectorize/SLPVectorizer.cpp:3569: uninit_use: Using uninitialized value "V". Field "V.InlineElts" is uninitialized. +# 3567| OrdersType V; +# 3568| V.push_back(~1U); +# 3569|-> return V; +# 3570| } +# 3571| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Vectorize/SLPVectorizer.cpp:3573: var_decl: Declaring variable "V". +llvm-17.0.6.src/lib/Transforms/Vectorize/SLPVectorizer.cpp:3575: uninit_use: Using uninitialized value "V". Field "V.InlineElts" is uninitialized. +# 3573| OrdersType V; +# 3574| V.push_back(~2U); +# 3575|-> return V; +# 3576| } +# 3577| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Vectorize/SLPVectorizer.cpp:5031: var_decl: Declaring variable "ExternalReorderIndices". +llvm-17.0.6.src/lib/Transforms/Vectorize/SLPVectorizer.cpp:5051: uninit_use: Using uninitialized value "ExternalReorderIndices". Field "ExternalReorderIndices.InlineElts" is uninitialized. +# 5049| ExternalReorderIndices.push_back(ReorderIndices); +# 5050| } +# 5051|-> return ExternalReorderIndices; +# 5052| } +# 5053| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Vectorize/VPlanSLP.cpp:156: var_decl: Declaring variable "Operands". +llvm-17.0.6.src/lib/Transforms/Vectorize/VPlanSLP.cpp:162: uninit_use: Using uninitialized value "Operands". Field "Operands.InlineElts" is uninitialized. +# 160| Operands.push_back(U->getOperand(OperandIndex)); +# 161| } +# 162|-> return Operands; +# 163| } +# 164| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Vectorize/VPlanSLP.cpp:172: var_decl: Declaring variable "Result". +llvm-17.0.6.src/lib/Transforms/Vectorize/VPlanSLP.cpp:187: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 185| } +# 186| +# 187|-> return Result; +# 188| } +# 189| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/lib/Transforms/Vectorize/VPlanSLP.cpp:297: var_decl: Declaring variable "FinalOrder". +llvm-17.0.6.src/lib/Transforms/Vectorize/VPlanSLP.cpp:341: uninit_use: Using uninitialized value "FinalOrder". Field "FinalOrder.InlineElts" is uninitialized. +# 339| } +# 340| +# 341|-> return FinalOrder; +# 342| } +# 343| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenDAGISel.inc:239642: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(N)->getMergedOrdering()" (which evaluates to 15) in call to "isReleaseOrStronger". +#239640| SDNode *N = Node; +#239641| (void)N; +#239642|-> if (isReleaseOrStronger(cast(N)->getMergedOrdering())) return false; +#239643| return true; +#239644| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenDAGISel.inc:239674: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(N)->getMergedOrdering()" (which evaluates to 15) in call to "isReleaseOrStronger". +#239672| SDNode *N = Node; +#239673| (void)N; +#239674|-> if (!isReleaseOrStronger(cast(N)->getMergedOrdering())) return false; +#239675| return true; +#239676| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenDAGISel.inc:239696: overrun-call: Overrunning callee's array of size 8 by passing argument "llvm::cast(N)->getMergedOrdering()" (which evaluates to 15) in call to "isAcquireOrStronger". +#239694| SDNode *N = Node; +#239695| (void)N; +#239696|-> if (isAcquireOrStronger(cast(N)->getMergedOrdering())) return false; +#239697| return true; +#239698| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/redhat-linux-build/lib/Target/ARM/ARMGenDAGISel.inc:91550: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-17.0.6.src/redhat-linux-build/lib/Target/ARM/ARMGenDAGISel.inc:91551: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isAcquireOrStronger". +#91549| +#91550| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#91551|-> return isAcquireOrStronger(Ordering); +#91552| +#91553| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/redhat-linux-build/lib/Target/ARM/ARMGenDAGISel.inc:91570: assignment: Assigning: "Ordering" = "llvm::cast(N)->getSuccessOrdering()". The value of "Ordering" may now be up to 15. +llvm-17.0.6.src/redhat-linux-build/lib/Target/ARM/ARMGenDAGISel.inc:91571: overrun-call: Overrunning callee's array of size 8 by passing argument "Ordering" (which evaluates to 15) in call to "isReleaseOrStronger". +#91569| +#91570| AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); +#91571|-> return isReleaseOrStronger(Ordering); +#91572| +#91573| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/dsymutil/DwarfLinkerForBinary.cpp:145: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-17.0.6.src/tools/dsymutil/DwarfLinkerForBinary.cpp:148: use_after_move: "Err" is used after it has been already moved. +# 146| toString(std::move(Err)), +# 147| Obj.getObjectFilename()); +# 148|-> return errorToErrorCode(std::move(Err)); +# 149| } +# 150| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/dsymutil/DwarfLinkerForBinary.cpp:154: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-17.0.6.src/tools/dsymutil/DwarfLinkerForBinary.cpp:157: use_after_move: "Err" is used after it has been already moved. +# 155| toString(std::move(Err)), +# 156| Obj.getObjectFilename()); +# 157|-> return errorToErrorCode(std::move(Err)); +# 158| } +# 159| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/dsymutil/dsymutil.cpp:308: var_decl: Declaring variable "Options". +llvm-17.0.6.src/tools/dsymutil/dsymutil.cpp:420: uninit_use_in_call: Using uninitialized value "Options.NumThreads" when calling "Expected". +# 418| if (Error E = verifyOptions(Options)) +# 419| return std::move(E); +# 420|-> return Options; +# 421| } +# 422| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/tools/llvm-c-test/calc.c:128: address_of: Taking address with "¶m" yields a singleton pointer. +llvm-17.0.6.src/tools/llvm-c-test/calc.c:128: callee_ptr_arith: Passing "¶m" to function "LLVMGetParams" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 126| LLVMPositionBuilderAtEnd(builder, LLVMAppendBasicBlock(F, "entry")); +# 127| +# 128|-> LLVMGetParams(F, ¶m); +# 129| LLVMSetValueName(param, "in"); +# 130| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/tools/llvm-c-test/diagnostic.c:72: alloc_arg: "LLVMGetBitcodeModule2" allocates memory that is stored into "M". +llvm-17.0.6.src/tools/llvm-c-test/diagnostic.c:82: leaked_storage: Variable "M" going out of scope leaks the storage it points to. +# 80| } +# 81| +# 82|-> return 0; +# 83| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/tools/llvm-c-test/object.c:78: alloc_fn: Storage is returned from allocation function "LLVMObjectFileCopySectionIterator". +llvm-17.0.6.src/tools/llvm-c-test/object.c:78: var_assign: Assigning: "sect" = storage returned from "LLVMObjectFileCopySectionIterator(O)". +llvm-17.0.6.src/tools/llvm-c-test/object.c:96: leaked_storage: Variable "sect" going out of scope leaks the storage it points to. +# 94| LLVMDisposeMemoryBuffer(MB); +# 95| +# 96|-> return 0; +# 97| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/llvm-cov/CodeCoverage.cpp:347: move: "CoverageInfo" is moved (indicated by "std::move(CoverageInfo)"). +llvm-17.0.6.src/tools/llvm-cov/CodeCoverage.cpp:347: use_after_move: "CoverageInfo" is used after it has been already moved. +# 345| +# 346| if (!ViewBranches.empty()) { +# 347|-> auto SubView = SourceCoverageView::create(SourceName, File, ViewOpts, +# 348| std::move(CoverageInfo)); +# 349| View.addBranch(CurrentLine, ViewBranches, std::move(SubView)); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/tools/llvm-cov/llvm-cov.cpp:80: extract: Calling "c_str" which extracts wrapped state from local "Invocation". +llvm-17.0.6.src/tools/llvm-cov/llvm-cov.cpp:80: escape: The internal representation of local "Invocation" escapes into "argv[1]", but is destroyed when it exits scope. +# 78| if (Func) { +# 79| std::string Invocation = std::string(argv[0]) + " " + argv[1]; +# 80|-> argv[1] = Invocation.c_str(); +# 81| return Func(argc - 1, argv + 1); +# 82| } + +Error: Y2K38_SAFETY (CWE-197): +llvm-17.0.6.src/tools/llvm-cvtres/llvm-cvtres.cpp:100: store_truncates_time_t: A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "Now" is cast to "uint32_t". +# 98| if (Now < 0 || !isUInt<32>(Now)) +# 99| return UINT32_MAX; +# 100|-> return static_cast(Now); +# 101| } +# 102| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/llvm-dwp/llvm-dwp.cpp:101: move: "DWOName" is moved (indicated by "std::move(DWOName)"). +llvm-17.0.6.src/tools/llvm-dwp/llvm-dwp.cpp:103: use_after_move: "DWOName" is used after it has been already moved. +# 101| SmallString<16> DWOPath(std::move(DWOName)); +# 102| sys::fs::make_absolute(DWOCompDir, DWOPath); +# 103|-> if (!sys::fs::exists(DWOPath) && sys::fs::exists(DWOName)) +# 104| DWOPaths.push_back(std::move(DWOName)); +# 105| else + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-exegesis/lib/CodeTemplate.cpp:116: var_decl: Declaring variable "Result". +llvm-17.0.6.src/tools/llvm-exegesis/lib/CodeTemplate.cpp:120: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 118| if ((Execution & Bit) == Bit) +# 119| Result.push_back(Bit); +# 120|-> return Result; +# 121| } +# 122| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/llvm-exegesis/lib/PerfHelper.cpp:110: move: "E" is moved (indicated by "std::move(E)"). +llvm-17.0.6.src/tools/llvm-exegesis/lib/PerfHelper.cpp:114: use_after_move: "E" is used after it has been already moved. +# 112| IsDummyEvent = Event.name() == PerfEvent::DummyEventString; +# 113| if (!IsDummyEvent) +# 114|-> initRealEvent(E, ProcessID); +# 115| } +# 116| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-exegesis/lib/SchedClassResolution.cpp:53: var_decl: Declaring variable "Result". +llvm-17.0.6.src/tools/llvm-exegesis/lib/SchedClassResolution.cpp:120: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 118| } +# 119| } +# 120|-> return Result; +# 121| } +# 122| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/tools/llvm-exegesis/lib/SubprocessMemory.cpp:93: alloc_fn: Storage is returned from allocation function "mmap". +llvm-17.0.6.src/tools/llvm-exegesis/lib/SubprocessMemory.cpp:93: var_assign: Assigning: "AuxiliaryMemoryMapping" = storage returned from "mmap(NULL, 4096UL, 3, 1, AuxiliaryMemoryFileDescriptor, 0L)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/SubprocessMemory.cpp:105: leaked_storage: Variable "AuxiliaryMemoryMapping" going out of scope leaks the storage it points to. +# 103| shm_open(MemoryValueName.c_str(), O_RDWR, S_IRUSR | S_IWUSR); +# 104| if (AuxiliaryMemoryMapping[AuxiliaryMemoryOffset + MemVal.Index] == -1) +# 105|-> return make_error("Mapping shared memory failed"); +# 106| } +# 107| if (munmap(AuxiliaryMemoryMapping, 4096) == -1) + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:886: overflow_sink: "MemOpIdx + 0", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 0, llvm::MCOperand const(llvm::MCOperand::createReg(Reg)))". +# 884| // getMemoryOperandNo() ignores tied operands, so we have to add them back. +# 885| MemOpIdx += X86II::getOperandBias(IT.getInstr().Description); +# 886|-> setMemOp(IT, MemOpIdx + 0, MCOperand::createReg(Reg)); // BaseReg +# 887| setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:887: overflow: The expression "MemOpIdx + 1" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:887: overflow_sink: "MemOpIdx + 1", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 1, llvm::MCOperand const(llvm::MCOperand::createImm(1L)))". +# 885| MemOpIdx += X86II::getOperandBias(IT.getInstr().Description); +# 886| setMemOp(IT, MemOpIdx + 0, MCOperand::createReg(Reg)); // BaseReg +# 887|-> setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889| setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:888: overflow: The expression "MemOpIdx + 2" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:888: overflow_sink: "MemOpIdx + 2", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 2, llvm::MCOperand const(llvm::MCOperand::createReg(0U)))". +# 886| setMemOp(IT, MemOpIdx + 0, MCOperand::createReg(Reg)); // BaseReg +# 887| setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888|-> setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889| setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp +# 890| setMemOp(IT, MemOpIdx + 4, MCOperand::createReg(0)); // Segment + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:889: overflow: The expression "MemOpIdx + 3" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:889: overflow_sink: "MemOpIdx + 3", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 3, llvm::MCOperand const(llvm::MCOperand::createImm(Offset)))". +# 887| setMemOp(IT, MemOpIdx + 1, MCOperand::createImm(1)); // ScaleAmt +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889|-> setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp +# 890| setMemOp(IT, MemOpIdx + 4, MCOperand::createReg(0)); // Segment +# 891| } + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: tainted_data_return: Called function "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)", and a possible return value may be less than zero. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:882: assign: Assigning: "MemOpIdx" = "llvm::X86II::getMemoryOperandNo(IT->getInstr().Description.TSFlags)". +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:890: overflow: The expression "MemOpIdx + 4" is considered to have possibly overflowed. +llvm-17.0.6.src/tools/llvm-exegesis/lib/X86/Target.cpp:890: overflow_sink: "MemOpIdx + 4", which might be negative, is passed to "llvm::exegesis::setMemOp(IT, MemOpIdx + 4, llvm::MCOperand const(llvm::MCOperand::createReg(0U)))". +# 888| setMemOp(IT, MemOpIdx + 2, MCOperand::createReg(0)); // IndexReg +# 889| setMemOp(IT, MemOpIdx + 3, MCOperand::createImm(Offset)); // Disp +# 890|-> setMemOp(IT, MemOpIdx + 4, MCOperand::createReg(0)); // Segment +# 891| } +# 892| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp:75: alloc_arg: "getaddrinfo" allocates memory that is stored into "AI". +llvm-17.0.6.src/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp:109: leaked_storage: Variable "AI" going out of scope leaks the storage it points to. +# 107| return accept(SockFD, AI->ai_addr, &AddrLen); +# 108| #else +# 109|-> return accept(SockFD, AI->ai_addr, &AI->ai_addrlen); +# 110| #endif +# 111| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-jitlink/llvm-jitlink.cpp:1488: var_decl: Declaring variable "PathVec". +llvm-17.0.6.src/tools/llvm-jitlink/llvm-jitlink.cpp:1495: uninit_use: Using uninitialized value "PathVec". Field "PathVec.InlineElts" is uninitialized. +# 1493| StringRef(getenv("LD_LIBRARY_PATH")).split(PathVec, ":"); +# 1494| +# 1495|-> return PathVec; +# 1496| } +# 1497| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp:682: var_decl: Declaring variable "C". +llvm-17.0.6.src/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp:690: uninit_use_in_call: Using uninitialized value "C". Field "C.ArchCPUType" is uninitialized when calling "Expected". +# 688| "-static option: must be specified"); +# 689| } +# 690|-> return C; +# 691| } +# 692| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp:682: var_decl: Declaring variable "C". +llvm-17.0.6.src/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp:733: uninit_use_in_call: Using uninitialized value "C". Field "C.ArchCPUType" is uninitialized when calling "Expected". +# 731| InputFiles, OutputFile); +# 732| +# 733|-> return C; +# 734| } +# 735| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-lipo/llvm-lipo.cpp:321: var_decl: Declaring variable "InputBinaries". +llvm-17.0.6.src/tools/llvm-lipo/llvm-lipo.cpp:350: uninit_use: Using uninitialized value "InputBinaries". Field "InputBinaries.InlineElts" is uninitialized. +# 348| InputBinaries.push_back(std::move(*BinaryOrErr)); +# 349| } +# 350|-> return InputBinaries; +# 351| } +# 352| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-lipo/llvm-lipo.cpp:560: var_decl: Declaring variable "Slices". +llvm-17.0.6.src/tools/llvm-lipo/llvm-lipo.cpp:602: uninit_use: Using uninitialized value "Slices". Field "Slices.InlineElts" is uninitialized. +# 600| } +# 601| updateAlignments(Slices, Alignments); +# 602|-> return Slices; +# 603| } +# 604| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-mca/CodeRegion.cpp:164: var_decl: Declaring variable "AI". +llvm-17.0.6.src/tools/llvm-mca/CodeRegion.cpp:171: uninit_use: Using uninitialized value "AI". Field "AI.InlineElts" is uninitialized. +# 169| } +# 170| } +# 171|-> return AI; +# 172| } +# 173| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/tools/llvm-objdump/COFFDump.cpp:862: alloc_fn: Storage is returned from allocation function "microsoftDemangle". +llvm-17.0.6.src/tools/llvm-objdump/COFFDump.cpp:862: var_assign: Assigning: "DemangledSymbol" = storage returned from "llvm::microsoftDemangle(Name.operator std::string_view(), NULL, &Status, MSDF_None)". +llvm-17.0.6.src/tools/llvm-objdump/COFFDump.cpp:870: leaked_storage: Variable "DemangledSymbol" going out of scope leaks the storage it points to. +# 868| outs() << " (invalid mangled name)"; +# 869| } +# 870|-> } +# 871| outs() << "\n"; +# 872| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:1241: var_decl: Declaring variable "Ret". +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:1251: uninit_use: Using uninitialized value "Ret". Field "Ret.InlineElts" is uninitialized. +# 1249| } +# 1250| } +# 1251|-> return Ret; +# 1252| } +# 1253| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:2897: var_decl: Declaring variable "r_value" without initializer. +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:2939: uninit_use_in_call: Using uninitialized value "r_value" when calling "GuessSymbolName". +# 2937| if (reloc_found && (r_type == MachO::GENERIC_RELOC_SECTDIFF || +# 2938| r_type == MachO::GENERIC_RELOC_LOCAL_SECTDIFF)) { +# 2939|-> const char *add = GuessSymbolName(r_value, info->AddrMap); +# 2940| const char *sub = GuessSymbolName(pair_r_value, info->AddrMap); +# 2941| uint32_t offset = value - (r_value - pair_r_value); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:2897: var_decl: Declaring variable "pair_r_value" without initializer. +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:2940: uninit_use_in_call: Using uninitialized value "pair_r_value" when calling "GuessSymbolName". +# 2938| r_type == MachO::GENERIC_RELOC_LOCAL_SECTDIFF)) { +# 2939| const char *add = GuessSymbolName(r_value, info->AddrMap); +# 2940|-> const char *sub = GuessSymbolName(pair_r_value, info->AddrMap); +# 2941| uint32_t offset = value - (r_value - pair_r_value); +# 2942| op_info->AddSymbol.Present = 1; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:6541: var_decl: Declaring variable "objc_class" without initializer. +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:6645: uninit_use: Using uninitialized value "objc_class.info". +# 6643| } +# 6644| +# 6645|-> if (CLS_GETINFO(&objc_class, CLS_CLASS)) { +# 6646| outs() << "\tMeta Class"; +# 6647| r = get_pointer_32(objc_class.isa, xoffset, left, xS, &info, true); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:6541: var_decl: Declaring variable "objc_class" without initializer. +llvm-17.0.6.src/tools/llvm-objdump/MachODump.cpp:6647: uninit_use_in_call: Using uninitialized value "objc_class.isa" when calling "get_pointer_32". +# 6645| if (CLS_GETINFO(&objc_class, CLS_CLASS)) { +# 6646| outs() << "\tMeta Class"; +# 6647|-> r = get_pointer_32(objc_class.isa, xoffset, left, xS, &info, true); +# 6648| if (r != nullptr) { +# 6649| if (left > sizeof(struct objc_class_t)) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-pdbutil/BytesOutputStyle.cpp:65: var_decl: Declaring variable "Result". +llvm-17.0.6.src/tools/llvm-pdbutil/BytesOutputStyle.cpp:76: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 74| Result.push_back(*ESS); +# 75| } +# 76|-> return Result; +# 77| } +# 78| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/llvm-pdbutil/DumpOutputStyle.cpp:1497: move: "EC" is moved (indicated by "std::move(EC)"). +llvm-17.0.6.src/tools/llvm-pdbutil/DumpOutputStyle.cpp:1499: use_after_move: "EC" is used after it has been already moved. +# 1497| P.formatLine("Error while processing symbol records. {0}", +# 1498| toString(std::move(EC))); +# 1499|-> return EC; +# 1500| } +# 1501| } else if (auto EC = Visitor.visitSymbolStream(ModS.getSymbolArray(), + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/tools/llvm-pdbutil/DumpOutputStyle.cpp:1503: move: "EC" is moved (indicated by "std::move(EC)"). +llvm-17.0.6.src/tools/llvm-pdbutil/DumpOutputStyle.cpp:1505: use_after_move: "EC" is used after it has been already moved. +# 1503| P.formatLine("Error while processing symbol records. {0}", +# 1504| toString(std::move(EC))); +# 1505|-> return EC; +# 1506| } +# 1507| return Error::success(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp:98: var_decl: Declaring variable "Pct". +llvm-17.0.6.src/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp:101: uninit_use_in_call: Using uninitialized value "Pct.U" when calling "toString". +# 99| (double)Layout.getSize()); +# 100| SmallString<8> PctStr; +# 101|-> Pct.toString(PctStr, 4); +# 102| WithColor(Printer, PDB_ColorItem::Padding).get() +# 103| << "Total padding " << Layout.deepPaddingSize() << " bytes (" << PctStr + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp:106: var_decl: Declaring variable "Pct2". +llvm-17.0.6.src/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp:109: uninit_use_in_call: Using uninitialized value "Pct2.U" when calling "toString". +# 107| (double)Layout.getSize()); +# 108| PctStr.clear(); +# 109|-> Pct2.toString(PctStr, 4); +# 110| WithColor(Printer, PDB_ColorItem::Padding).get() +# 111| << "Immediate padding " << Layout.immediatePadding() << " bytes (" + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-pdbutil/llvm-pdbutil.cpp:813: var_decl: Declaring variable "DefaultInfoStream". +llvm-17.0.6.src/tools/llvm-pdbutil/llvm-pdbutil.cpp:818: uninit_use_in_call: Using uninitialized value "DefaultInfoStream.Guid" when calling "value_or". +# 816| pdb::yaml::PdbTpiStream DefaultIpiStream; +# 817| +# 818|-> const auto &Info = YamlObj.PdbStream.value_or(DefaultInfoStream); +# 819| +# 820| auto &InfoBuilder = Builder.getInfoBuilder(); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/tools/llvm-profdata/llvm-profdata.cpp:3112: extract: Calling "c_str" which extracts wrapped state from local "Invocation". +llvm-17.0.6.src/tools/llvm-profdata/llvm-profdata.cpp:3112: escape: The internal representation of local "Invocation" escapes into "argv[1]", but is destroyed when it exits scope. +# 3110| if (func) { +# 3111| std::string Invocation(ProgName.str() + " " + argv[1]); +# 3112|-> argv[1] = Invocation.c_str(); +# 3113| return func(argc - 1, argv + 1); +# 3114| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-profgen/ProfiledBinary.cpp:865: var_decl: Declaring variable "CallStack". +llvm-17.0.6.src/tools/llvm-profgen/ProfiledBinary.cpp:888: uninit_use: Using uninitialized value "CallStack". Field "CallStack.InlineElts" is uninitialized. +# 886| } +# 887| +# 888|-> return CallStack; +# 889| } +# 890| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-rc/llvm-rc.cpp:378: var_decl: Declaring variable "Opts". +llvm-17.0.6.src/tools/llvm-rc/llvm-rc.cpp:531: uninit_use: Using uninitialized value "Opts". Field "Opts.Params.NoInclude" is uninitialized. +# 529| Opts.BeVerbose = InputArgs.hasArg(WINDRES_verbose); +# 530| +# 531|-> return Opts; +# 532| } +# 533| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:5165: var_decl: Declaring variable "Properties". +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:5188: uninit_use: Using uninitialized value "Properties". Field "Properties.InlineElts" is uninitialized. +# 5186| Properties.push_back(""); +# 5187| +# 5188|-> return Properties; +# 5189| } +# 5190| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6287: var_decl: Declaring variable "SymbolIndexes". +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6308: uninit_use: Using uninitialized value "SymbolIndexes". Field "SymbolIndexes.InlineElts" is uninitialized. +# 6306| reportUniqueWarning("unable to get address of symbol '" + Name + +# 6307| "': " + toString(SymAddrOrErr.takeError())); +# 6308|-> return SymbolIndexes; +# 6309| } +# 6310| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6287: var_decl: Declaring variable "SymbolIndexes". +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6322: uninit_use: Using uninitialized value "SymbolIndexes". Field "SymbolIndexes.InlineElts" is uninitialized. +# 6320| auto Symbols = this->AddressToIndexMap->find(SymValue); +# 6321| if (Symbols == this->AddressToIndexMap->end()) +# 6322|-> return SymbolIndexes; +# 6323| +# 6324| for (uint32_t Index : Symbols->second) { +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6322: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6287: var_decl: Declaring variable "SymbolIndexes". +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6340: uninit_use: Using uninitialized value "SymbolIndexes". Field "SymbolIndexes.InlineElts" is uninitialized. +# 6338| reportUniqueWarning("unable to get section of symbol '" + Name + +# 6339| "': " + toString(SecOrErr.takeError())); +# 6340|-> return SymbolIndexes; +# 6341| } +# 6342| } +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6340: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6287: var_decl: Declaring variable "SymbolIndexes". +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6347: uninit_use: Using uninitialized value "SymbolIndexes". Field "SymbolIndexes.InlineElts" is uninitialized. +# 6345| } +# 6346| +# 6347|-> return SymbolIndexes; +# 6348| } +# 6349| +llvm-17.0.6.src/tools/llvm-readobj/ELFDumper.cpp:6347: note: trimmed 1 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-stress/llvm-stress.cpp:438: var_decl: Declaring variable "RandomFloat". +llvm-17.0.6.src/tools/llvm-stress/llvm-stress.cpp:441: uninit_use_in_call: Using uninitialized value "RandomFloat.U" when calling "~APFloat". +# 439| +# 440| if (getRandom() & 1) +# 441|-> return PT->push_back(ConstantFP::getZero(Ty)); +# 442| return PT->push_back(ConstantFP::get(Ty->getContext(), RandomFloat)); +# 443| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-stress/llvm-stress.cpp:438: var_decl: Declaring variable "RandomFloat". +llvm-17.0.6.src/tools/llvm-stress/llvm-stress.cpp:442: uninit_use_in_call: Using uninitialized value "RandomFloat.U" when calling "get". +# 440| if (getRandom() & 1) +# 441| return PT->push_back(ConstantFP::getZero(Ty)); +# 442|-> return PT->push_back(ConstantFP::get(Ty->getContext(), RandomFloat)); +# 443| } +# 444| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-tapi-diff/DiffEngine.cpp:287: var_decl: Declaring variable "Diff". +llvm-17.0.6.src/tools/llvm-tapi-diff/DiffEngine.cpp:293: uninit_use: Using uninitialized value "Diff". Field "Diff.Kind" is uninitialized. +# 291| Diff.Values.push_back(std::make_unique(RHS)); +# 292| } +# 293|-> return Diff; +# 294| } +# 295| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-xray/xray-converter.cpp:190: var_decl: Declaring variable "Siblings". +llvm-17.0.6.src/tools/llvm-xray/xray-converter.cpp:201: uninit_use: Using uninitialized value "Siblings". Field "Siblings.InlineElts" is uninitialized. +# 199| } +# 200| } +# 201|-> return Siblings; +# 202| } +# 203| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-xray/xray-converter.cpp:190: var_decl: Declaring variable "Siblings". +llvm-17.0.6.src/tools/llvm-xray/xray-converter.cpp:209: uninit_use: Using uninitialized value "Siblings". Field "Siblings.InlineElts" is uninitialized. +# 207| Siblings.push_back(node_iter); +# 208| +# 209|-> return Siblings; +# 210| } +# 211| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/llvm-xray/xray-stacks.cpp:523: var_decl: Declaring variable "MergedByThreadRoots". +llvm-17.0.6.src/tools/llvm-xray/xray-stacks.cpp:540: uninit_use: Using uninitialized value "MergedByThreadRoots". Field "MergedByThreadRoots.InlineElts" is uninitialized. +# 538| } +# 539| } +# 540|-> return MergedByThreadRoots; +# 541| } +# 542| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:225: var_decl: Declaring variable "YAMLFD" without initializer. +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:231: uninit_use_in_call: Using uninitialized value "YAMLFD". Field "YAMLFD.unused" is uninitialized when calling "operator =". +# 229| YAMLFD.PointerToNextFunction = ObjFD->PointerToNextFunction; +# 230| +# 231|-> Sym->FunctionDefinition = YAMLFD; +# 232| } +# 233| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:237: var_decl: Declaring variable "YAMLAAS" without initializer. +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:241: uninit_use_in_call: Using uninitialized value "YAMLAAS". Field "YAMLAAS.unused1" is uninitialized when calling "operator =". +# 239| YAMLAAS.PointerToNextFunction = ObjBES->PointerToNextFunction; +# 240| +# 241|-> Sym->bfAndefSymbol = YAMLAAS; +# 242| } +# 243| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:246: var_decl: Declaring variable "YAMLWE" without initializer. +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:250: uninit_use_in_call: Using uninitialized value "YAMLWE". Field "YAMLWE.unused" is uninitialized when calling "operator =". +# 248| YAMLWE.Characteristics = ObjWE->Characteristics; +# 249| +# 250|-> Sym->WeakExternal = YAMLWE; +# 251| } +# 252| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:257: var_decl: Declaring variable "YAMLASD" without initializer. +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:266: uninit_use_in_call: Using uninitialized value "YAMLASD". Field "YAMLASD.unused" is uninitialized when calling "operator =". +# 264| YAMLASD.Selection = ObjSD->Selection; +# 265| +# 266|-> Sym->SectionDefinition = YAMLASD; +# 267| } +# 268| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:272: var_decl: Declaring variable "YAMLCLRToken" without initializer. +llvm-17.0.6.src/tools/obj2yaml/coff2yaml.cpp:276: uninit_use_in_call: Using uninitialized value "YAMLCLRToken". Field "YAMLCLRToken.unused1" is uninitialized when calling "operator =". +# 274| YAMLCLRToken.SymbolTableIndex = ObjCLRToken->SymbolTableIndex; +# 275| +# 276|-> Sym->CLRToken = YAMLCLRToken; +# 277| } +# 278| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/obj2yaml/dwarf2yaml.cpp:40: var_decl: Declaring variable "AttAbrv" without initializer. +llvm-17.0.6.src/tools/obj2yaml/dwarf2yaml.cpp:45: uninit_use_in_call: Using uninitialized value "AttAbrv". Field "AttAbrv.Value" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 43| if (AttAbrv.Form == dwarf::DW_FORM_implicit_const) +# 44| AttAbrv.Value = Attribute.getImplicitConstValue(); +# 45|-> Abbrv.Attributes.push_back(AttAbrv); +# 46| } +# 47| Y.DebugAbbrev.back().Table.push_back(Abbrv); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/obj2yaml/wasm2yaml.cpp:128: var_decl: Declaring variable "Info". +llvm-17.0.6.src/tools/obj2yaml/wasm2yaml.cpp:147: uninit_use_in_call: Using uninitialized value "Info". Field "Info" is uninitialized when calling "emplace_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 145| break; +# 146| } +# 147|-> LinkingSec->SymbolTable.emplace_back(Info); +# 148| } +# 149| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/obj2yaml/wasm2yaml.cpp:234: var_decl: Declaring variable "Im". +llvm-17.0.6.src/tools/obj2yaml/wasm2yaml.cpp:258: uninit_use_in_call: Using uninitialized value "Im". Field "Im" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 256| break; +# 257| } +# 258|-> ImportSec->Imports.push_back(Im); +# 259| } +# 260| S = std::move(ImportSec); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/tools/sancov/sancov.cpp:576: var_decl: Declaring variable "Point". +llvm-17.0.6.src/tools/sancov/sancov.cpp:597: uninit_use_in_call: Using uninitialized value "Point". Field "Point.Locs.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 595| } +# 596| +# 597|-> Result.push_back(Point); +# 598| } +# 599| +llvm-17.0.6.src/tools/sancov/sancov.cpp:597: note: trimmed 3 message(s) with length over 512 + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:779: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.75f)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:779: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 777| +# 778| // Simple exact fraction +# 779|-> Val = APFloat(0.75f); +# 780| CheckFloatToFixedConversion(Val, getSAccumSema(), 3ULL << 5); +# 781| CheckFloatToFixedConversion(Val, getAccumSema(), 3ULL << 13); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:802: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.75f)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:802: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 800| +# 801| // Simple negative exact fraction +# 802|-> Val = APFloat(-0.75f); +# 803| CheckFloatToFixedConversion(Val, getSAccumSema(), -3ULL << 5); +# 804| CheckFloatToFixedConversion(Val, getAccumSema(), -3ULL << 13); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:825: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1f)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:825: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 823| +# 824| // Highly precise fraction +# 825|-> Val = APFloat(0.999999940395355224609375f); +# 826| CheckFloatToFixedConversion(Val, getSAccumSema(), 0x7FULL); +# 827| CheckFloatToFixedConversion(Val, getAccumSema(), 0x7FFFULL); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:848: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(17.9961f)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:848: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 846| +# 847| // Integral and fraction +# 848|-> Val = APFloat(17.99609375f); +# 849| CheckFloatToFixedConversion(Val, getSAccumSema(), 0x11FFULL >> 1); +# 850| CheckFloatToFixedConversion(Val, getAccumSema(), 0x11FFULL << 7); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:871: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-17.9961f)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:871: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 869| +# 870| // Negative integral and fraction +# 871|-> Val = APFloat(-17.99609375f); +# 872| CheckFloatToFixedConversion(Val, getSAccumSema(), -0x11FELL >> 1); +# 873| CheckFloatToFixedConversion(Val, getAccumSema(), -0x11FFULL << 7); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:894: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1e+38f)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:894: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 892| +# 893| // Very large value +# 894|-> Val = APFloat(1.0e38f); +# 895| CheckFloatToFixedConversion(Val, getSAccumSema(), MaxSat); +# 896| CheckFloatToFixedConversion(Val, getAccumSema(), MaxSat); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:917: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1e-38f)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:917: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 915| +# 916| // Very small value +# 917|-> Val = APFloat(1.0e-38f); +# 918| CheckFloatToFixedConversion(Val, getSAccumSema(), 0); +# 919| CheckFloatToFixedConversion(Val, getAccumSema(), 0); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:940: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.999512f)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:940: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 938| +# 939| // Half conversion +# 940|-> Val = APFloat(0.99951171875f); +# 941| bool Ignored; +# 942| Val.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &Ignored); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:965: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.124996)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:965: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 963| CheckFloatToFixedConversion(Val, getS32Pos2(), 0); +# 964| +# 965|-> Val = APFloat(0.124996185302734375); +# 966| CheckFloatToFixedConversion(Val, getU8Neg10(), 0x7f); +# 967| CheckFloatToFixedConversion(Val, getU8Pos4(), 0); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:971: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.124996)". +llvm-17.0.6.src/unittests/ADT/APFixedPointTest.cpp:971: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 969| CheckFloatToFixedConversion(Val, getS32Pos2(), 0); +# 970| +# 971|-> Val = APFloat(-0.124996185302734375); +# 972| CheckFloatToFixedConversion(Val, getU8Neg10(), MinSat); +# 973| CheckFloatToFixedConversion(Val, getU8Pos4(), 0); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:26: var_decl: Declaring variable "F". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:27: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromString". +# 25| static std::string convertToErrorFromString(StringRef Str) { +# 26| llvm::APFloat F(0.0); +# 27|-> auto StatusOrErr = +# 28| F.convertFromString(Str, llvm::APFloat::rmNearestTiesToEven); +# 29| EXPECT_TRUE(!StatusOrErr); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:34: var_decl: Declaring variable "F". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:35: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromString". +# 33| static double convertToDoubleFromString(StringRef Str) { +# 34| llvm::APFloat F(0.0); +# 35|-> auto StatusOrErr = +# 36| F.convertFromString(Str, llvm::APFloat::rmNearestTiesToEven); +# 37| EXPECT_FALSE(!StatusOrErr); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:45: var_decl: Declaring variable "F". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:46: uninit_use_in_call: Using uninitialized value "F.U" when calling "toString". +# 44| llvm::SmallVector Buffer; +# 45| llvm::APFloat F(d); +# 46|-> F.toString(Buffer, Prec, Pad, Tr); +# 47| return std::string(Buffer.data(), Buffer.size()); +# 48| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:483: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:486: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 484| APFloat f2(-14.5f); +# 485| APFloat f3(225.0f); +# 486|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); +# 487| EXPECT_EQ(14.75f, f1.convertToFloat()); +# 488| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:492: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:494: uninit_use_in_call: Using uninitialized value "f1.U" when calling "divide". +# 492| APFloat f1((float)1.17549435e-38F); +# 493| APFloat f2((float)1.17549435e-38F); +# 494|-> f1.divide(Val2, rdmd); +# 495| f2.divide(Val2, rdmd); +# 496| APFloat f3(12.0f); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:493: var_decl: Declaring variable "f2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:495: uninit_use_in_call: Using uninitialized value "f2.U" when calling "divide". +# 493| APFloat f2((float)1.17549435e-38F); +# 494| f1.divide(Val2, rdmd); +# 495|-> f2.divide(Val2, rdmd); +# 496| APFloat f3(12.0f); +# 497| f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:504: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:507: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 505| APFloat f2(-1.0); +# 506| APFloat f3(1.0); +# 507|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); +# 508| EXPECT_TRUE(!f1.isNegative() && f1.isZero()); +# 509| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:515: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:518: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 516| APFloat f2(-1.0); +# 517| APFloat f3(1.0); +# 518|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmTowardNegative); +# 519| EXPECT_TRUE(f1.isNegative() && f1.isZero()); +# 520| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:525: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:528: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 526| APFloat f2(-0.0); +# 527| APFloat f3(-0.0); +# 528|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); +# 529| EXPECT_TRUE(f1.isNegative() && f1.isZero()); +# 530| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:544: var_decl: Declaring variable "M2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:552: uninit_use_in_call: Using uninitialized value "M2.U" when calling "~APFloat". +# 550| EXPECT_FALSE(losesInfo); +# 551| EXPECT_EQ(4.0f, M1.convertToFloat()); +# 552|-> } +# 553| +# 554| // Regression test that failed an assertion. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:556: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:559: uninit_use_in_call: Using uninitialized value "f1.U" when calling "fusedMultiplyAdd". +# 557| APFloat f2(2.0f); +# 558| APFloat f3(8.85242279E-41f); +# 559|-> f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); +# 560| EXPECT_EQ(-8.85242279E-41f, f1.convertToFloat()); +# 561| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:573: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:577: uninit_use_in_call: Using uninitialized value "f1.U" when calling "minnum". +# 575| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 576| +# 577|-> EXPECT_EQ(1.0, minnum(f1, f2).convertToDouble()); +# 578| EXPECT_EQ(1.0, minnum(f2, f1).convertToDouble()); +# 579| EXPECT_EQ(1.0, minnum(f1, nan).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:574: var_decl: Declaring variable "f2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:577: uninit_use_in_call: Using uninitialized value "f2.U" when calling "minnum". +# 575| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 576| +# 577|-> EXPECT_EQ(1.0, minnum(f1, f2).convertToDouble()); +# 578| EXPECT_EQ(1.0, minnum(f2, f1).convertToDouble()); +# 579| EXPECT_EQ(1.0, minnum(f1, nan).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:584: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:588: uninit_use_in_call: Using uninitialized value "f1.U" when calling "maxnum". +# 586| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 587| +# 588|-> EXPECT_EQ(2.0, maxnum(f1, f2).convertToDouble()); +# 589| EXPECT_EQ(2.0, maxnum(f2, f1).convertToDouble()); +# 590| EXPECT_EQ(1.0, maxnum(f1, nan).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:585: var_decl: Declaring variable "f2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:588: uninit_use_in_call: Using uninitialized value "f2.U" when calling "maxnum". +# 586| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 587| +# 588|-> EXPECT_EQ(2.0, maxnum(f1, f2).convertToDouble()); +# 589| EXPECT_EQ(2.0, maxnum(f2, f1).convertToDouble()); +# 590| EXPECT_EQ(1.0, maxnum(f1, nan).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:595: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:601: uninit_use_in_call: Using uninitialized value "f1.U" when calling "minimum". +# 599| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 600| +# 601|-> EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 602| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 603| EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:596: var_decl: Declaring variable "f2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:601: uninit_use_in_call: Using uninitialized value "f2.U" when calling "minimum". +# 599| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 600| +# 601|-> EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 602| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 603| EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:596: var_decl: Declaring variable "f2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:602: uninit_use_in_call: Using uninitialized value "f2.U" when calling "minimum". +# 600| +# 601| EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 602|-> EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 603| EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); +# 604| EXPECT_EQ(-0.0, minimum(zn, zp).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:598: var_decl: Declaring variable "zn". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:603: uninit_use_in_call: Using uninitialized value "zn.U" when calling "minimum". +# 601| EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 602| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 603|-> EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); +# 604| EXPECT_EQ(-0.0, minimum(zn, zp).convertToDouble()); +# 605| EXPECT_TRUE(std::isnan(minimum(f1, nan).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:597: var_decl: Declaring variable "zp". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:603: uninit_use_in_call: Using uninitialized value "zp.U" when calling "minimum". +# 601| EXPECT_EQ(1.0, minimum(f1, f2).convertToDouble()); +# 602| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 603|-> EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); +# 604| EXPECT_EQ(-0.0, minimum(zn, zp).convertToDouble()); +# 605| EXPECT_TRUE(std::isnan(minimum(f1, nan).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:598: var_decl: Declaring variable "zn". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:604: uninit_use_in_call: Using uninitialized value "zn.U" when calling "minimum". +# 602| EXPECT_EQ(1.0, minimum(f2, f1).convertToDouble()); +# 603| EXPECT_EQ(-0.0, minimum(zp, zn).convertToDouble()); +# 604|-> EXPECT_EQ(-0.0, minimum(zn, zp).convertToDouble()); +# 605| EXPECT_TRUE(std::isnan(minimum(f1, nan).convertToDouble())); +# 606| EXPECT_TRUE(std::isnan(minimum(nan, f1).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:610: var_decl: Declaring variable "f1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:616: uninit_use_in_call: Using uninitialized value "f1.U" when calling "maximum". +# 614| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 615| +# 616|-> EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 617| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 618| EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:611: var_decl: Declaring variable "f2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:616: uninit_use_in_call: Using uninitialized value "f2.U" when calling "maximum". +# 614| APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); +# 615| +# 616|-> EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 617| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 618| EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:611: var_decl: Declaring variable "f2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:617: uninit_use_in_call: Using uninitialized value "f2.U" when calling "maximum". +# 615| +# 616| EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 617|-> EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 618| EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); +# 619| EXPECT_EQ(0.0, maximum(zn, zp).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:613: var_decl: Declaring variable "zn". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:618: uninit_use_in_call: Using uninitialized value "zn.U" when calling "maximum". +# 616| EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 617| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 618|-> EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); +# 619| EXPECT_EQ(0.0, maximum(zn, zp).convertToDouble()); +# 620| EXPECT_TRUE(std::isnan(maximum(f1, nan).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:612: var_decl: Declaring variable "zp". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:618: uninit_use_in_call: Using uninitialized value "zp.U" when calling "maximum". +# 616| EXPECT_EQ(2.0, maximum(f1, f2).convertToDouble()); +# 617| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 618|-> EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); +# 619| EXPECT_EQ(0.0, maximum(zn, zp).convertToDouble()); +# 620| EXPECT_TRUE(std::isnan(maximum(f1, nan).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:613: var_decl: Declaring variable "zn". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:619: uninit_use_in_call: Using uninitialized value "zn.U" when calling "maximum". +# 617| EXPECT_EQ(2.0, maximum(f2, f1).convertToDouble()); +# 618| EXPECT_EQ(0.0, maximum(zp, zn).convertToDouble()); +# 619|-> EXPECT_EQ(0.0, maximum(zn, zp).convertToDouble()); +# 620| EXPECT_TRUE(std::isnan(maximum(f1, nan).convertToDouble())); +# 621| EXPECT_TRUE(std::isnan(maximum(nan, f1).convertToDouble())); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:631: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEsingle(), 0UL)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:631: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 629| const char *MinNormalStr = "1.17549435082228750797e-38"; +# 630| EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), MinNormalStr).isDenormal()); +# 631|-> EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), 0).isDenormal()); +# 632| +# 633| APFloat Val2(APFloat::IEEEsingle(), 2); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:652: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEdouble(), 0UL)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:652: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 650| const char *MinNormalStr = "2.22507385850720138309e-308"; +# 651| EXPECT_FALSE(APFloat(APFloat::IEEEdouble(), MinNormalStr).isDenormal()); +# 652|-> EXPECT_FALSE(APFloat(APFloat::IEEEdouble(), 0).isDenormal()); +# 653| +# 654| APFloat Val2(APFloat::IEEEdouble(), 2); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:665: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::x87DoubleExtended(), 0UL)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:665: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 663| const char *MinNormalStr = "3.36210314311209350626e-4932"; +# 664| EXPECT_FALSE(APFloat(APFloat::x87DoubleExtended(), MinNormalStr).isDenormal()); +# 665|-> EXPECT_FALSE(APFloat(APFloat::x87DoubleExtended(), 0).isDenormal()); +# 666| +# 667| APFloat Val2(APFloat::x87DoubleExtended(), 2); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:678: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::IEEEquad(), 0UL)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:678: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 676| const char *MinNormalStr = "3.36210314311209350626267781732175260e-4932"; +# 677| EXPECT_FALSE(APFloat(APFloat::IEEEquad(), MinNormalStr).isDenormal()); +# 678|-> EXPECT_FALSE(APFloat(APFloat::IEEEquad(), 0).isDenormal()); +# 679| +# 680| APFloat Val2(APFloat::IEEEquad(), 2); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:691: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::FloatTF32(), 0UL)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:691: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 689| const char *MinNormalStr = "1.17549435082228750797e-38"; +# 690| EXPECT_FALSE(APFloat(APFloat::FloatTF32(), MinNormalStr).isDenormal()); +# 691|-> EXPECT_FALSE(APFloat(APFloat::FloatTF32(), 0).isDenormal()); +# 692| +# 693| APFloat Val2(APFloat::FloatTF32(), 2); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:762: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0f)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:762: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 760| +# 761| TEST(APFloatTest, Zero) { +# 762|-> EXPECT_EQ(0.0f, APFloat(0.0f).convertToFloat()); +# 763| EXPECT_EQ(-0.0f, APFloat(-0.0f).convertToFloat()); +# 764| EXPECT_TRUE(APFloat(-0.0f).isNegative()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:763: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0f)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:763: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 761| TEST(APFloatTest, Zero) { +# 762| EXPECT_EQ(0.0f, APFloat(0.0f).convertToFloat()); +# 763|-> EXPECT_EQ(-0.0f, APFloat(-0.0f).convertToFloat()); +# 764| EXPECT_TRUE(APFloat(-0.0f).isNegative()); +# 765| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:764: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0f)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:764: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 762| EXPECT_EQ(0.0f, APFloat(0.0f).convertToFloat()); +# 763| EXPECT_EQ(-0.0f, APFloat(-0.0f).convertToFloat()); +# 764|-> EXPECT_TRUE(APFloat(-0.0f).isNegative()); +# 765| +# 766| EXPECT_EQ(0.0, APFloat(0.0).convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:766: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:766: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 764| EXPECT_TRUE(APFloat(-0.0f).isNegative()); +# 765| +# 766|-> EXPECT_EQ(0.0, APFloat(0.0).convertToDouble()); +# 767| EXPECT_EQ(-0.0, APFloat(-0.0).convertToDouble()); +# 768| EXPECT_TRUE(APFloat(-0.0).isNegative()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:767: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:767: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 765| +# 766| EXPECT_EQ(0.0, APFloat(0.0).convertToDouble()); +# 767|-> EXPECT_EQ(-0.0, APFloat(-0.0).convertToDouble()); +# 768| EXPECT_TRUE(APFloat(-0.0).isNegative()); +# 769| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:768: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:768: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 766| EXPECT_EQ(0.0, APFloat(0.0).convertToDouble()); +# 767| EXPECT_EQ(-0.0, APFloat(-0.0).convertToDouble()); +# 768|-> EXPECT_TRUE(APFloat(-0.0).isNegative()); +# 769| +# 770| EXPECT_EQ(fcPosZero, APFloat(0.0).classify()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:770: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:770: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 768| EXPECT_TRUE(APFloat(-0.0).isNegative()); +# 769| +# 770|-> EXPECT_EQ(fcPosZero, APFloat(0.0).classify()); +# 771| EXPECT_EQ(fcNegZero, APFloat(-0.0).classify()); +# 772| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:771: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-0.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:771: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 769| +# 770| EXPECT_EQ(fcPosZero, APFloat(0.0).classify()); +# 771|-> EXPECT_EQ(fcNegZero, APFloat(-0.0).classify()); +# 772| } +# 773| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1101: var_decl: Declaring variable "F". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1102: uninit_use_in_call: Using uninitialized value "F.U" when calling "convertFromString". +# 1100| +# 1101| APFloat F(Sem); +# 1102|-> bool HasError = !F.convertFromString( +# 1103| TestStr, llvm::APFloat::rmNearestTiesToEven); +# 1104| EXPECT_FALSE(HasError); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1269: var_decl: Declaring variable "UnnormalZero". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1270: uninit_use_in_call: Using uninitialized value "UnnormalZero.U" when calling "toString". +# 1268| SmallString<64> Str; +# 1269| APFloat UnnormalZero(APFloat::x87DoubleExtended(), APInt(80, {0, 1})); +# 1270|-> UnnormalZero.toString(Str); +# 1271| ASSERT_EQ("NaN", Str); +# 1272| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1571: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1571: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1569| +# 1570| // Trivial operation. +# 1571|-> EXPECT_TRUE(APFloat(2.0).getExactInverse(&inv)); +# 1572| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5))); +# 1573| EXPECT_TRUE(APFloat(2.0f).getExactInverse(&inv)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1572: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.5)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1572: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1570| // Trivial operation. +# 1571| EXPECT_TRUE(APFloat(2.0).getExactInverse(&inv)); +# 1572|-> EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5))); +# 1573| EXPECT_TRUE(APFloat(2.0f).getExactInverse(&inv)); +# 1574| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5f))); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1573: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2f)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1573: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1571| EXPECT_TRUE(APFloat(2.0).getExactInverse(&inv)); +# 1572| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5))); +# 1573|-> EXPECT_TRUE(APFloat(2.0f).getExactInverse(&inv)); +# 1574| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5f))); +# 1575| EXPECT_TRUE(APFloat(APFloat::IEEEquad(), "2.0").getExactInverse(&inv)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1574: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.5f)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1574: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1572| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5))); +# 1573| EXPECT_TRUE(APFloat(2.0f).getExactInverse(&inv)); +# 1574|-> EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5f))); +# 1575| EXPECT_TRUE(APFloat(APFloat::IEEEquad(), "2.0").getExactInverse(&inv)); +# 1576| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(APFloat::IEEEquad(), "0.5"))); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1583: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.17549e-38f)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1583: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1581| +# 1582| // FLT_MIN +# 1583|-> EXPECT_TRUE(APFloat(1.17549435e-38f).getExactInverse(&inv)); +# 1584| EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(8.5070592e+37f))); +# 1585| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1584: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(8.50706e+37f)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1584: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1582| // FLT_MIN +# 1583| EXPECT_TRUE(APFloat(1.17549435e-38f).getExactInverse(&inv)); +# 1584|-> EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(8.5070592e+37f))); +# 1585| +# 1586| // Large float, inverse is a denormal. + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1587: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.70141e+38f)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1587: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1585| +# 1586| // Large float, inverse is a denormal. +# 1587|-> EXPECT_FALSE(APFloat(1.7014118e38f).getExactInverse(nullptr)); +# 1588| // Zero +# 1589| EXPECT_FALSE(APFloat(0.0).getExactInverse(nullptr)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1589: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(0.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1589: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1587| EXPECT_FALSE(APFloat(1.7014118e38f).getExactInverse(nullptr)); +# 1588| // Zero +# 1589|-> EXPECT_FALSE(APFloat(0.0).getExactInverse(nullptr)); +# 1590| // Denormalized float +# 1591| EXPECT_FALSE(APFloat(1.40129846e-45f).getExactInverse(nullptr)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1591: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.4013e-45f)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1591: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1589| EXPECT_FALSE(APFloat(0.0).getExactInverse(nullptr)); +# 1590| // Denormalized float +# 1591|-> EXPECT_FALSE(APFloat(1.40129846e-45f).getExactInverse(nullptr)); +# 1592| } +# 1593| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1595: var_decl: Declaring variable "T". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1597: uninit_use_in_call: Using uninitialized value "T.U" when calling "operator =". +# 1595| APFloat T(-0.5), S(3.14), R(APFloat::getLargest(APFloat::IEEEdouble())), P(0.0); +# 1596| +# 1597|-> P = T; +# 1598| P.roundToIntegral(APFloat::rmTowardZero); +# 1599| EXPECT_EQ(-0.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1595: var_decl: Declaring variable "S". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1610: uninit_use_in_call: Using uninitialized value "S.U" when calling "operator =". +# 1608| EXPECT_EQ(-0.0, P.convertToDouble()); +# 1609| +# 1610|-> P = S; +# 1611| P.roundToIntegral(APFloat::rmTowardZero); +# 1612| EXPECT_EQ(3.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1716: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1e-100.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1716: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1714| EXPECT_EQ(APFloat::opOK, St); +# 1715| +# 1716|-> P = APFloat(1E-100); +# 1717| St = P.roundToIntegral(APFloat::rmTowardNegative); +# 1718| EXPECT_TRUE(P.isZero()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1722: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1e-100.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1722: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1720| EXPECT_EQ(APFloat::opInexact, St); +# 1721| +# 1722|-> P = APFloat(1E-100); +# 1723| St = P.roundToIntegral(APFloat::rmTowardPositive); +# 1724| EXPECT_EQ(1.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1728: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1e-100.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1728: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1726| EXPECT_EQ(APFloat::opInexact, St); +# 1727| +# 1728|-> P = APFloat(-1E-100); +# 1729| St = P.roundToIntegral(APFloat::rmTowardNegative); +# 1730| EXPECT_TRUE(P.isNegative()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1734: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1e-100.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1734: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1732| EXPECT_EQ(APFloat::opInexact, St); +# 1733| +# 1734|-> P = APFloat(-1E-100); +# 1735| St = P.roundToIntegral(APFloat::rmTowardPositive); +# 1736| EXPECT_TRUE(P.isZero()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1740: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1740: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1738| EXPECT_EQ(APFloat::opInexact, St); +# 1739| +# 1740|-> P = APFloat(10.0); +# 1741| St = P.roundToIntegral(APFloat::rmTowardZero); +# 1742| EXPECT_EQ(10.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1745: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1745: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1743| EXPECT_EQ(APFloat::opOK, St); +# 1744| +# 1745|-> P = APFloat(10.5); +# 1746| St = P.roundToIntegral(APFloat::rmTowardZero); +# 1747| EXPECT_EQ(10.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1750: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1750: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1748| EXPECT_EQ(APFloat::opInexact, St); +# 1749| +# 1750|-> P = APFloat(10.5); +# 1751| St = P.roundToIntegral(APFloat::rmTowardPositive); +# 1752| EXPECT_EQ(11.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1755: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1755: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1753| EXPECT_EQ(APFloat::opInexact, St); +# 1754| +# 1755|-> P = APFloat(10.5); +# 1756| St = P.roundToIntegral(APFloat::rmTowardNegative); +# 1757| EXPECT_EQ(10.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1760: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1760: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1758| EXPECT_EQ(APFloat::opInexact, St); +# 1759| +# 1760|-> P = APFloat(10.5); +# 1761| St = P.roundToIntegral(APFloat::rmNearestTiesToAway); +# 1762| EXPECT_EQ(11.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1765: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(10.5)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1765: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1763| EXPECT_EQ(APFloat::opInexact, St); +# 1764| +# 1765|-> P = APFloat(10.5); +# 1766| St = P.roundToIntegral(APFloat::rmNearestTiesToEven); +# 1767| EXPECT_EQ(10.0, P.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1772: var_decl: Declaring variable "T". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1773: uninit_use_in_call: Using uninitialized value "T.U" when calling "isInteger". +# 1771| TEST(APFloatTest, isInteger) { +# 1772| APFloat T(-0.0); +# 1773|-> EXPECT_TRUE(T.isInteger()); +# 1774| T = APFloat(3.14159); +# 1775| EXPECT_FALSE(T.isInteger()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1774: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(3.14159)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:1774: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 1772| APFloat T(-0.0); +# 1773| EXPECT_TRUE(T.isInteger()); +# 1774|-> T = APFloat(3.14159); +# 1775| EXPECT_FALSE(T.isInteger()); +# 1776| T = APFloat::getNaN(APFloat::IEEEdouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2011: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2011: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2009| +# 2010| TEST(APFloatTest, copySign) { +# 2011|-> EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( +# 2012| APFloat::copySign(APFloat(42.0), APFloat(-1.0)))); +# 2013| EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2013: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-42.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2013: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2011| EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( +# 2012| APFloat::copySign(APFloat(42.0), APFloat(-1.0)))); +# 2013|-> EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( +# 2014| APFloat::copySign(APFloat(-42.0), APFloat(1.0)))); +# 2015| EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2015: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2015: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2013| EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( +# 2014| APFloat::copySign(APFloat(-42.0), APFloat(1.0)))); +# 2015|-> EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( +# 2016| APFloat::copySign(APFloat(-42.0), APFloat(-1.0)))); +# 2017| EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2017: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2017: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2015| EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( +# 2016| APFloat::copySign(APFloat(-42.0), APFloat(-1.0)))); +# 2017|-> EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( +# 2018| APFloat::copySign(APFloat(42.0), APFloat(1.0)))); +# 2019| // For floating-point formats with unsigned 0, copySign() to a zero is a noop + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2023: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(-1.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2023: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2021| {APFloat::S_Float8E4M3FNUZ, APFloat::S_Float8E4M3B11FNUZ}) { +# 2022| const llvm::fltSemantics &Sem = APFloat::EnumToSemantics(S); +# 2023|-> EXPECT_TRUE(APFloat::getZero(Sem).bitwiseIsEqual( +# 2024| APFloat::copySign(APFloat::getZero(Sem), APFloat(-1.0)))); +# 2025| EXPECT_TRUE(APFloat::getNaN(Sem, true).bitwiseIsEqual( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2025: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(1.)". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:2025: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 2023| EXPECT_TRUE(APFloat::getZero(Sem).bitwiseIsEqual( +# 2024| APFloat::copySign(APFloat::getZero(Sem), APFloat(-1.0)))); +# 2025|-> EXPECT_TRUE(APFloat::getNaN(Sem, true).bitwiseIsEqual( +# 2026| APFloat::copySign(APFloat::getNaN(Sem, true), APFloat(1.0)))); +# 2027| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:3775: var_decl: Declaring variable "One". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:3823: uninit_use_in_call: Using uninitialized value "One.U" when calling "frexp". +# 3821| +# 3822| +# 3823|-> Frac = frexp(One, Exp, RM); +# 3824| EXPECT_EQ(1, Exp); +# 3825| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p-1").bitwiseIsEqual(Frac)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:3776: var_decl: Declaring variable "MOne". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:3827: uninit_use_in_call: Using uninitialized value "MOne.U" when calling "frexp". +# 3825| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p-1").bitwiseIsEqual(Frac)); +# 3826| +# 3827|-> Frac = frexp(MOne, Exp, RM); +# 3828| EXPECT_EQ(1, Exp); +# 3829| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-0x1p-1").bitwiseIsEqual(Frac)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:3778: var_decl: Declaring variable "MTwo". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:3894: uninit_use_in_call: Using uninitialized value "MTwo.U" when calling "~APFloat". +# 3892| EXPECT_EQ(52, Exp); +# 3893| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp-1").bitwiseIsEqual(Frac)); +# 3894|-> } +# 3895| +# 3896| TEST(APFloatTest, mod) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:3777: var_decl: Declaring variable "Two". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:3894: uninit_use_in_call: Using uninitialized value "Two.U" when calling "~APFloat". +# 3892| EXPECT_EQ(52, Exp); +# 3893| EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp-1").bitwiseIsEqual(Frac)); +# 3894|-> } +# 3895| +# 3896| TEST(APFloatTest, mod) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4456: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4458: uninit_use_in_call: Using uninitialized value "A1.U" when calling "add". +# 4456| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4457| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4458|-> A1.add(A2, RM); +# 4459| +# 4460| EXPECT_EQ(Expected, A1.getCategory()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4467: var_decl: Declaring variable "A2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4468: uninit_use_in_call: Using uninitialized value "A2.U" when calling "add". +# 4466| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4467| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4468|-> A2.add(A1, RM); +# 4469| +# 4470| EXPECT_EQ(Expected, A2.getCategory()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4520: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4522: uninit_use_in_call: Using uninitialized value "A1.U" when calling "add". +# 4520| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4521| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4522|-> A1.add(A2, RM); +# 4523| +# 4524| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4535: var_decl: Declaring variable "A2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4536: uninit_use_in_call: Using uninitialized value "A2.U" when calling "add". +# 4534| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4535| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4536|-> A2.add(A1, RM); +# 4537| +# 4538| EXPECT_EQ(Expected[0], A2.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4569: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4571: uninit_use_in_call: Using uninitialized value "A1.U" when calling "subtract". +# 4569| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4570| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4571|-> A1.subtract(A2, RM); +# 4572| +# 4573| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4624: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4626: uninit_use_in_call: Using uninitialized value "A1.U" when calling "multiply". +# 4624| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4625| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4626|-> A1.multiply(A2, RM); +# 4627| +# 4628| EXPECT_EQ(Expected, A1.getCategory()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4635: var_decl: Declaring variable "A2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4636: uninit_use_in_call: Using uninitialized value "A2.U" when calling "multiply". +# 4634| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4635| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4636|-> A2.multiply(A1, RM); +# 4637| +# 4638| EXPECT_EQ(Expected, A2.getCategory()) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4697: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4699: uninit_use_in_call: Using uninitialized value "A1.U" when calling "multiply". +# 4697| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4698| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4699|-> A1.multiply(A2, RM); +# 4700| +# 4701| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4712: var_decl: Declaring variable "A2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4713: uninit_use_in_call: Using uninitialized value "A2.U" when calling "multiply". +# 4711| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4712| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4713|-> A2.multiply(A1, RM); +# 4714| +# 4715| EXPECT_EQ(Expected[0], A2.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4744: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4746: uninit_use_in_call: Using uninitialized value "A1.U" when calling "divide". +# 4744| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4745| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4746|-> A1.divide(A2, RM); +# 4747| +# 4748| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4777: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4779: uninit_use_in_call: Using uninitialized value "A1.U" when calling "remainder". +# 4777| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4778| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4779|-> A1.remainder(A2); +# 4780| +# 4781| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4812: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4814: uninit_use_in_call: Using uninitialized value "A1.U" when calling "mod". +# 4812| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4813| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4814|-> A1.mod(A2); +# 4815| +# 4816| EXPECT_EQ(Expected[0], A1.bitcastToAPInt().getRawData()[0]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4885: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4887: uninit_use_in_call: Using uninitialized value "A1.U" when calling "compare". +# 4885| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4886| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4887|-> EXPECT_EQ(Expected, A1.compare(A2)) +# 4888| << formatv("compare(({0:x} + {1:x}), ({2:x} + {3:x}))", Op1[0], Op1[1], +# 4889| Op2[0], Op2[1]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4917: var_decl: Declaring variable "A1". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4919: uninit_use_in_call: Using uninitialized value "A1.U" when calling "bitwiseIsEqual". +# 4917| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4918| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4919|-> EXPECT_EQ(Expected, A1.bitwiseIsEqual(A2)) +# 4920| << formatv("({0:x} + {1:x}) = ({2:x} + {3:x})", Op1[0], Op1[1], Op2[0], +# 4921| Op2[1]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4918: var_decl: Declaring variable "A2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4919: uninit_use_in_call: Using uninitialized value "A2.U" when calling "bitwiseIsEqual". +# 4917| APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); +# 4918| APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); +# 4919|-> EXPECT_EQ(Expected, A1.bitwiseIsEqual(A2)) +# 4920| << formatv("({0:x} + {1:x}) = ({2:x} + {3:x})", Op1[0], Op1[1], Op2[0], +# 4921| Op2[1]) + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4930: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, 2U, Data1))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4930: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 4928| uint64_t Data2[] = {0x3ff0000000000001ull, 0}; +# 4929| // The hash values are *hopefully* different. +# 4930|-> EXPECT_NE( +# 4931| hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data1))), +# 4932| hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data2)))); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4939: var_decl: Declaring variable "Float". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:4941: uninit_use_in_call: Using uninitialized value "Float.U" when calling "APFloat". +# 4939| APFloat Float(APFloat::PPCDoubleDouble(), APInt(128, 2, Data)); +# 4940| { +# 4941|-> APFloat Actual = +# 4942| APFloat::copySign(Float, APFloat(APFloat::IEEEdouble(), "1")); +# 4943| EXPECT_EQ(0x400f000000000000ull, Actual.bitcastToAPInt().getRawData()[0]); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5029: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, 2U, Data))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5029: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5027| 0x4010000000000000ull, 0x4008000000000000ull, +# 5028| }; +# 5029|-> EXPECT_TRUE( +# 5030| APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data)).isDenormal()); +# 5031| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5039: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, 2U, Input))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5039: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5037| 0x4008000000000000ull, 0x3cb8000000000000ull, +# 5038| }; +# 5039|-> APFloat Result = +# 5040| scalbn(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Input)), 1, +# 5041| APFloat::rmNearestTiesToEven); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5054: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::PPCDoubleDouble(), llvm::APInt(128U, 2U, Input))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5054: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5052| int Exp; +# 5053| // 0.75 + 0.75 << 53 +# 5054|-> APFloat Result = +# 5055| frexp(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Input)), Exp, +# 5056| APFloat::rmNearestTiesToEven); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5083: var_decl: Declaring variable "x". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5087: uninit_use_in_call: Using uninitialized value "x.U" when calling "APFloat". +# 5085| +# 5086| bool losesInfo; +# 5087|-> APFloat x16 = x; +# 5088| x16.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, +# 5089| &losesInfo); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5084: var_decl: Declaring variable "y". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5091: uninit_use_in_call: Using uninitialized value "y.U" when calling "APFloat". +# 5089| &losesInfo); +# 5090| EXPECT_FALSE(losesInfo); +# 5091|-> APFloat y16 = y; +# 5092| y16.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, +# 5093| &losesInfo); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5368: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i, false))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5368: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5366| // nextUp on positive numbers +# 5367| for (int i = 0; i < 127; i++) { +# 5368|-> test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5369| expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i + 1)); +# 5370| EXPECT_EQ(test.next(false), APFloat::opOK); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5369: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i + 1, false))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5369: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5367| for (int i = 0; i < 127; i++) { +# 5368| test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5369|-> expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i + 1)); +# 5370| EXPECT_EQ(test.next(false), APFloat::opOK); +# 5371| EXPECT_TRUE(test.bitwiseIsEqual(expected)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5382: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i, false))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5382: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5380| // nextUp on negative nonzero numbers +# 5381| for (int i = 129; i < 255; i++) { +# 5382|-> test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5383| expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i - 1)); +# 5384| EXPECT_EQ(test.next(false), APFloat::opOK); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5383: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i - 1, false))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5383: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5381| for (int i = 129; i < 255; i++) { +# 5382| test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5383|-> expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i - 1)); +# 5384| EXPECT_EQ(test.next(false), APFloat::opOK); +# 5385| EXPECT_TRUE(test.bitwiseIsEqual(expected)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5396: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i, false))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5396: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5394| // nextDown on positive nonzero finite numbers +# 5395| for (int i = 1; i < 127; i++) { +# 5396|-> test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5397| expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i - 1)); +# 5398| EXPECT_EQ(test.next(true), APFloat::opOK); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5397: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i - 1, false))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5397: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5395| for (int i = 1; i < 127; i++) { +# 5396| test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5397|-> expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i - 1)); +# 5398| EXPECT_EQ(test.next(true), APFloat::opOK); +# 5399| EXPECT_TRUE(test.bitwiseIsEqual(expected)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5410: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i, false))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5410: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5408| // nextDown on negative finite numbers +# 5409| for (int i = 128; i < 255; i++) { +# 5410|-> test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5411| expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i + 1)); +# 5412| EXPECT_EQ(test.next(true), APFloat::opOK); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5411: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(llvm::APFloatBase::Float8E4M3FN(), llvm::APInt(8U, i + 1, false))". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5411: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 5409| for (int i = 128; i < 255; i++) { +# 5410| test = APFloat(APFloat::Float8E4M3FN(), APInt(8, i)); +# 5411|-> expected = APFloat(APFloat::Float8E4M3FN(), APInt(8, i + 1)); +# 5412| EXPECT_EQ(test.next(true), APFloat::opOK); +# 5413| EXPECT_TRUE(test.bitwiseIsEqual(expected)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5426: var_decl: Declaring variable "test". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5431: uninit_use_in_call: Using uninitialized value "test.U" when calling "isLargest". +# 5429| // isLargest +# 5430| if (i == 126 || i == 254) { +# 5431|-> EXPECT_TRUE(test.isLargest()); +# 5432| EXPECT_EQ(abs(test).convertToDouble(), 448.); +# 5433| } else { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5426: var_decl: Declaring variable "test". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5434: uninit_use_in_call: Using uninitialized value "test.U" when calling "isLargest". +# 5432| EXPECT_EQ(abs(test).convertToDouble(), 448.); +# 5433| } else { +# 5434|-> EXPECT_FALSE(test.isLargest()); +# 5435| } +# 5436| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5676: var_decl: Declaring variable "test". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5680: uninit_use_in_call: Using uninitialized value "test.U" when calling "isLargest". +# 5678| // isLargest +# 5679| if (i == 127 || i == 255) { +# 5680|-> EXPECT_TRUE(test.isLargest()); +# 5681| EXPECT_EQ(abs(test).convertToDouble(), testInfo.largest); +# 5682| } else { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5676: var_decl: Declaring variable "test". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5683: uninit_use_in_call: Using uninitialized value "test.U" when calling "isLargest". +# 5681| EXPECT_EQ(abs(test).convertToDouble(), testInfo.largest); +# 5682| } else { +# 5683|-> EXPECT_FALSE(test.isLargest()); +# 5684| } +# 5685| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5973: var_decl: Declaring variable "test". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5975: uninit_use_in_call: Using uninitialized value "test.U" when calling "toString". +# 5973| APFloat test(APFloat::EnumToSemantics(S), APInt(8, i)); +# 5974| llvm::SmallString<128> str; +# 5975|-> test.toString(str); +# 5976| +# 5977| if (test.isNaN()) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5996: var_decl: Declaring variable "test". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:5997: uninit_use_in_call: Using uninitialized value "test.U" when calling "bitcastToAPInt". +# 5995| APInt bits_in = APInt(8, i); +# 5996| APFloat test(APFloat::EnumToSemantics(S), bits_in); +# 5997|-> APInt bits_out = test.bitcastToAPInt(); +# 5998| EXPECT_EQ(bits_in, bits_out); +# 5999| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6016: var_decl: Declaring variable "test2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6018: uninit_use_in_call: Using uninitialized value "test2.U" when calling "isNaN". +# 6016| APFloat test2 = APFloat(Sem, bits); +# 6017| if (test.isNaN()) { +# 6018|-> EXPECT_TRUE(test2.isNaN()); +# 6019| } else { +# 6020| EXPECT_TRUE(test.bitwiseIsEqual(test2)); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6016: var_decl: Declaring variable "test2". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6020: uninit_use_in_call: Using uninitialized value "test2.U" when calling "bitwiseIsEqual". +# 6018| EXPECT_TRUE(test2.isNaN()); +# 6019| } else { +# 6020|-> EXPECT_TRUE(test.bitwiseIsEqual(test2)); +# 6021| } +# 6022| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6028: var_decl: Declaring variable "DPosZero". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6029: uninit_use_in_call: Using uninitialized value "DPosZero.U" when calling "convertToDouble". +# 6027| TEST(APFloatTest, IEEEdoubleToDouble) { +# 6028| APFloat DPosZero(0.0); +# 6029|-> APFloat DPosZeroToDouble(DPosZero.convertToDouble()); +# 6030| EXPECT_TRUE(DPosZeroToDouble.isPosZero()); +# 6031| APFloat DNegZero(-0.0); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6029: var_decl: Declaring variable "DPosZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6030: uninit_use_in_call: Using uninitialized value "DPosZeroToDouble.U" when calling "isPosZero". +# 6028| APFloat DPosZero(0.0); +# 6029| APFloat DPosZeroToDouble(DPosZero.convertToDouble()); +# 6030|-> EXPECT_TRUE(DPosZeroToDouble.isPosZero()); +# 6031| APFloat DNegZero(-0.0); +# 6032| APFloat DNegZeroToDouble(DNegZero.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6031: var_decl: Declaring variable "DNegZero". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6032: uninit_use_in_call: Using uninitialized value "DNegZero.U" when calling "convertToDouble". +# 6030| EXPECT_TRUE(DPosZeroToDouble.isPosZero()); +# 6031| APFloat DNegZero(-0.0); +# 6032|-> APFloat DNegZeroToDouble(DNegZero.convertToDouble()); +# 6033| EXPECT_TRUE(DNegZeroToDouble.isNegZero()); +# 6034| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6032: var_decl: Declaring variable "DNegZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6033: uninit_use_in_call: Using uninitialized value "DNegZeroToDouble.U" when calling "isNegZero". +# 6031| APFloat DNegZero(-0.0); +# 6032| APFloat DNegZeroToDouble(DNegZero.convertToDouble()); +# 6033|-> EXPECT_TRUE(DNegZeroToDouble.isNegZero()); +# 6034| +# 6035| APFloat DOne(1.0); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6035: var_decl: Declaring variable "DOne". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6036: uninit_use_in_call: Using uninitialized value "DOne.U" when calling "convertToDouble". +# 6034| +# 6035| APFloat DOne(1.0); +# 6036|-> EXPECT_EQ(1.0, DOne.convertToDouble()); +# 6037| APFloat DPosLargest = APFloat::getLargest(APFloat::IEEEdouble(), false); +# 6038| EXPECT_EQ(std::numeric_limits::max(), DPosLargest.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6066: var_decl: Declaring variable "FPosZero". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6067: uninit_use_in_call: Using uninitialized value "FPosZero.U" when calling "convertToDouble". +# 6065| TEST(APFloatTest, IEEEsingleToDouble) { +# 6066| APFloat FPosZero(0.0F); +# 6067|-> APFloat FPosZeroToDouble(FPosZero.convertToDouble()); +# 6068| EXPECT_TRUE(FPosZeroToDouble.isPosZero()); +# 6069| APFloat FNegZero(-0.0F); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6067: var_decl: Declaring variable "FPosZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6068: uninit_use_in_call: Using uninitialized value "FPosZeroToDouble.U" when calling "isPosZero". +# 6066| APFloat FPosZero(0.0F); +# 6067| APFloat FPosZeroToDouble(FPosZero.convertToDouble()); +# 6068|-> EXPECT_TRUE(FPosZeroToDouble.isPosZero()); +# 6069| APFloat FNegZero(-0.0F); +# 6070| APFloat FNegZeroToDouble(FNegZero.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6069: var_decl: Declaring variable "FNegZero". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6070: uninit_use_in_call: Using uninitialized value "FNegZero.U" when calling "convertToDouble". +# 6068| EXPECT_TRUE(FPosZeroToDouble.isPosZero()); +# 6069| APFloat FNegZero(-0.0F); +# 6070|-> APFloat FNegZeroToDouble(FNegZero.convertToDouble()); +# 6071| EXPECT_TRUE(FNegZeroToDouble.isNegZero()); +# 6072| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6070: var_decl: Declaring variable "FNegZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6071: uninit_use_in_call: Using uninitialized value "FNegZeroToDouble.U" when calling "isNegZero". +# 6069| APFloat FNegZero(-0.0F); +# 6070| APFloat FNegZeroToDouble(FNegZero.convertToDouble()); +# 6071|-> EXPECT_TRUE(FNegZeroToDouble.isNegZero()); +# 6072| +# 6073| APFloat FOne(1.0F); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6073: var_decl: Declaring variable "FOne". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6074: uninit_use_in_call: Using uninitialized value "FOne.U" when calling "convertToDouble". +# 6072| +# 6073| APFloat FOne(1.0F); +# 6074|-> EXPECT_EQ(1.0, FOne.convertToDouble()); +# 6075| APFloat FPosLargest = APFloat::getLargest(APFloat::IEEEsingle(), false); +# 6076| EXPECT_EQ(std::numeric_limits::max(), FPosLargest.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6104: var_decl: Declaring variable "HPosZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6105: uninit_use_in_call: Using uninitialized value "HPosZeroToDouble.U" when calling "isPosZero". +# 6103| APFloat HPosZero = APFloat::getZero(APFloat::IEEEhalf()); +# 6104| APFloat HPosZeroToDouble(HPosZero.convertToDouble()); +# 6105|-> EXPECT_TRUE(HPosZeroToDouble.isPosZero()); +# 6106| APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6107| APFloat HNegZeroToDouble(HNegZero.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6107: var_decl: Declaring variable "HNegZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6108: uninit_use_in_call: Using uninitialized value "HNegZeroToDouble.U" when calling "isNegZero". +# 6106| APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6107| APFloat HNegZeroToDouble(HNegZero.convertToDouble()); +# 6108|-> EXPECT_TRUE(HNegZeroToDouble.isNegZero()); +# 6109| +# 6110| APFloat HOne(APFloat::IEEEhalf(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6139: var_decl: Declaring variable "BPosZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6140: uninit_use_in_call: Using uninitialized value "BPosZeroToDouble.U" when calling "isPosZero". +# 6138| APFloat BPosZero = APFloat::getZero(APFloat::IEEEhalf()); +# 6139| APFloat BPosZeroToDouble(BPosZero.convertToDouble()); +# 6140|-> EXPECT_TRUE(BPosZeroToDouble.isPosZero()); +# 6141| APFloat BNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6142| APFloat BNegZeroToDouble(BNegZero.convertToDouble()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6142: var_decl: Declaring variable "BNegZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6143: uninit_use_in_call: Using uninitialized value "BNegZeroToDouble.U" when calling "isNegZero". +# 6141| APFloat BNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6142| APFloat BNegZeroToDouble(BNegZero.convertToDouble()); +# 6143|-> EXPECT_TRUE(BNegZeroToDouble.isNegZero()); +# 6144| } +# 6145| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6312: var_decl: Declaring variable "PosZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6313: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6311| APFloat PosZero = APFloat::getZero(APFloat::Float8E5M2FNUZ()); +# 6312| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6313|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6314| // Negative zero is not supported +# 6315| APFloat NegZero = APFloat::getZero(APFloat::Float8E5M2FNUZ(), true); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6316: var_decl: Declaring variable "NegZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6317: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isPosZero". +# 6315| APFloat NegZero = APFloat::getZero(APFloat::Float8E5M2FNUZ(), true); +# 6316| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6317|-> EXPECT_TRUE(NegZeroToFloat.isPosZero()); +# 6318| APFloat One(APFloat::Float8E5M2FNUZ(), "1.0"); +# 6319| EXPECT_EQ(1.0F, One.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6344: var_decl: Declaring variable "PosZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6345: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6343| APFloat PosZero = APFloat::getZero(APFloat::Float8E4M3FNUZ()); +# 6344| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6345|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6346| // Negative zero is not supported +# 6347| APFloat NegZero = APFloat::getZero(APFloat::Float8E4M3FNUZ(), true); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6348: var_decl: Declaring variable "NegZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6349: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isPosZero". +# 6347| APFloat NegZero = APFloat::getZero(APFloat::Float8E4M3FNUZ(), true); +# 6348| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6349|-> EXPECT_TRUE(NegZeroToFloat.isPosZero()); +# 6350| APFloat One(APFloat::Float8E4M3FNUZ(), "1.0"); +# 6351| EXPECT_EQ(1.0F, One.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6375: var_decl: Declaring variable "FPosZero". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6376: uninit_use_in_call: Using uninitialized value "FPosZero.U" when calling "convertToFloat". +# 6374| TEST(APFloatTest, IEEEsingleToFloat) { +# 6375| APFloat FPosZero(0.0F); +# 6376|-> APFloat FPosZeroToFloat(FPosZero.convertToFloat()); +# 6377| EXPECT_TRUE(FPosZeroToFloat.isPosZero()); +# 6378| APFloat FNegZero(-0.0F); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6376: var_decl: Declaring variable "FPosZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6377: uninit_use_in_call: Using uninitialized value "FPosZeroToFloat.U" when calling "isPosZero". +# 6375| APFloat FPosZero(0.0F); +# 6376| APFloat FPosZeroToFloat(FPosZero.convertToFloat()); +# 6377|-> EXPECT_TRUE(FPosZeroToFloat.isPosZero()); +# 6378| APFloat FNegZero(-0.0F); +# 6379| APFloat FNegZeroToFloat(FNegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6378: var_decl: Declaring variable "FNegZero". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6379: uninit_use_in_call: Using uninitialized value "FNegZero.U" when calling "convertToFloat". +# 6377| EXPECT_TRUE(FPosZeroToFloat.isPosZero()); +# 6378| APFloat FNegZero(-0.0F); +# 6379|-> APFloat FNegZeroToFloat(FNegZero.convertToFloat()); +# 6380| EXPECT_TRUE(FNegZeroToFloat.isNegZero()); +# 6381| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6379: var_decl: Declaring variable "FNegZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6380: uninit_use_in_call: Using uninitialized value "FNegZeroToFloat.U" when calling "isNegZero". +# 6378| APFloat FNegZero(-0.0F); +# 6379| APFloat FNegZeroToFloat(FNegZero.convertToFloat()); +# 6380|-> EXPECT_TRUE(FNegZeroToFloat.isNegZero()); +# 6381| +# 6382| APFloat FOne(1.0F); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6382: var_decl: Declaring variable "FOne". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6383: uninit_use_in_call: Using uninitialized value "FOne.U" when calling "convertToFloat". +# 6381| +# 6382| APFloat FOne(1.0F); +# 6383|-> EXPECT_EQ(1.0F, FOne.convertToFloat()); +# 6384| APFloat FPosLargest = APFloat::getLargest(APFloat::IEEEsingle(), false); +# 6385| EXPECT_EQ(std::numeric_limits::max(), FPosLargest.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6412: var_decl: Declaring variable "HPosZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6413: uninit_use_in_call: Using uninitialized value "HPosZeroToFloat.U" when calling "isPosZero". +# 6411| APFloat HPosZero = APFloat::getZero(APFloat::IEEEhalf()); +# 6412| APFloat HPosZeroToFloat(HPosZero.convertToFloat()); +# 6413|-> EXPECT_TRUE(HPosZeroToFloat.isPosZero()); +# 6414| APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6415| APFloat HNegZeroToFloat(HNegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6415: var_decl: Declaring variable "HNegZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6416: uninit_use_in_call: Using uninitialized value "HNegZeroToFloat.U" when calling "isNegZero". +# 6414| APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); +# 6415| APFloat HNegZeroToFloat(HNegZero.convertToFloat()); +# 6416|-> EXPECT_TRUE(HNegZeroToFloat.isNegZero()); +# 6417| +# 6418| APFloat HOne(APFloat::IEEEhalf(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6448: var_decl: Declaring variable "BPosZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6449: uninit_use_in_call: Using uninitialized value "BPosZeroToDouble.U" when calling "isPosZero". +# 6447| APFloat BPosZero = APFloat::getZero(APFloat::BFloat()); +# 6448| APFloat BPosZeroToDouble(BPosZero.convertToFloat()); +# 6449|-> EXPECT_TRUE(BPosZeroToDouble.isPosZero()); +# 6450| APFloat BNegZero = APFloat::getZero(APFloat::BFloat(), true); +# 6451| APFloat BNegZeroToDouble(BNegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6451: var_decl: Declaring variable "BNegZeroToDouble". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6452: uninit_use_in_call: Using uninitialized value "BNegZeroToDouble.U" when calling "isNegZero". +# 6450| APFloat BNegZero = APFloat::getZero(APFloat::BFloat(), true); +# 6451| APFloat BNegZeroToDouble(BNegZero.convertToFloat()); +# 6452|-> EXPECT_TRUE(BNegZeroToDouble.isNegZero()); +# 6453| +# 6454| APFloat BOne(APFloat::BFloat(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6488: var_decl: Declaring variable "PosZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6489: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6487| APFloat PosZero = APFloat::getZero(APFloat::Float8E5M2()); +# 6488| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6489|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6490| APFloat NegZero = APFloat::getZero(APFloat::Float8E5M2(), true); +# 6491| APFloat NegZeroToFloat(NegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6491: var_decl: Declaring variable "NegZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6492: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isNegZero". +# 6490| APFloat NegZero = APFloat::getZero(APFloat::Float8E5M2(), true); +# 6491| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6492|-> EXPECT_TRUE(NegZeroToFloat.isNegZero()); +# 6493| +# 6494| APFloat One(APFloat::Float8E5M2(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6524: var_decl: Declaring variable "PosZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6525: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6523| APFloat PosZero = APFloat::getZero(APFloat::Float8E4M3FN()); +# 6524| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6525|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6526| APFloat NegZero = APFloat::getZero(APFloat::Float8E4M3FN(), true); +# 6527| APFloat NegZeroToFloat(NegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6527: var_decl: Declaring variable "NegZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6528: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isNegZero". +# 6526| APFloat NegZero = APFloat::getZero(APFloat::Float8E4M3FN(), true); +# 6527| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6528|-> EXPECT_TRUE(NegZeroToFloat.isNegZero()); +# 6529| +# 6530| APFloat One(APFloat::Float8E4M3FN(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6556: var_decl: Declaring variable "PosZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6557: uninit_use_in_call: Using uninitialized value "PosZeroToFloat.U" when calling "isPosZero". +# 6555| APFloat PosZero = APFloat::getZero(APFloat::FloatTF32()); +# 6556| APFloat PosZeroToFloat(PosZero.convertToFloat()); +# 6557|-> EXPECT_TRUE(PosZeroToFloat.isPosZero()); +# 6558| APFloat NegZero = APFloat::getZero(APFloat::FloatTF32(), true); +# 6559| APFloat NegZeroToFloat(NegZero.convertToFloat()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6559: var_decl: Declaring variable "NegZeroToFloat". +llvm-17.0.6.src/unittests/ADT/APFloatTest.cpp:6560: uninit_use_in_call: Using uninitialized value "NegZeroToFloat.U" when calling "isNegZero". +# 6558| APFloat NegZero = APFloat::getZero(APFloat::FloatTF32(), true); +# 6559| APFloat NegZeroToFloat(NegZero.convertToFloat()); +# 6560|-> EXPECT_TRUE(NegZeroToFloat.isNegZero()); +# 6561| +# 6562| APFloat One(APFloat::FloatTF32(), "1.0"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/APIntTest.cpp:1030: var_decl: Declaring variable "sr" without initializer. +llvm-17.0.6.src/unittests/ADT/APIntTest.cpp:1031: uninit_use_in_call: Using uninitialized value "sr" when calling "sdivrem". +# 1029| EXPECT_EQ(c, r); +# 1030| int64_t sr; +# 1031|-> APInt::sdivrem(p, b, q, sr); +# 1032| EXPECT_EQ(a, q); +# 1033| if (c.isNegative()) + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/AnyTest.cpp:57: move: "C" is moved (indicated by "std::move(C)"). +llvm-17.0.6.src/unittests/ADT/AnyTest.cpp:58: use_after_move: "C" is used after it has been already moved. +# 56| // isn't. +# 57| llvm::Any G(std::move(C)); +# 58|-> EXPECT_FALSE(C.has_value()); +# 59| EXPECT_TRUE(G.has_value()); +# 60| EXPECT_TRUE(any_cast(&G)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/AnyTest.cpp:71: move: "G" is moved (indicated by "std::move(G)"). +llvm-17.0.6.src/unittests/ADT/AnyTest.cpp:73: use_after_move: "G" is used after it has been already moved. +# 71| B = std::move(G); +# 72| EXPECT_TRUE(B.has_value()); +# 73|-> EXPECT_FALSE(G.has_value()); +# 74| EXPECT_TRUE(any_cast(&B)); +# 75| EXPECT_FALSE(any_cast(&G)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/AnyTest.cpp:113: move: "E" is moved (indicated by "std::move(E)"). +llvm-17.0.6.src/unittests/ADT/AnyTest.cpp:114: use_after_move: "E" is used after it has been already moved. +# 112| // in the process. +# 113| EXPECT_EQ(8, llvm::any_cast(std::move(E))); +# 114|-> EXPECT_TRUE(E.has_value()); +# 115| +# 116| // Make sure moving from pointers gives back pointers, and that we can modify + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/unittests/ADT/ArrayRefTest.cpp:74: identity_transfer: Passing "9223372036854775807UL" as argument 2 to constructor for class "ArrayRef", which sets "AR.Length" to that argument. +llvm-17.0.6.src/unittests/ADT/ArrayRefTest.cpp:80: identity_transfer: Member function call "AR.size()" returns field "Length". +llvm-17.0.6.src/unittests/ADT/ArrayRefTest.cpp:80: overrun-buffer-arg: Calling "drop_front" with "AR.Data" and "AR.size() - 1UL" is suspicious because of the very large index, 9223372036854775806. The index may be due to a negative parameter being interpreted as unsigned. +# 78| +# 79| // Check that drop_front accepts size_t-sized numbers. +# 80|-> EXPECT_EQ(1U, AR.drop_front(AR.size() - 1).size()); +# 81| +# 82| // Check that slice accepts size_t-sized numbers. + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/unittests/ADT/ArrayRefTest.cpp:74: identity_transfer: Passing "9223372036854775807UL" as argument 2 to constructor for class "ArrayRef", which sets "AR.Length" to that argument. +llvm-17.0.6.src/unittests/ADT/ArrayRefTest.cpp:83: identity_transfer: Member function call "AR.size()" returns field "Length". +llvm-17.0.6.src/unittests/ADT/ArrayRefTest.cpp:83: overrun-buffer-arg: Calling "slice" with "AR.Data" and "AR.size() - 1UL" is suspicious because of the very large index, 9223372036854775806. The index may be due to a negative parameter being interpreted as unsigned. +# 81| +# 82| // Check that slice accepts size_t-sized numbers. +# 83|-> EXPECT_EQ(1U, AR.slice(AR.size() - 1).size()); +# 84| EXPECT_EQ(AR.size() - 1, AR.slice(1, AR.size() - 1).size()); +# 85| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/ArrayRefTest.cpp:244: move: "A" is moved (indicated by "std::move(A)"). +llvm-17.0.6.src/unittests/ADT/ArrayRefTest.cpp:245: use_after_move: "A" is used after it has been already moved. +# 243| OwningArrayRef A{ArrayRef(A1)}; +# 244| OwningArrayRef B(std::move(A)); +# 245|-> EXPECT_EQ(A.data(), nullptr); +# 246| } +# 247| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/DenseMapTest.cpp:281: var_decl: Declaring variable "otherMap". +llvm-17.0.6.src/unittests/ADT/DenseMapTest.cpp:283: uninit_use_in_call: Using uninitialized value "otherMap.NumEntries" when calling "swap". +llvm-17.0.6.src/unittests/ADT/DenseMapTest.cpp:283: uninit_use_in_call: Using uninitialized value "otherMap.NumTombstones" when calling "swap". +# 281| TypeParam otherMap; +# 282| +# 283|-> this->Map.swap(otherMap); +# 284| EXPECT_EQ(0u, this->Map.size()); +# 285| EXPECT_TRUE(this->Map.empty()); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/DenseSetTest.cpp:57: var_decl: Declaring variable "Set". +llvm-17.0.6.src/unittests/ADT/DenseSetTest.cpp:61: uninit_use: Using uninitialized value "Set". Field "Set.TheMap.NumEntries" is uninitialized. +# 59| Set.insert(1); +# 60| Set.insert(2); +# 61|-> return Set; +# 62| } +# 63| }; + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/FallibleIteratorTest.cpp:211: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-17.0.6.src/unittests/ADT/FallibleIteratorTest.cpp:213: use_after_move: "Err" is used after it has been already moved. +# 211| EXPECT_THAT_ERROR(std::move(Err), Succeeded()); +# 212| ++I; +# 213|-> EXPECT_THAT_ERROR(std::move(Err), Failed()) << "Expected failure value"; +# 214| } +# 215| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/FallibleIteratorTest.cpp:229: move: "Err" is moved (indicated by "std::move(Err)"). +llvm-17.0.6.src/unittests/ADT/FallibleIteratorTest.cpp:231: use_after_move: "Err" is used after it has been already moved. +# 229| EXPECT_THAT_ERROR(std::move(Err), Succeeded()); +# 230| --I; +# 231|-> EXPECT_THAT_ERROR(std::move(Err), Failed()); +# 232| } +# 233| } + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/unittests/ADT/HashingTest.cpp:162: overrun-buffer-val: Overrunning buffer pointed to by "&dummy" of 4 bytes by passing it to a function which accesses it at byte offset 63. +# 160| // Leave this uninitialized in the hope that valgrind will catch bad reads. +# 161| int dummy; +# 162|-> hash_code dummy_hash = hash_combine_range(&dummy, &dummy); +# 163| EXPECT_NE(hash_code(0), dummy_hash); +# 164| + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/unittests/ADT/HashingTest.cpp:314: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 312| const int i1 = 42, i2 = 43, i3 = 123, i4 = 999, i5 = 0, i6 = 79; +# 313| const int arr1[] = { i1, i2, i3, i4, i5, i6 }; +# 314|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 1), hash_combine(i1)); +# 315| EXPECT_EQ(hash_combine_range(arr1, arr1 + 2), hash_combine(i1, i2)); +# 316| EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/unittests/ADT/HashingTest.cpp:315: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 313| const int arr1[] = { i1, i2, i3, i4, i5, i6 }; +# 314| EXPECT_EQ(hash_combine_range(arr1, arr1 + 1), hash_combine(i1)); +# 315|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 2), hash_combine(i1, i2)); +# 316| EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); +# 317| EXPECT_EQ(hash_combine_range(arr1, arr1 + 4), hash_combine(i1, i2, i3, i4)); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/unittests/ADT/HashingTest.cpp:316: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 314| EXPECT_EQ(hash_combine_range(arr1, arr1 + 1), hash_combine(i1)); +# 315| EXPECT_EQ(hash_combine_range(arr1, arr1 + 2), hash_combine(i1, i2)); +# 316|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); +# 317| EXPECT_EQ(hash_combine_range(arr1, arr1 + 4), hash_combine(i1, i2, i3, i4)); +# 318| EXPECT_EQ(hash_combine_range(arr1, arr1 + 5), + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/unittests/ADT/HashingTest.cpp:317: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 315| EXPECT_EQ(hash_combine_range(arr1, arr1 + 2), hash_combine(i1, i2)); +# 316| EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); +# 317|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 4), hash_combine(i1, i2, i3, i4)); +# 318| EXPECT_EQ(hash_combine_range(arr1, arr1 + 5), +# 319| hash_combine(i1, i2, i3, i4, i5)); + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/unittests/ADT/HashingTest.cpp:318: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 316| EXPECT_EQ(hash_combine_range(arr1, arr1 + 3), hash_combine(i1, i2, i3)); +# 317| EXPECT_EQ(hash_combine_range(arr1, arr1 + 4), hash_combine(i1, i2, i3, i4)); +# 318|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 5), +# 319| hash_combine(i1, i2, i3, i4, i5)); +# 320| EXPECT_EQ(hash_combine_range(arr1, arr1 + 6), + +Error: OVERRUN (CWE-119): +llvm-17.0.6.src/unittests/ADT/HashingTest.cpp:320: overrun-buffer-val: Overrunning array "arr1" of 24 bytes by passing it to a function which accesses it at byte offset 63. +# 318| EXPECT_EQ(hash_combine_range(arr1, arr1 + 5), +# 319| hash_combine(i1, i2, i3, i4, i5)); +# 320|-> EXPECT_EQ(hash_combine_range(arr1, arr1 + 6), +# 321| hash_combine(i1, i2, i3, i4, i5, i6)); +# 322| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/MappedIteratorTest.cpp:175: move: "I2" is moved (indicated by "std::move(I2)"). +llvm-17.0.6.src/unittests/ADT/MappedIteratorTest.cpp:177: use_after_move: "I2" is used after it has been already moved. +# 175| I3 = std::move(I2); +# 176| +# 177|-> EXPECT_EQ(I2, I1) << "move assigned iterator is a different position"; +# 178| } +# 179| } + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/unittests/ADT/PointerIntPairTest.cpp:116: address_of: Taking address with "&IntPtr" yields a singleton pointer. +llvm-17.0.6.src/unittests/ADT/PointerIntPairTest.cpp:116: assign: Assigning: "IntPtrBegin" = "&IntPtr". +llvm-17.0.6.src/unittests/ADT/PointerIntPairTest.cpp:117: ptr_arith: Using "IntPtrBegin" as an array. This might corrupt or misinterpret adjacent memory locations. +# 115| +# 116| int **IntPtrBegin = &IntPtr; +# 117|-> int **IntPtrEnd = IntPtrBegin + 1; +# 118| +# 119| PointerIntPair Pair; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ADT/STLExtrasTest.cpp:816: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/unittests/ADT/STLExtrasTest.cpp:816: leaked_storage: Ignoring storage allocated by "V2.release()" leaks it. +# 814| V2.reset(V1); +# 815| EXPECT_EQ(V1, llvm::to_address(V2)); +# 816|-> V2.release(); +# 817| +# 818| // Check fancy pointer overload for shared_ptr + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ADT/STLExtrasTest.cpp:939: var_decl: Declaring variable "Foos". +llvm-17.0.6.src/unittests/ADT/STLExtrasTest.cpp:941: uninit_use: Using uninitialized value "Foos". Field "Foos.InlineElts" is uninitialized. +# 939| SmallVector Foos; +# 940| Foos.resize(4U); +# 941|-> return Foos; +# 942| }; +# 943| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/ScopeExitTest.cpp:36: move: "G" is moved (indicated by "std::move(G)"). +llvm-17.0.6.src/unittests/ADT/ScopeExitTest.cpp:37: use_after_move: "G" is used after it has been already moved. +# 35| auto G = make_scope_exit(Increment); +# 36| auto H = std::move(G); +# 37|-> auto I = std::move(G); +# 38| EXPECT_EQ(0, Count); +# 39| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/SmallPtrSetTest.cpp:139: move: "s1" is moved (indicated by "std::move(s1)"). +llvm-17.0.6.src/unittests/ADT/SmallPtrSetTest.cpp:141: use_after_move: "s1" is used after it has been already moved. +# 139| SmallPtrSet s3(std::move(s1)); +# 140| EXPECT_EQ(4U, s3.size()); +# 141|-> EXPECT_TRUE(s1.empty()); +# 142| for (int i = 0; i < 8; ++i) +# 143| if (i < 4) + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/SmallPtrSetTest.cpp:154: move: "s3" is moved (indicated by "std::move(s3)"). +llvm-17.0.6.src/unittests/ADT/SmallPtrSetTest.cpp:156: use_after_move: "s3" is used after it has been already moved. +# 154| s1 = std::move(s3); +# 155| EXPECT_EQ(8U, s1.size()); +# 156|-> EXPECT_TRUE(s3.empty()); +# 157| for (int i = 0; i < 8; ++i) +# 158| EXPECT_TRUE(s1.count(&buf[i])); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/SmallVectorTest.cpp:1086: move: "A0" is moved (indicated by "std::move(A0)"). +llvm-17.0.6.src/unittests/ADT/SmallVectorTest.cpp:1097: use_after_move: "A0" is used after it has been already moved. +# 1095| { +# 1096| SmallVector V; +# 1097|-> Emplaceable &back = V.emplace_back(std::move(A0), A1, std::move(A2), A3); +# 1098| EXPECT_TRUE(&back == &V.back()); +# 1099| EXPECT_TRUE(V.size() == 1); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/SparseBitVectorTest.cpp:46: move: "Vec" is moved (indicated by "std::move(Vec)"). +llvm-17.0.6.src/unittests/ADT/SparseBitVectorTest.cpp:47: use_after_move: "Vec" is used after it has been already moved. +# 45| EXPECT_FALSE(Vec.empty()); +# 46| SparseBitVector<> MovedVec(std::move(Vec)); +# 47|-> EXPECT_TRUE(Vec.empty()); +# 48| EXPECT_TRUE(MovedVec.test(5)); +# 49| EXPECT_TRUE(MovedVec.test(1337)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/SparseBitVectorTest.cpp:51: move: "MovedVec" is moved (indicated by "std::move(MovedVec)"). +llvm-17.0.6.src/unittests/ADT/SparseBitVectorTest.cpp:52: use_after_move: "MovedVec" is used after it has been already moved. +# 50| +# 51| Vec = std::move(MovedVec); +# 52|-> EXPECT_TRUE(MovedVec.empty()); +# 53| EXPECT_FALSE(Vec.empty()); +# 54| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/StringMapTest.cpp:407: move: "A" is moved (indicated by "std::move(A)"). +llvm-17.0.6.src/unittests/ADT/StringMapTest.cpp:408: use_after_move: "A" is used after it has been already moved. +# 406| A["x"] = 42; +# 407| StringMap B = std::move(A); +# 408|-> ASSERT_EQ(A.size(), 0u); +# 409| ASSERT_EQ(B.size(), 1u); +# 410| ASSERT_EQ(B["x"], 42); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/StringMapTest.cpp:419: move: "B" is moved (indicated by "std::move(B)"). +llvm-17.0.6.src/unittests/ADT/StringMapTest.cpp:421: use_after_move: "B" is used after it has been already moved. +# 419| A = std::move(B); +# 420| ASSERT_EQ(A.size(), 1u); +# 421|-> ASSERT_EQ(B.size(), 0u); +# 422| ASSERT_EQ(A["y"], 117); +# 423| ASSERT_EQ(B.count("x"), 0u); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/StringMapTest.cpp:522: move: "A" is moved (indicated by "std::move(A)"). +llvm-17.0.6.src/unittests/ADT/StringMapTest.cpp:524: use_after_move: "A" is used after it has been already moved. +# 522| B = std::move(A); +# 523| ASSERT_EQ(InstanceCount, 1); +# 524|-> ASSERT_TRUE(A.empty()); +# 525| I = B.find("x"); +# 526| ASSERT_NE(I, B.end()); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/TinyPtrVectorTest.cpp:160: move: "Copy2" is moved (indicated by "std::move(Copy2)"). +llvm-17.0.6.src/unittests/ADT/TinyPtrVectorTest.cpp:162: use_after_move: "Copy2" is used after it has been already moved. +# 160| TypeParam Move(std::move(Copy2)); +# 161| this->expectValues(Move, this->testArray(42)); +# 162|-> this->expectValues(Copy2, this->testArray(0)); +# 163| +# 164| TypeParam MultipleElements(this->testArray(2)); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ADT/TinyPtrVectorTest.cpp:166: move: "SingleElement" is moved (indicated by "std::move(SingleElement)"). +llvm-17.0.6.src/unittests/ADT/TinyPtrVectorTest.cpp:168: use_after_move: "SingleElement" is used after it has been already moved. +# 166| MultipleElements = std::move(SingleElement); +# 167| this->expectValues(MultipleElements, this->testArray(1)); +# 168|-> this->expectValues(SingleElement, this->testArray(0)); +# 169| } +# 170| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:1434: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:1435: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 1433| +# 1434| LegalizerInfo LI; +# 1435|-> LI.getActionDefinitionsBuilder(TargetOpcode::G_AND) +# 1436| .legalFor({v6s32}) +# 1437| .clampMinNumElements(0, s32, 6); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:1486: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:1487: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 1485| +# 1486| LegalizerInfo LI; +# 1487|-> LI.getActionDefinitionsBuilder(TargetOpcode::G_PHI) +# 1488| .legalFor({v2s32}) +# 1489| .clampMinNumElements(0, s32, 2); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:52: var_decl: Declaring variable "L". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:67: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 65| for (unsigned opcode : {G_ADD, G_SUB}) { +# 66| // Check we infer the correct types and actually do what we're told. +# 67|-> EXPECT_EQ(L.getAction({opcode, {LLT::scalar(8)}}), +# 68| LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); +# 69| EXPECT_EQ(L.getAction({opcode, {LLT::scalar(16)}}), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:95: var_decl: Declaring variable "L". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:121: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 119| // Check we infer the correct types and actually do what we're told for some +# 120| // simple cases. +# 121|-> EXPECT_EQ(L.getAction({G_ADD, {LLT::fixed_vector(8, 8)}}), +# 122| LegalizeActionStep(Legal, 0, LLT{})); +# 123| EXPECT_EQ(L.getAction({G_ADD, {LLT::fixed_vector(8, 7)}}), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:138: var_decl: Declaring variable "L". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:153: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 151| +# 152| // Check we infer the correct types and actually do what we're told. +# 153|-> EXPECT_EQ(L.getAction({G_PTRTOINT, {s64, p0}}), +# 154| LegalizeActionStep(Legal, 0, LLT{})); +# 155| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:167: var_decl: Declaring variable "L". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:179: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 177| LegacyInfo.computeTables(); +# 178| +# 179|-> EXPECT_EQ(L.getAction({G_UREM, {LLT::scalar(16)}}), +# 180| LegalizeActionStep(WidenScalar, 0, LLT::scalar(32))); +# 181| EXPECT_EQ(L.getAction({G_UREM, {LLT::scalar(32)}}), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:187: var_decl: Declaring variable "L". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:199: uninit_use_in_call: Using uninitialized element of array "L.RulesForOpcode". Field "L.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getAction". +# 197| // Check we infer the correct types and actually do what we're told. +# 198| for (unsigned Size : {1, 8, 16, 32}) { +# 199|-> EXPECT_EQ(L.getAction({G_UREM, {LLT::scalar(Size)}}), +# 200| LegalizeActionStep(Legal, 0, LLT{})); +# 201| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:253: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:256: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 254| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 255| +# 256|-> LI.getActionDefinitionsBuilder(G_IMPLICIT_DEF) +# 257| .legalFor({v4s32, v4p0}) +# 258| .moreElementsToNextPow2(0); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:269: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:271: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 269| LegalizerInfo LI; +# 270| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 271|-> LI.getActionDefinitionsBuilder(G_OR) +# 272| .legalFor({s32}) +# 273| .minScalarOrElt(0, s32); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:282: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:284: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 282| LegalizerInfo LI; +# 283| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 284|-> LI.getActionDefinitionsBuilder(G_AND) +# 285| .legalFor({s16}) +# 286| .maxScalarOrElt(0, s16); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:295: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:297: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 295| LegalizerInfo LI; +# 296| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 297|-> LI.getActionDefinitionsBuilder(G_XOR) +# 298| .legalFor({s16}) +# 299| .clampScalarOrElt(0, s16, s32); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:312: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:314: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 312| LegalizerInfo LI; +# 313| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 314|-> LI.getActionDefinitionsBuilder(G_OR) +# 315| .legalFor({s32}) +# 316| .minScalar(0, s32); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:327: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:329: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 327| LegalizerInfo LI; +# 328| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 329|-> LI.getActionDefinitionsBuilder(G_OR) +# 330| .legalFor({s32}) +# 331| .minScalarIf([&](const LegalityQuery &Query) { + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:347: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:349: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 347| LegalizerInfo LI; +# 348| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 349|-> LI.getActionDefinitionsBuilder(G_AND) +# 350| .legalFor({s16}) +# 351| .maxScalar(0, s16); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:361: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:364: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 362| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 363| +# 364|-> LI.getActionDefinitionsBuilder(G_XOR) +# 365| .legalFor({s16}) +# 366| .clampScalar(0, s16, s32); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:379: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:382: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 380| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 381| +# 382|-> LI.getActionDefinitionsBuilder(G_AND) +# 383| .legalFor({s32}) +# 384| .widenScalarOrEltToNextPow2(0, 32); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:396: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:399: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 397| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 398| +# 399|-> LI.getActionDefinitionsBuilder(G_AND) +# 400| .legalFor({s32}) +# 401| .widenScalarToNextPow2(0, 32); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:414: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:418: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 416| +# 417| // Type index form +# 418|-> LI.getActionDefinitionsBuilder(G_SELECT) +# 419| .moreElementsIf(isScalar(1), changeElementCountTo(1, 0)); +# 420| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:455: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:458: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 456| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 457| +# 458|-> LI.getActionDefinitionsBuilder(G_SELECT).minScalarEltSameAsIf( +# 459| all(isVector(0), isVector(1)), 1, 0); +# 460| LegacyInfo.computeTables(); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:476: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:478: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 476| LegalizerInfo LI; +# 477| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 478|-> LI.getActionDefinitionsBuilder(G_LOAD) +# 479| .legalForTypesWithMemDesc({{s32, p0, s32, 32}}); +# 480| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:502: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:504: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 502| LegalizerInfo LI; +# 503| auto &LegacyInfo = LI.getLegacyLegalizerInfo(); +# 504|-> LI.getActionDefinitionsBuilder(G_LOAD) +# 505| .legalForTypesWithMemDesc({{s32, p0, s32, MaxAlignInBits}}); +# 506| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:525: var_decl: Declaring variable "LI". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp:526: uninit_use_in_call: Using uninitialized element of array "LI.RulesForOpcode". Field "LI.RulesForOpcode[0].Rules.InlineElts" is uninitialized when calling "getActionDefinitionsBuilder". +# 524| const LLT P0 = LLT::pointer(0, 32); +# 525| LegalizerInfo LI; +# 526|-> auto Builder = LI.getActionDefinitionsBuilder(TargetOpcode::G_PTRTOINT); +# 527| (void)Builder.legalForCartesianProduct({S1}, {P0}); +# 528| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp:421: var_decl: Declaring variable "APF". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp:422: uninit_use_in_call: Using uninitialized value "APF.U" when calling "get". +# 420| EXPECT_TRUE(TmpFP); +# 421| APFloat APF((float).5); +# 422|-> auto *CFP = ConstantFP::get(Context, APF); +# 423| EXPECT_EQ(CFP, TmpFP); +# 424| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp:432: var_decl: Declaring variable "APF64". +llvm-17.0.6.src/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp:433: uninit_use_in_call: Using uninitialized value "APF64.U" when calling "get". +# 431| EXPECT_TRUE(TmpFP64); +# 432| APFloat APF64(.5); +# 433|-> auto CFP64 = ConstantFP::get(Context, APF64); +# 434| EXPECT_EQ(CFP64, TmpFP64); +# 435| EXPECT_NE(TmpFP64, TmpFP); + +Error: RETURN_LOCAL (CWE-562): +llvm-17.0.6.src/unittests/CodeGen/MFCommon.inc:107: escape_local_addr: Returning, through "this->TheTarget", the address of stack variable "". +# 105| public: +# 106| BogusTargetMachine() +# 107|-> : LLVMTargetMachine(Target(), "", Triple(""), "", "", +# 108| getTargetOptionsForBogusMachine(), Reloc::Static, +# 109| CodeModel::Small, CodeGenOpt::Default), + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/CodeGen/MLRegallocDevelopmentFeatures.cpp:50: var_decl: Declaring variable "PositionsToReturn". +llvm-17.0.6.src/unittests/CodeGen/MLRegallocDevelopmentFeatures.cpp:80: uninit_use: Using uninitialized value "PositionsToReturn". Field "PositionsToReturn.InlineElts" is uninitialized. +# 78| CurrentIndex += SlotIndex::InstrDist; +# 79| } +# 80|-> return PositionsToReturn; +# 81| } +# 82| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/DebugInfo/GSYM/GSYMTest.cpp:466: var_decl: Declaring variable "Empty". +llvm-17.0.6.src/unittests/DebugInfo/GSYM/GSYMTest.cpp:475: uninit_use_in_call: Using uninitialized value "Empty". Field "Empty.Ranges.Ranges.InlineElts" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 473| InlineInfo ContainsEmpty; +# 474| ContainsEmpty.Ranges.insert({0x100, 0x200}); +# 475|-> ContainsEmpty.Children.push_back(Empty); +# 476| TestInlineInfoEncodeError(llvm::support::little, ContainsEmpty, EmptyErr); +# 477| TestInlineInfoEncodeError(llvm::support::big, ContainsEmpty, EmptyErr); + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/unittests/DebugInfo/LogicalView/CodeViewReaderTest.cpp:464: extract: Calling "get" which extracts wrapped state from local "Reference". +llvm-17.0.6.src/unittests/DebugInfo/LogicalView/CodeViewReaderTest.cpp:464: escape: The internal representation of local "Reference" escapes, but is destroyed when it exits scope. +# 462| std::unique_ptr Target = +# 463| createReader(ReaderHandler, InputsDir, CodeViewMsvc); +# 464|-> checkElementComparison(Reference.get(), Target.get()); +# 465| } +# 466| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/unittests/DebugInfo/LogicalView/ELFReaderTest.cpp:323: extract: Calling "get" which extracts wrapped state from local "Reference". +llvm-17.0.6.src/unittests/DebugInfo/LogicalView/ELFReaderTest.cpp:323: escape: The internal representation of local "Reference" escapes, but is destroyed when it exits scope. +# 321| std::unique_ptr Target = +# 322| createReader(ReaderHandler, InputsDir, DwarfGcc); +# 323|-> checkElementComparison(Reference.get(), Target.get()); +# 324| } +# 325| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp:37: move: "MB" is moved (indicated by "std::move(MB)"). +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp:38: use_after_move: "MB" is used after it has been already moved. +# 36| return errorCodeToError(EC); +# 37| Blocks[MB.base()] = sys::OwningMemoryBlock(std::move(MB)); +# 38|-> return ExecutorAddr::fromPtr(MB.base()); +# 39| } +# 40| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:91: var_decl: Declaring variable "Seg1". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:98: uninit_use_in_call: Using uninitialized value "Seg1". Field "Seg1.WorkingMem" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 96| +# 97| Alloc1.MappingBase = Mem1->Start; +# 98|-> Alloc1.Segments.push_back(Seg1); +# 99| Alloc1.Actions.push_back( +# 100| {cantFail(WrapperFunctionCall::Create>( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:115: var_decl: Declaring variable "Seg2". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:122: uninit_use_in_call: Using uninitialized value "Seg2". Field "Seg2.WorkingMem" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 120| +# 121| Alloc2.MappingBase = Mem1->Start; +# 122|-> Alloc2.Segments.push_back(Seg2); +# 123| Alloc2.Actions.push_back( +# 124| {cantFail(WrapperFunctionCall::Create>( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:167: var_decl: Declaring variable "Seg3". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/MemoryMapperTest.cpp:174: uninit_use_in_call: Using uninitialized value "Seg3". Field "Seg3.WorkingMem" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 172| +# 173| Alloc3.MappingBase = Mem2->Start; +# 174|-> Alloc3.Segments.push_back(Seg3); +# 175| Alloc3.Actions.push_back( +# 176| {cantFail(WrapperFunctionCall::Create>( + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:96: alloc_fn: Storage is returned from allocation function "LLVMOrcJITTargetMachineBuilderDetectHost". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:96: var_assign: Assigning: "E1" = storage returned from "LLVMOrcJITTargetMachineBuilderDetectHost(&JTMB)". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:108: leaked_storage: Variable "E1" going out of scope leaks the storage it points to. +# 106| ExecutionSession = LLVMOrcLLJITGetExecutionSession(Jit); +# 107| MainDylib = LLVMOrcLLJITGetMainJITDylib(Jit); +# 108|-> } +# 109| void TearDown() override { +# 110| // Check whether Jit has already been torn down -- we allow clients to do + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:444: alloc_fn: Storage is returned from allocation function "LLVMOrcResourceTrackerRemove". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:444: leaked_storage: Ignoring storage allocated by "LLVMOrcResourceTrackerRemove(RT)" leaks it. +# 442| << "): " << toString(E); +# 443| ASSERT_TRUE(!!TestFnAddr); +# 444|-> LLVMOrcResourceTrackerRemove(RT); +# 445| LLVMOrcJITTargetAddress OutAddr; +# 446| LLVMErrorRef Err = LLVMOrcLLJITLookup(Jit, &OutAddr, "sum"); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetSymbols". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537: var_assign: Assigning: "Symbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetSymbols(MR, &NumSymbols)". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:540: leaked_storage: Variable "Symbols" going out of scope leaks the storage it points to. +# 538| LLVMOrcMaterializationResponsibilityGetSymbols(MR, &NumSymbols); +# 539| +# 540|-> ASSERT_TRUE(!!Symbols); +# 541| ASSERT_EQ(NumSymbols, (size_t)1); +# 542| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetSymbols". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537: var_assign: Assigning: "Symbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetSymbols(MR, &NumSymbols)". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:541: leaked_storage: Variable "Symbols" going out of scope leaks the storage it points to. +# 539| +# 540| ASSERT_TRUE(!!Symbols); +# 541|-> ASSERT_EQ(NumSymbols, (size_t)1); +# 542| +# 543| LLVMOrcSymbolStringPoolEntryRef *RequestedSymbols = + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:543: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetRequestedSymbols". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:543: var_assign: Assigning: "RequestedSymbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetRequestedSymbols(MR, &NumSymbols)". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:546: leaked_storage: Variable "RequestedSymbols" going out of scope leaks the storage it points to. +# 544| LLVMOrcMaterializationResponsibilityGetRequestedSymbols(MR, &NumSymbols); +# 545| +# 546|-> ASSERT_TRUE(!!RequestedSymbols); +# 547| ASSERT_EQ(NumSymbols, (size_t)1); +# 548| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:543: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetRequestedSymbols". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:543: var_assign: Assigning: "RequestedSymbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetRequestedSymbols(MR, &NumSymbols)". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:547: leaked_storage: Variable "RequestedSymbols" going out of scope leaks the storage it points to. +# 545| +# 546| ASSERT_TRUE(!!RequestedSymbols); +# 547|-> ASSERT_EQ(NumSymbols, (size_t)1); +# 548| +# 549| LLVMOrcCSymbolFlagsMapPair TargetSym = Symbols[0]; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:543: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetRequestedSymbols". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:543: var_assign: Assigning: "RequestedSymbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetRequestedSymbols(MR, &NumSymbols)". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:551: noescape: Resource "RequestedSymbols[0]" is not freed or pointed-to in "Compare". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:551: leaked_storage: Variable "RequestedSymbols" going out of scope leaks the storage it points to. +# 549| LLVMOrcCSymbolFlagsMapPair TargetSym = Symbols[0]; +# 550| +# 551|-> ASSERT_EQ(RequestedSymbols[0], TargetSym.Name); +# 552| LLVMOrcRetainSymbolStringPoolEntry(TargetSym.Name); +# 553| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityGetSymbols". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:537: var_assign: Assigning: "Symbols" = storage returned from "LLVMOrcMaterializationResponsibilityGetSymbols(MR, &NumSymbols)". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:551: leaked_storage: Variable "Symbols" going out of scope leaks the storage it points to. +# 549| LLVMOrcCSymbolFlagsMapPair TargetSym = Symbols[0]; +# 550| +# 551|-> ASSERT_EQ(RequestedSymbols[0], TargetSym.Name); +# 552| LLVMOrcRetainSymbolStringPoolEntry(TargetSym.Name); +# 553| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:579: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityDefineMaterializing". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:579: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityDefineMaterializing(MR, NewSymbols, 2UL)" leaks it. +# 577| {DependencySymbol, Flags}, +# 578| }; +# 579|-> LLVMOrcMaterializationResponsibilityDefineMaterializing(MR, NewSymbols, 2); +# 580| +# 581| LLVMOrcRetainSymbolStringPoolEntry(OtherSymbol); + +Error: MULTIPLE_INIT_SMART_PTRS (CWE-1341): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:598: assign: Assigning: "OtherMU" = "LLVMOrcAbsoluteSymbols(&OtherPair, 1UL)". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:601: set_unmanaged_raw_ptr: Function "LLVMOrcMaterializationResponsibilityReplace" sets a smart pointer with "OtherMU". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:613: multiple_init_smart_ptr: Function "LLVMOrcDisposeMaterializationUnit" sets a smart pointer with "OtherMU", but it is already managed by another smart pointer. +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:613: remediation: Either release the raw pointer from the smart pointer, or share/transfer the raw pointer by using a copy/move/assignment operation. +# 611| LLVMOrcDisposeMaterializationResponsibility(OtherMR); +# 612| LLVMOrcDisposeMaterializationResponsibility(MR); +# 613|-> LLVMOrcDisposeMaterializationUnit(OtherMU); +# 614| return; +# 615| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:639: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyResolved". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:639: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1UL)" leaks it. +# 637| // See FIXME above +# 638| LLVMOrcCSymbolMapPair Pair = {DependencySymbol, Sym}; +# 639|-> LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1); +# 640| // DependencySymbol no longer owned by us +# 641| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:643: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyResolved". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:643: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1UL)" leaks it. +# 641| +# 642| Pair = {TargetSym.Name, Sym}; +# 643|-> LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1); +# 644| +# 645| LLVMOrcMaterializationResponsibilityNotifyEmitted(MR); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:645: alloc_fn: Storage is returned from allocation function "LLVMOrcMaterializationResponsibilityNotifyEmitted". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:645: leaked_storage: Ignoring storage allocated by "LLVMOrcMaterializationResponsibilityNotifyEmitted(MR)" leaks it. +# 643| LLVMOrcMaterializationResponsibilityNotifyResolved(MR, &Pair, 1); +# 644| +# 645|-> LLVMOrcMaterializationResponsibilityNotifyEmitted(MR); +# 646| LLVMOrcDisposeMaterializationResponsibility(MR); +# 647| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:658: alloc_fn: Storage is returned from allocation function "LLVMOrcJITDylibDefine". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp:658: leaked_storage: Ignoring storage allocated by "LLVMOrcJITDylibDefine(JD, MU)" leaks it. +# 656| "MU", (void *)Jit, &Sym, 1, NULL, &Materialize, NULL, &Destroy); +# 657| LLVMOrcJITDylibRef JD = LLVMOrcLLJITGetMainJITDylib(Jit); +# 658|-> LLVMOrcJITDylibDefine(JD, MU); +# 659| +# 660| LLVMOrcJITTargetAddress Addr; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/ResourceTrackerTest.cpp:81: var_decl: Declaring variable "DstResources" without initializer. +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/ResourceTrackerTest.cpp:82: uninit_use_in_call: Using uninitialized value "DstResources" when calling "swap". +# 80| auto &DstResourceRef = Resources[DstKey]; +# 81| ResourceT DstResources; +# 82|-> std::swap(DstResourceRef, DstResources); +# 83| +# 84| auto SI = Resources.find(SrcKey); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/SharedMemoryMapperTest.cpp:80: var_decl: Declaring variable "SI". +llvm-17.0.6.src/unittests/ExecutionEngine/Orc/SharedMemoryMapperTest.cpp:87: uninit_use_in_call: Using uninitialized value "SI". Field "SI.WorkingMem" is uninitialized when calling "push_back". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 85| +# 86| AI.MappingBase = Reservation.Start; +# 87|-> AI.Segments.push_back(SI); +# 88| AI.Actions.push_back( +# 89| {cantFail(WrapperFunctionCall::Create>( + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/IR/IRBuilderTest.cpp:959: var_decl: Declaring variable "Names". +llvm-17.0.6.src/unittests/IR/IRBuilderTest.cpp:971: uninit_use: Using uninitialized value "Names". Field "Names.InlineElts" is uninitialized. +# 969| if (auto *MN = dyn_cast_or_null(Node)) +# 970| Names.push_back(MN->getName()); +# 971|-> return Names; +# 972| }; +# 973| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/IR/PatternMatch.cpp:1513: var_decl: Declaring variable "F32Pi". +llvm-17.0.6.src/unittests/IR/PatternMatch.cpp:1519: uninit_use_in_call: Using uninitialized value "F32Pi.U" when calling "get". +# 1517| Constant *CF32NaN = ConstantFP::get(F32Ty, F32NaN); +# 1518| Constant *CF32Zero = ConstantFP::get(F32Ty, F32Zero); +# 1519|-> Constant *CF32Pi = ConstantFP::get(F32Ty, F32Pi); +# 1520| +# 1521| EXPECT_TRUE(match(CF32NaN, cstfp_pred_ty())); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/MI/LiveIntervalTest.cpp:70: alloc_fn: Storage is returned from allocation function "operator new". +llvm-17.0.6.src/unittests/MI/LiveIntervalTest.cpp:70: var_assign: Assigning: "MMIWP" = storage returned from "new llvm::MachineModuleInfoWrapperPass(TM)". +llvm-17.0.6.src/unittests/MI/LiveIntervalTest.cpp:71: noescape: Resource "MMIWP" is not freed or pointed-to in "getMMI". +llvm-17.0.6.src/unittests/MI/LiveIntervalTest.cpp:72: leaked_storage: Variable "MMIWP" going out of scope leaks the storage it points to. +# 70| MachineModuleInfoWrapperPass *MMIWP = new MachineModuleInfoWrapperPass(&TM); +# 71| if (MIR->parseMachineFunctions(*M, MMIWP->getMMI())) +# 72|-> return nullptr; +# 73| PM.add(MMIWP); +# 74| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/Object/ELFObjectFileTest.cpp:774: var_decl: Declaring variable "FoundRela" without initializer. +llvm-17.0.6.src/unittests/Object/ELFObjectFileTest.cpp:792: uninit_use_in_call: Using uninitialized value "FoundRela" when calling "AssertionResult". +# 790| EXPECT_EQ(TextSecName, ".text"); +# 791| } +# 792|-> ASSERT_TRUE(FoundRela); +# 793| }; +# 794| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ObjectYAML/DWARFYAMLTest.cpp:51: var_decl: Declaring variable "AddrTableEntry". +llvm-17.0.6.src/unittests/ObjectYAML/DWARFYAMLTest.cpp:52: uninit_use_in_call: Using uninitialized value "AddrTableEntry.Format" when calling "parseDWARFYAML". +llvm-17.0.6.src/unittests/ObjectYAML/DWARFYAMLTest.cpp:52: uninit_use_in_call: Using uninitialized value "AddrTableEntry.SegSelectorSize.value" when calling "parseDWARFYAML". +# 50| )"; +# 51| DWARFYAML::AddrTableEntry AddrTableEntry; +# 52|-> EXPECT_THAT_ERROR(parseDWARFYAML(Yaml, AddrTableEntry), +# 53| FailedWithMessage("missing required key 'Version'")); +# 54| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ObjectYAML/DWARFYAMLTest.cpp:63: var_decl: Declaring variable "AddrTableEntry". +llvm-17.0.6.src/unittests/ObjectYAML/DWARFYAMLTest.cpp:64: uninit_use_in_call: Using uninitialized value "AddrTableEntry.Format" when calling "parseDWARFYAML". +llvm-17.0.6.src/unittests/ObjectYAML/DWARFYAMLTest.cpp:64: uninit_use_in_call: Using uninitialized value "AddrTableEntry.SegSelectorSize.value" when calling "parseDWARFYAML". +# 62| )"; +# 63| DWARFYAML::AddrTableEntry AddrTableEntry; +# 64|-> EXPECT_THAT_ERROR(parseDWARFYAML(Yaml, AddrTableEntry), +# 65| FailedWithMessage("unknown key 'Blah'")); +# 66| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:19: alloc_fn: Storage is returned from allocation function "LLVMGetDefaultTargetTriple". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:19: var_assign: Assigning: "Triple" = storage returned from "LLVMGetDefaultTargetTriple()". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:20: noescape: Resource "Triple" is not freed or pointed-to in "strlen". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:21: leaked_storage: Variable "Triple" going out of scope leaks the storage it points to. +# 19| char *Triple = LLVMGetDefaultTargetTriple(); +# 20| if (strlen(Triple) == 0) { +# 21|-> GTEST_SKIP(); +# 22| LLVMDisposeMessage(Triple); +# 23| return; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: alloc_fn: Storage is returned from allocation function "LLVMCreatePassBuilderOptions". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: var_assign: Assigning: "Options" = storage returned from "LLVMCreatePassBuilderOptions()". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:74: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:75: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:76: leaked_storage: Variable "Options" going out of scope leaks the storage it points to. +# 74| LLVMErrorRef E1 = LLVMRunPasses(Module, "", TM, Options); +# 75| LLVMErrorRef E2 = LLVMRunPasses(Module, "does-not-exist-pass", TM, Options); +# 76|-> ASSERT_TRUE(E1); +# 77| ASSERT_TRUE(E2); +# 78| LLVMConsumeError(E1); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: alloc_fn: Storage is returned from allocation function "LLVMCreatePassBuilderOptions". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:73: var_assign: Assigning: "Options" = storage returned from "LLVMCreatePassBuilderOptions()". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:74: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:75: noescape: Resource "Options" is not freed or pointed-to in "LLVMRunPasses". +llvm-17.0.6.src/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp:77: leaked_storage: Variable "Options" going out of scope leaks the storage it points to. +# 75| LLVMErrorRef E2 = LLVMRunPasses(Module, "does-not-exist-pass", TM, Options); +# 76| ASSERT_TRUE(E1); +# 77|-> ASSERT_TRUE(E2); +# 78| LLVMConsumeError(E1); +# 79| LLVMConsumeError(E2); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ProfileData/CoverageMappingTest.cpp:27: var_decl: Declaring variable "Found" without initializer. +llvm-17.0.6.src/unittests/ProfileData/CoverageMappingTest.cpp:33: uninit_use: Using uninitialized value "Found". +# 31| FoundMsg = CME.message(); +# 32| }); +# 33|-> if (Expected == Found) +# 34| return ::testing::AssertionSuccess(); +# 35| return ::testing::AssertionFailure() << "error: " << FoundMsg << "\n"; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ProfileData/InstrProfTest.cpp:31: var_decl: Declaring variable "Found" without initializer. +llvm-17.0.6.src/unittests/ProfileData/InstrProfTest.cpp:37: uninit_use: Using uninitialized value "Found". +# 35| FoundMsg = IPE.message(); +# 36| }); +# 37|-> if (Expected == Found) +# 38| return ::testing::AssertionSuccess(); +# 39| return ::testing::AssertionFailure() << "error: " << FoundMsg << "\n"; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ProfileData/InstrProfTest.cpp:348: var_decl: Declaring variable "MR". +llvm-17.0.6.src/unittests/ProfileData/InstrProfTest.cpp:353: uninit_use: Using uninitialized value "MR". Field "MR.AllocSites.InlineElts" is uninitialized. +# 351| for (const auto &Frames : CallSiteFrames) +# 352| MR.CallSites.push_back(Frames); +# 353|-> return MR; +# 354| } +# 355| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ProfileData/MemProfTest.cpp:87: var_decl: Declaring variable "Result". +llvm-17.0.6.src/unittests/ProfileData/MemProfTest.cpp:90: uninit_use: Using uninitialized value "Result". Field "Result.InlineElts" is uninitialized. +# 88| // Mimic an entry for a non position independent executable. +# 89| Result.emplace_back(0x0, 0x40000, 0x0); +# 90|-> return Result; +# 91| } +# 92| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/ProfileData/MemProfTest.cpp:121: var_decl: Declaring variable "Schema". +llvm-17.0.6.src/unittests/ProfileData/MemProfTest.cpp:125: uninit_use: Using uninitialized value "Schema". Field "Schema.InlineElts" is uninitialized. +# 123| #include "llvm/ProfileData/MIBEntryDef.inc" +# 124| #undef MIBEntryDef +# 125|-> return Schema; +# 126| } +# 127| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/Support/AllocatorTest.cpp:32: move: "Alloc" is moved (indicated by "std::move(Alloc)"). +llvm-17.0.6.src/unittests/Support/AllocatorTest.cpp:33: use_after_move: "Alloc" is used after it has been already moved. +# 31| +# 32| BumpPtrAllocator Alloc2 = std::move(Alloc); +# 33|-> EXPECT_EQ(0U, Alloc.GetNumSlabs()); +# 34| EXPECT_EQ(1U, Alloc2.GetNumSlabs()); +# 35| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/Support/AllocatorTest.cpp:43: move: "Alloc2" is moved (indicated by "std::move(Alloc2)"). +llvm-17.0.6.src/unittests/Support/AllocatorTest.cpp:44: use_after_move: "Alloc2" is used after it has been already moved. +# 42| +# 43| Alloc = std::move(Alloc2); +# 44|-> EXPECT_EQ(0U, Alloc2.GetNumSlabs()); +# 45| EXPECT_EQ(1U, Alloc.GetNumSlabs()); +# 46| } + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/Casting.cpp:183: alloc_fn: Storage is returned from allocation function "release". [Note: The source code implementation of the function has been overridden by a builtin model.] +llvm-17.0.6.src/unittests/Support/Casting.cpp:183: leaked_storage: Ignoring storage allocated by "FP.release()" leaks it. +# 181| "Incorrect deduced return type!"); +# 182| EXPECT_NE(FP.get(), null_foo); +# 183|-> FP.release(); +# 184| } +# 185| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/unittests/Support/Casting.cpp:275: extract: Calling "get" which extracts wrapped state from local "D". +llvm-17.0.6.src/unittests/Support/Casting.cpp:275: assign: Assigning: "OrigD" = "D.get()". +llvm-17.0.6.src/unittests/Support/Casting.cpp:297: invalidate: Calling "operator =" invalidates the internal representation of local "D". +llvm-17.0.6.src/unittests/Support/Casting.cpp:298: use_after_free: Using invalidated internal representation of local "D". +# 296| // nullptr; +# 297| D = unique_dyn_cast(NewB); +# 298|-> ASSERT_EQ(OrigD, D.get()); +# 299| ASSERT_EQ(nullptr, NewB); +# 300| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/Support/DivisionByConstantTest.cpp:78: var_decl: Declaring variable "Magics". +llvm-17.0.6.src/unittests/Support/DivisionByConstantTest.cpp:81: uninit_use_in_call: Using uninitialized value "Magics.ShiftAmount" when calling "SignedDivisionByConstantInfo". +# 79| if (!(Divisor.isOne() || Divisor.isAllOnes())) +# 80| Magics = SignedDivisionByConstantInfo::get(Divisor); +# 81|-> EnumerateAPInts(Bits, [Divisor, Magics, Bits](const APInt &Numerator) { +# 82| if (Numerator.isMinSignedValue() && Divisor.isAllOnes()) +# 83| return; // Overflow is undefined behavior. + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/Support/FormatVariadicTest.cpp:678: move: "R" is moved (indicated by "std::move(R)"). +llvm-17.0.6.src/unittests/Support/FormatVariadicTest.cpp:680: use_after_move: "R" is used after it has been already moved. +# 678| EXPECT_EQ("0C 3M", formatv("{0}", std::move(R)).str()); +# 679| EXPECT_EQ("0C 3M", formatv("{0}", Recorder()).str()); +# 680|-> EXPECT_EQ(0, R.Copied); +# 681| EXPECT_EQ(0, R.Moved); +# 682| } + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/Support/FormatVariadicTest.cpp:697: move: "E1" is moved (indicated by "std::move(E1)"). +llvm-17.0.6.src/unittests/Support/FormatVariadicTest.cpp:698: use_after_move: "E1" is used after it has been already moved. +# 696| EXPECT_TRUE(E1.isA()); // not consumed +# 697| EXPECT_EQ("X", formatv("{0}", fmt_consume(std::move(E1))).str()); +# 698|-> EXPECT_FALSE(E1.isA()); // consumed +# 699| } +# 700| + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/Support/Path.cpp:1429: move: "mfr" is moved (indicated by "std::move(mfr)"). +llvm-17.0.6.src/unittests/Support/Path.cpp:1430: use_after_move: "mfr" is used after it has been already moved. +# 1428| // Move it out of the scope and confirm mfr is reset. +# 1429| MaybeMFR = std::move(mfr); +# 1430|-> EXPECT_FALSE(mfr); +# 1431| #if !defined(NDEBUG) && GTEST_HAS_DEATH_TEST +# 1432| EXPECT_DEATH(mfr.data(), "Mapping failed but used anyway!"); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/Path.cpp:1449: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-17.0.6.src/unittests/Support/Path.cpp:1450: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1448| int FD; +# 1449| EC = fs::openFileForRead(Twine(TempPath), FD); +# 1450|-> ASSERT_NO_ERROR(EC); +# 1451| fs::mapped_file_region mfr(fs::convertFDToNativeFile(FD), +# 1452| fs::mapped_file_region::readonly, Size, 0, EC); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/Path.cpp:1705: open_arg: "openFileForRead" opens handle stored into "FileDescriptor2". +llvm-17.0.6.src/unittests/Support/Path.cpp:1705: leaked_handle: Handle variable "FileDescriptor2" going out of scope leaks the handle. +# 1703| int FileDescriptor2; +# 1704| SmallString<64> ResultPath; +# 1705|-> ASSERT_NO_ERROR(fs::openFileForRead(Twine(TempPath), FileDescriptor2, +# 1706| fs::OF_None, &ResultPath)) +# 1707| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/Path.cpp:1923: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-17.0.6.src/unittests/Support/Path.cpp:1923: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1921| +# 1922| int FD; +# 1923|-> ASSERT_NO_ERROR(fs::openFileForRead(NonExistantFile, FD)); +# 1924| FileDescriptorCloser Closer(FD); +# 1925| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/Path.cpp:1947: open_arg: "openFileForReadWrite" opens handle stored into "FD". +llvm-17.0.6.src/unittests/Support/Path.cpp:1947: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 1945| +# 1946| int FD; +# 1947|-> ASSERT_NO_ERROR(fs::openFileForReadWrite(NonExistantFile, FD, +# 1948| fs::CD_OpenExisting, fs::OF_None)); +# 1949| FileDescriptorCloser Closer(FD); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:373: open_arg: "openFileForRead" opens handle stored into "fd". +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:373: leaked_handle: Handle variable "fd" going out of scope leaks the handle. +# 371| sys::WEM_UTF16)); +# 372| int fd = 0; +# 373|-> ASSERT_NO_ERROR(fs::openFileForRead(file_pathname.c_str(), fd)); +# 374| #if defined(_WIN32) +# 375| char buf[18]; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:427: open_arg: "openFileForReadWrite" opens handle stored into "FD2". +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:427: leaked_handle: Handle variable "FD2" going out of scope leaks the handle. +# 425| // Child process. +# 426| int FD2; +# 427|-> ASSERT_NO_ERROR(fs::openFileForReadWrite(LockedFile, FD2, +# 428| fs::CD_OpenExisting, fs::OF_None)); +# 429| + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:427: open_arg: "openFileForReadWrite" opens handle stored into "FD2". +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:430: noescape: Resource "FD2" is not freed or pointed-to in "tryLockFile". +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:431: leaked_handle: Handle variable "FD2" going out of scope leaks the handle. +# 429| +# 430| std::error_code ErrC = fs::tryLockFile(FD2, std::chrono::seconds(5)); +# 431|-> ASSERT_NO_ERROR(ErrC); +# 432| ASSERT_NO_ERROR(fs::unlockFile(FD2)); +# 433| close(FD2); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:427: open_arg: "openFileForReadWrite" opens handle stored into "FD2". +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:430: noescape: Resource "FD2" is not freed or pointed-to in "tryLockFile". +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:432: noescape: Resource "FD2" is not freed or pointed-to in "unlockFile". +llvm-17.0.6.src/unittests/Support/ProgramTest.cpp:432: leaked_handle: Handle variable "FD2" going out of scope leaks the handle. +# 430| std::error_code ErrC = fs::tryLockFile(FD2, std::chrono::seconds(5)); +# 431| ASSERT_NO_ERROR(ErrC); +# 432|-> ASSERT_NO_ERROR(fs::unlockFile(FD2)); +# 433| close(FD2); +# 434| exit(0); + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/Support/RegexTest.cpp:169: move: "r1" is moved (indicated by "std::move(r1)"). +llvm-17.0.6.src/unittests/Support/RegexTest.cpp:172: use_after_move: "r1" is used after it has been already moved. +# 170| EXPECT_TRUE(r2.match("916")); +# 171| std::string Error; +# 172|-> EXPECT_FALSE(r1.isValid(Error)); +# 173| } +# 174| + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/unittests/Support/TrailingObjectsTest.cpp:77: new_object: Calling single-object form of 'new': "new (Mem) ::Class2(HasShort, HasDouble)". +llvm-17.0.6.src/unittests/Support/TrailingObjectsTest.cpp:77: assign: Assigning: "C" = "new (Mem) ::Class2(HasShort, HasDouble)". +llvm-17.0.6.src/unittests/Support/TrailingObjectsTest.cpp:79: callee_ptr_arith: Passing "C" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 77| Class2 *C = new (Mem) Class2(HasShort, HasDouble); +# 78| if (HasShort) +# 79|-> *C->getTrailingObjects() = S; +# 80| if (HasDouble) +# 81| *C->getTrailingObjects() = D; + +Error: ARRAY_VS_SINGLETON (CWE-119): +llvm-17.0.6.src/unittests/Support/TrailingObjectsTest.cpp:77: new_object: Calling single-object form of 'new': "new (Mem) ::Class2(HasShort, HasDouble)". +llvm-17.0.6.src/unittests/Support/TrailingObjectsTest.cpp:77: assign: Assigning: "C" = "new (Mem) ::Class2(HasShort, HasDouble)". +llvm-17.0.6.src/unittests/Support/TrailingObjectsTest.cpp:81: callee_ptr_arith: Passing "C" to function "getTrailingObjects" which uses it as an array. This might corrupt or misinterpret adjacent memory locations. +# 79| *C->getTrailingObjects() = S; +# 80| if (HasDouble) +# 81|-> *C->getTrailingObjects() = D; +# 82| return C; +# 83| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/Support/YAMLIOTest.cpp:1782: var_decl: Declaring variable "num" without initializer. +llvm-17.0.6.src/unittests/Support/YAMLIOTest.cpp:1783: uninit_use_in_call: Using uninitialized value "num" when calling "mapRequired". +# 1781| static void mappingFraction(IO &io, MyDouble &d) { +# 1782| double num, denom; +# 1783|-> io.mapRequired("numerator", num); +# 1784| io.mapRequired("denominator", denom); +# 1785| // convert fraction to double + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/Support/YAMLIOTest.cpp:1782: var_decl: Declaring variable "denom" without initializer. +llvm-17.0.6.src/unittests/Support/YAMLIOTest.cpp:1784: uninit_use_in_call: Using uninitialized value "denom" when calling "mapRequired". +# 1782| double num, denom; +# 1783| io.mapRequired("numerator", num); +# 1784|-> io.mapRequired("denominator", denom); +# 1785| // convert fraction to double +# 1786| d.value = num/denom; + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/Support/raw_pwrite_stream_test.cpp:62: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-17.0.6.src/unittests/Support/raw_pwrite_stream_test.cpp:62: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 60| if (ParentPath) { +# 61| Path = ParentPath; +# 62|-> ASSERT_NO_ERROR(sys::fs::openFileForRead(Path, FD)); +# 63| } else { +# 64| ASSERT_NO_ERROR(sys::fs::createTemporaryFile("foo", "bar", FD, Path)); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/unittests/TargetParser/Host.cpp:400: open_arg: "openFileForRead" opens handle stored into "FD". +llvm-17.0.6.src/unittests/TargetParser/Host.cpp:400: leaked_handle: Handle variable "FD" going out of scope leaks the handle. +# 398| +# 399| int FD = 0; +# 400|-> ASSERT_NO_ERROR(fs::openFileForRead(OutputPath, FD)); +# 401| Size = ::lseek(FD, 0, SEEK_END); +# 402| ASSERT_NE(-1, Size); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/Transforms/IPO/AttributorTest.cpp:60: var_decl: Declaring variable "AC". +llvm-17.0.6.src/unittests/Transforms/IPO/AttributorTest.cpp:61: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 59| InformationCache InfoCache(M, AG, Allocator, nullptr); +# 60| AttributorConfig AC(CGUpdater); +# 61|-> Attributor A(Functions, InfoCache, AC); +# 62| +# 63| Function *F = M.getFunction("foo"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/Transforms/IPO/AttributorTest.cpp:60: var_decl: Declaring variable "AC". +llvm-17.0.6.src/unittests/Transforms/IPO/AttributorTest.cpp:61: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 59| InformationCache InfoCache(M, AG, Allocator, nullptr); +# 60| AttributorConfig AC(CGUpdater); +# 61|-> Attributor A(Functions, InfoCache, AC); +# 62| +# 63| Function *F = M.getFunction("foo"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/Transforms/IPO/AttributorTest.cpp:155: var_decl: Declaring variable "AC". +llvm-17.0.6.src/unittests/Transforms/IPO/AttributorTest.cpp:157: uninit_use_in_call: Using uninitialized value "AC.IPOAmendableCB". Field "AC.IPOAmendableCB.callable" is uninitialized when calling "AttributorConfig". +# 155| AttributorConfig AC(CGUpdater); +# 156| AC.DeleteFns = false; +# 157|-> Attributor A(Functions, InfoCache, AC); +# 158| +# 159| Function &F1 = *M.getFunction("func1"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/Transforms/IPO/AttributorTest.cpp:155: var_decl: Declaring variable "AC". +llvm-17.0.6.src/unittests/Transforms/IPO/AttributorTest.cpp:157: uninit_use_in_call: Using uninitialized value "AC.OREGetter". Field "AC.OREGetter.callable" is uninitialized when calling "AttributorConfig". +# 155| AttributorConfig AC(CGUpdater); +# 156| AC.DeleteFns = false; +# 157|-> Attributor A(Functions, InfoCache, AC); +# 158| +# 159| Function &F1 = *M.getFunction("func1"); + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/unittests/Transforms/Utils/FunctionComparatorTest.cpp:99: temporary: Creating temporary of type "llvm::APFloat" in "llvm::APFloat(2.)". +llvm-17.0.6.src/unittests/Transforms/Utils/FunctionComparatorTest.cpp:99: uninit_use_in_call: Using uninitialized value ".U" when calling "~APFloat". +# 97| int testCmpPrimitives() { +# 98| beginCompare(); +# 99|-> return +# 100| cmpNumbers(2, 3) + +# 101| cmpAPInts(APInt(32, 2), APInt(32, 3)) + + +Error: USE_AFTER_MOVE (CWE-457): +llvm-17.0.6.src/unittests/XRay/ProfileTest.cpp:95: move: "P0" is moved (indicated by "std::move(P0)"). +llvm-17.0.6.src/unittests/XRay/ProfileTest.cpp:109: use_after_move: "P0" is used after it has been already moved. +# 107| Field(&Profile::Data::CumulativeLocalTime, +# 108| Eq(100u))))))))); +# 109|-> EXPECT_THAT(P0, UnorderedElementsAre()); +# 110| } +# 111| + +Error: INTEGER_OVERFLOW (CWE-190): +llvm-17.0.6.src/utils/TableGen/CodeGenMapTable.cpp:543: underflow: The decrement operator on the unsigned variable "j" might result in an underflow. +llvm-17.0.6.src/utils/TableGen/CodeGenMapTable.cpp:541: overflow_sink: "j", which might have underflowed, is passed to "FieldValues[j]". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 539| Init *CurVal = FieldValues[i]; +# 540| for (unsigned j = i+1; j < FieldValues.size(); j++) { +# 541|-> if (CurVal == FieldValues[j]) { +# 542| FieldValues.erase(FieldValues.begin()+j); +# 543| --j; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/utils/TableGen/CodeGenRegisters.cpp:491: var_decl: Declaring variable "Parts". +llvm-17.0.6.src/utils/TableGen/CodeGenRegisters.cpp:515: uninit_use_in_call: Using uninitialized value "Parts". Field "Parts.InlineElts" is uninitialized when calling "getConcatSubRegIndex". +# 513| // Each part of Cand is a sub-register of this. Make the full Cand also +# 514| // a sub-register with a concatenated sub-register index. +# 515|-> CodeGenSubRegIndex *Concat = RegBank.getConcatSubRegIndex(Parts); +# 516| std::pair NewSubReg = +# 517| std::make_pair(Concat, Cand); + +Error: RESOURCE_LEAK (CWE-772): +llvm-17.0.6.src/utils/TableGen/DAGISelMatcher.cpp:47: alloc_fn: Storage is returned from allocation function "takeNext". +llvm-17.0.6.src/utils/TableGen/DAGISelMatcher.cpp:47: leaked_storage: Ignoring storage allocated by "Cur->takeNext()" leaks it. +# 45| +# 46| if (!Cur) return nullptr; +# 47|-> Cur->takeNext(); +# 48| Cur->setNext(Other->takeNext()); +# 49| return this; + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/utils/TableGen/DFAEmitter.cpp:61: var_decl: Declaring variable "NewStates". +llvm-17.0.6.src/utils/TableGen/DFAEmitter.cpp:83: uninit_use_in_call: Using uninitialized value "NewStates". Field "NewStates.InlineElts" is uninitialized when calling "insert". +# 81| sort(TI); +# 82| TI.erase(std::unique(TI.begin(), TI.end()), TI.end()); +# 83|-> unsigned ToId = DfaStates.insert(NewStates); +# 84| DfaTransitions.emplace(std::make_pair(FromId, A), std::make_pair(ToId, TI)); +# 85| } + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/utils/TableGen/DFAPacketizerEmitter.cpp:178: var_decl: Declaring variable "Resources". +llvm-17.0.6.src/utils/TableGen/DFAPacketizerEmitter.cpp:188: uninit_use: Using uninitialized value "Resources". Field "Resources.InlineElts" is uninitialized. +# 186| Resources.push_back(StageResources); +# 187| } +# 188|-> return Resources; +# 189| } +# 190| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/utils/TableGen/FastISelEmitter.cpp:152: var_decl: Declaring variable "Result". +llvm-17.0.6.src/utils/TableGen/FastISelEmitter.cpp:158: uninit_use: Using uninitialized value "Result". Field "Result.Operands.InlineElts" is uninitialized. +# 156| else +# 157| Result.Operands.push_back(OpKind::getImm(0)); +# 158|-> return Result; +# 159| } +# 160| + +Error: WRAPPER_ESCAPE (CWE-825): +llvm-17.0.6.src/utils/TableGen/GlobalISel/GIMatchTree.cpp:352: extract: Calling "get" which extracts wrapped state from local "TreeRoot". +llvm-17.0.6.src/utils/TableGen/GlobalISel/GIMatchTree.cpp:352: escape: The internal representation of local "TreeRoot" escapes into "this->TreeNode", but is destroyed when it exits scope. +# 350| +# 351| std::unique_ptr TreeRoot = std::make_unique(); +# 352|-> TreeNode = TreeRoot.get(); +# 353| runStep(); +# 354| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/utils/TableGen/X86DisassemblerTables.cpp:823: var_decl: Declaring variable "OperandList". +llvm-17.0.6.src/utils/TableGen/X86DisassemblerTables.cpp:830: uninit_use_in_call: Using uninitialized value "OperandList". Field "OperandList.InlineElts" is uninitialized when calling "operator []". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 828| OperandList.push_back(std::make_pair(Encoding, Type)); +# 829| } +# 830|-> unsigned &N = OperandSets[OperandList]; +# 831| if (N != 0) continue; +# 832| + +Error: UNINIT (CWE-457): +llvm-17.0.6.src/utils/TableGen/X86DisassemblerTables.cpp:854: var_decl: Declaring variable "OperandList". +llvm-17.0.6.src/utils/TableGen/X86DisassemblerTables.cpp:860: uninit_use_in_call: Using uninitialized value "OperandList". Field "OperandList.InlineElts" is uninitialized when calling "operator []". [Note: The source code implementation of the function has been overridden by a builtin model.] +# 858| OperandList.push_back(std::make_pair(Encoding, Type)); +# 859| } +# 860|-> o.indent(i * 2) << (OperandSets[OperandList] - 1) << ",\n"; +# 861| +# 862| o.indent(i * 2) << "/* " << InstructionSpecifiers[index].name << " */\n"; + +Error: OVERRUN (CWE-119): +third-party/unittest/googlemock/src/gmock.cc:208: alias: Assigning: "argv" = "&argv0". "argv" now points to element 0 of "argv0" (which consists of 1 8-byte elements). +third-party/unittest/googlemock/src/gmock.cc:210: overrun-buffer-val: Overrunning buffer pointed to by "argv" of 1 8-byte elements by passing it to a function which accesses it at element index 2 (byte offset 23). +# 208| char** argv = &argv0; +# 209| +# 210|-> internal::InitGoogleMockImpl(&argc, argv); +# 211| } +# 212| + +Error: CTOR_DTOR_LEAK (CWE-401): +third-party/unittest/googletest/src/gtest-port.cc:1075: alloc_fn: Calling allocation function "dup". +third-party/unittest/googletest/src/gtest-port.cc:1075: assign: Assigning: "this->uncaptured_fd_" = "dup(fd)". +third-party/unittest/googletest/src/gtest-port.cc:1075: ctor_dtor_leak: The constructor allocates field "uncaptured_fd_" of "testing::internal::CapturedStream" but the destructor and whatever functions it calls do not free it. +# 1073| public: +# 1074| // The ctor redirects the stream to a temporary file. +# 1075|-> explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { +# 1076| # if GTEST_OS_WINDOWS +# 1077| char temp_dir_path[MAX_PATH + 1] = { '\0' }; // NOLINT + +Error: OVERRUN (CWE-119): +third-party/unittest/googletest/src/gtest-port.cc:1214: return_constant: Function call "testing::internal::GetFileSize(file)" may return 18446744073709551615. +third-party/unittest/googletest/src/gtest-port.cc:1214: assignment: Assigning: "file_size" = "testing::internal::GetFileSize(file)". The value of "file_size" is now 18446744073709551615. +third-party/unittest/googletest/src/gtest-port.cc:1227: cond_at_least: Checking "bytes_read < file_size" implies that "bytes_read" is at least 18446744073709551615 on the false branch. +third-party/unittest/googletest/src/gtest-port.cc:1229: overrun-buffer-arg: Calling "basic_string" with "buffer" and "bytes_read" is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned. [Note: The source code implementation of the function has been overridden by a builtin model.] +# 1227| } while (bytes_last_read > 0 && bytes_read < file_size); +# 1228| +# 1229|-> const std::string content(buffer, bytes_read); +# 1230| delete[] buffer; +# 1231| + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/include/llvm/ADT/SmallVector.h:634: identical_branches: The same code is executed regardless of whether "false" is true, because the 'then' and 'else' branches are identical. Should one of the branches be modified, or the entire 'if' statement replaced? +# 632| this->reserve(N); +# 633| for (auto I = this->end(), E = this->begin() + N; I != E; ++I) +# 634|-> if (ForOverwrite) +# 635| new (&*I) T; +# 636| else + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Analysis/ValueTracking.cpp:4842: original: "KnownLHS.isKnownNeverLogicalNegZero(F, Op->getType())" looks like the original copy. +llvm-17.0.6.src/lib/Analysis/ValueTracking.cpp:4852: copy_paste_error: "isKnownNeverLogicalNegZero" in "KnownLHS.isKnownNeverLogicalNegZero(F, Op->getType())" looks like a copy-paste error. +llvm-17.0.6.src/lib/Analysis/ValueTracking.cpp:4852: remediation: Should it say "isKnownNeverLogicalPosZero" instead? +# 4850| +# 4851| // Only fsub -0, +0 can return -0 +# 4852|-> if ((KnownLHS.isKnownNeverLogicalNegZero(*F, Op->getType()) || +# 4853| KnownRHS.isKnownNeverLogicalPosZero(*F, Op->getType())) && +# 4854| // Make sure output negative denormal can't flush to -0 + +Error: SNYK_CODE_WARNING (CWE-125): +llvm-17.0.6.src/lib/CodeGen/GlobalMerge.cpp:350:15: error[cpp/SizeAsIndex]: The size of the buffer from size is used as an array index. This value could be one larger than the last possible index of the array, causing a buffer overread or overwrite. +# 348| CreateGlobalSet().Globals.set(GI); +# 349| } else { +# 350|-> ++UsedGlobalSets[CurGVOnlySetIdx].UsageCount; +# 351| } +# 352| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3860: original: "SUB" looks like the original copy. +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3846: copy_paste_error: "SUB" looks like a copy-paste error. +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3846: remediation: Should it say "ADD" instead? +# 3844| SDValue N11 = N1.getOperand(1); +# 3845| if (SDValue NewC = DAG.FoldConstantArithmetic(ISD::SUB, DL, VT, {N0, N11})) +# 3846|-> return DAG.getNode(ISD::SUB, DL, VT, NewC, N1.getOperand(0)); +# 3847| } +# 3848| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3957: original: "ADD" looks like the original copy. +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3963: copy_paste_error: "ADD" looks like a copy-paste error. +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:3963: remediation: Should it say "SUB" instead? +# 3961| } +# 3962| // y - (x + C) -> (y - x) - C +# 3963|-> if (N1.getOpcode() == ISD::ADD && N1.hasOneUse() && +# 3964| isConstantOrConstantVector(N1.getOperand(1), /*NoOpaques=*/true)) { +# 3965| SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, N1.getOperand(0)); + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18182: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18196: do_while_false_condition: This loop will never continue since the condition "false" is never true. +#18180| do { +#18181| if (!getTruncatedStoreValue(ST, Val)) +#18182|-> continue; +#18183| if (!isTypeLegal(LDMemType)) +#18184| continue; + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18184: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18196: do_while_false_condition: This loop will never continue since the condition "false" is never true. +#18182| continue; +#18183| if (!isTypeLegal(LDMemType)) +#18184|-> continue; +#18185| if (STMemType != LDMemType) { +#18186| // TODO: Support vectors? This requires extract_subvector/bitcast. + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18191: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18196: do_while_false_condition: This loop will never continue since the condition "false" is never true. +#18189| Val = DAG.getNode(ISD::TRUNCATE, SDLoc(LD), LDMemType, Val); +#18190| else +#18191|-> continue; +#18192| } +#18193| if (!extendLoadedValueToExtension(LD, Val)) + +Error: UNEXPECTED_CONTROL_FLOW (CWE-398): +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18194: continue_in_do_while_false: A "continue" statement within a "do ... while (...)" loop only continues execution of the loop body if the loop continuation condition is still true. Since the condition will never be true in a "do ... while (false)" loop, the "continue"statement has the same effect as a "break" statement. Did you intend execution to continue at the top of the loop? +llvm-17.0.6.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:18196: do_while_false_condition: This loop will never continue since the condition "false" is never true. +#18192| } +#18193| if (!extendLoadedValueToExtension(LD, Val)) +#18194|-> continue; +#18195| return ReplaceLd(LD, Val, Chain); +#18196| } while (false); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:4828: original: "this->SelectMultiVectorMove(Node, 4U, ZAD0, MOVA_4ZMXI_H_D)" looks like the original copy. +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:4786: copy_paste_error: "SelectMultiVectorMove" in "this->SelectMultiVectorMove(Node, 2U, ZAD0, MOVA_2ZMXI_H_D)" looks like a copy-paste error. +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:4786: remediation: Should it say "SelectMultiVectorMove" instead? +# 4784| return; +# 4785| } else if (VT == MVT::nxv2i64 || VT == MVT::nxv2f64) { +# 4786|-> SelectMultiVectorMove<0, 2>(Node, 2, AArch64::ZAD0, +# 4787| AArch64::MOVA_2ZMXI_H_D); +# 4788| return; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:18072: original: "CTVal->isOne() || CFVal->isOne()" looks like the original copy. +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:18074: copy_paste_error: "isOne" in "CTVal->isOne() || CFVal->isAllOnes()" looks like a copy-paste error. +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:18074: remediation: Should it say "isAllOnes" instead? +#18072| (CTVal->isOne() || CFVal->isOne())) && +#18073| !(LHS.getOpcode() == AArch64ISD::CSNEG && +#18074|-> (CTVal->isOne() || CFVal->isAllOnes()))) +#18075| return SDValue(); +#18076| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:22871: original: "LHS" looks like the original copy. +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:22878: copy_paste_error: "LHS" looks like a copy-paste error. +llvm-17.0.6.src/lib/Target/AArch64/AArch64ISelLowering.cpp:22878: remediation: Should it say "RHS" instead? +#22876| LHS.getOpcode() == ISD::TRUNCATE) { +#22877| TruncHigh = LHS; +#22878|-> if (LHS.getOpcode() == ISD::BITCAST) +#22879| ExtractHigh = RHS.getOperand(0); +#22880| else + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:4447: original: "ssub" looks like the original copy. +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:4463: copy_paste_error: "ssub" looks like a copy-paste error. +llvm-17.0.6.src/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:4463: remediation: Should it say "hsub" instead? +# 4461| } else if (EltSize == 32) { +# 4462| Opc = AArch64::INSvi32lane; +# 4463|-> SubregIdx = AArch64::ssub; +# 4464| } else if (EltSize == 64) { +# 4465| Opc = AArch64::INSvi64lane; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:10310: original: "LHS.getOperand(1U)" looks like the original copy. +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:10309: copy_paste_error: "LHS" in "RHS.getOperand(0U) == LHS.getOperand(0U)" looks like a copy-paste error. +llvm-17.0.6.src/lib/Target/AMDGPU/SIISelLowering.cpp:10309: remediation: Should it say "RHS" instead? +#10307| const ConstantSDNode *Mask = dyn_cast(RHS.getOperand(1)); +#10308| if ((LCC == ISD::SETO || LCC == ISD::SETUO) && Mask && +#10309|-> (RHS.getOperand(0) == LHS.getOperand(0) && +#10310| LHS.getOperand(0) == LHS.getOperand(1))) { +#10311| const unsigned OrdMask = SIInstrFlags::S_NAN | SIInstrFlags::Q_NAN; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Target/AMDGPU/SIModeRegister.cpp:73: original: "this->Mask & S.Mask" looks like the original copy. +llvm-17.0.6.src/lib/Target/AMDGPU/SIModeRegister.cpp:73: copy_paste_error: "Mask" in "this->Mode & S.Mask" looks like a copy-paste error. +llvm-17.0.6.src/lib/Target/AMDGPU/SIModeRegister.cpp:73: remediation: Should it say "Mode" instead? +# 71| +# 72| bool isCompatible(Status &S) { +# 73|-> return ((Mask & S.Mask) == S.Mask) && ((Mode & S.Mask) == S.Mode); +# 74| } +# 75| + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5811: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "4". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5809| +# 5810| OutlinerCosts(const ARMSubtarget &target) +# 5811|-> : CallTailCall(target.isThumb() ? 4 : 4), +# 5812| FrameTailCall(target.isThumb() ? 0 : 0), +# 5813| CallThunk(target.isThumb() ? 4 : 4), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5812: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "0". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5810| OutlinerCosts(const ARMSubtarget &target) +# 5811| : CallTailCall(target.isThumb() ? 4 : 4), +# 5812|-> FrameTailCall(target.isThumb() ? 0 : 0), +# 5813| CallThunk(target.isThumb() ? 4 : 4), +# 5814| FrameThunk(target.isThumb() ? 0 : 0), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5813: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "4". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5811| : CallTailCall(target.isThumb() ? 4 : 4), +# 5812| FrameTailCall(target.isThumb() ? 0 : 0), +# 5813|-> CallThunk(target.isThumb() ? 4 : 4), +# 5814| FrameThunk(target.isThumb() ? 0 : 0), +# 5815| CallNoLRSave(target.isThumb() ? 4 : 4), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5814: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "0". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5812| FrameTailCall(target.isThumb() ? 0 : 0), +# 5813| CallThunk(target.isThumb() ? 4 : 4), +# 5814|-> FrameThunk(target.isThumb() ? 0 : 0), +# 5815| CallNoLRSave(target.isThumb() ? 4 : 4), +# 5816| FrameNoLRSave(target.isThumb() ? 2 : 4), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5815: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "4". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5813| CallThunk(target.isThumb() ? 4 : 4), +# 5814| FrameThunk(target.isThumb() ? 0 : 0), +# 5815|-> CallNoLRSave(target.isThumb() ? 4 : 4), +# 5816| FrameNoLRSave(target.isThumb() ? 2 : 4), +# 5817| CallRegSave(target.isThumb() ? 8 : 12), + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:5821: identical_branches: Ternary expression on condition "target->isThumb()" has identical then and else expressions: "8". Should one of the expressions be modified, or the entire ternary expression replaced? +# 5819| CallDefault(target.isThumb() ? 8 : 12), +# 5820| FrameDefault(target.isThumb() ? 2 : 4), +# 5821|-> SaveRestoreLROnStack(target.isThumb() ? 8 : 8) {} +# 5822| }; +# 5823| + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:6319: original: "MI->readsRegister(llvm::Register(LR), TRI)" looks like the original copy. +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:6417: copy_paste_error: "readsRegister" in "MI->readsRegister(llvm::Register(ITSTATE), TRI)" looks like a copy-paste error. +llvm-17.0.6.src/lib/Target/ARM/ARMBaseInstrInfo.cpp:6417: remediation: Should it say "modifiesRegister" instead? +# 6415| +# 6416| // Be conservative with IT blocks. +# 6417|-> if (MI.readsRegister(ARM::ITSTATE, TRI) || +# 6418| MI.modifiesRegister(ARM::ITSTATE, TRI)) +# 6419| return outliner::InstrType::Illegal; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:14907: original: "llvm::isNullConstant(CSInc.getOperand(1U))" looks like the original copy. +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:14912: copy_paste_error: "isNullConstant" in "llvm::isNullConstant(CSInc.getOperand(1U))" looks like a copy-paste error. +llvm-17.0.6.src/lib/Target/ARM/ARMISelLowering.cpp:14912: remediation: Should it say "isOneConstant" instead? +#14910| } +#14911| if (CSInc.getOpcode() == ARMISD::CMOV && isOneConstant(CSInc.getOperand(0)) && +#14912|-> isNullConstant(CSInc.getOperand(1)) && CSInc->hasOneUse()) { +#14913| CC = (ARMCC::CondCodes)CSInc.getConstantOperandVal(2); +#14914| return CSInc.getOperand(4); + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:3454: original: "llvm::BinaryOperator::CreateOr(Op0, A, llvm::Twine const(""))" looks like the original copy. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:3432: copy_paste_error: "Op0" in "llvm::BinaryOperator::CreateOr(Op0, C, llvm::Twine const(""))" looks like a copy-paste error. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:3432: remediation: Should it say "Op1" instead? +# 3430| // B | ((A & B) ^ C) -> B | C +# 3431| if (match(Op1, m_c_Xor(m_c_And(m_Value(A), m_Specific(Op0)), m_Value(C)))) +# 3432|-> return BinaryOperator::CreateOr(Op0, C); +# 3433| +# 3434| // ((B | C) & A) | B -> B | (A & C) + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCalls.cpp:2255: original: "this->replaceOperand(II, 0U, X)" looks like the original copy. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCalls.cpp:2247: copy_paste_error: "X" in "this->replaceOperand(II, 0U, X)" looks like a copy-paste error. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineCalls.cpp:2247: remediation: Should it say "Y" instead? +# 2245| Value *X, *Y; +# 2246| if (match(Src0, m_FNeg(m_Value(X))) && match(Src1, m_FNeg(m_Value(Y)))) { +# 2247|-> replaceOperand(*II, 0, X); +# 2248| replaceOperand(*II, 1, Y); +# 2249| return II; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineSelect.cpp:2292: original: "SI->getFalseValue()" looks like the original copy. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineSelect.cpp:2299: copy_paste_error: "getFalseValue" in "SI->getFalseValue()" looks like a copy-paste error. +llvm-17.0.6.src/lib/Transforms/InstCombine/InstCombineSelect.cpp:2299: remediation: Should it say "getTrueValue" instead? +# 2297| if (auto *X = isExtractFromCmpXchg(SI.getFalseValue(), 0)) +# 2298| if (X == CmpXchg && X->getCompareOperand() == SI.getTrueValue()) +# 2299|-> return SI.getFalseValue(); +# 2300| +# 2301| return nullptr; + +Error: COPY_PASTE_ERROR (CWE-398): +llvm-17.0.6.src/lib/Transforms/Scalar/EarlyCSE.cpp:1007: original: "masked_store" looks like the original copy. +llvm-17.0.6.src/lib/Transforms/Scalar/EarlyCSE.cpp:1001: copy_paste_error: "masked_store" looks like a copy-paste error. +llvm-17.0.6.src/lib/Transforms/Scalar/EarlyCSE.cpp:1001: remediation: Should it say "masked_load" instead? +# 999| return isa(ThruOp(Later)); +# 1000| } +# 1001|-> if (IDE == Intrinsic::masked_load && IDL == Intrinsic::masked_store) { +# 1002| // Trying to remove a store of the loaded value. +# 1003| // Check that the pointers are the same, and + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40437: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40435: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#40433| case 34: // WriteLDIdx_ReadAdrBase +#40434| if (CPUID == 1) { // A64FXModel +#40435|-> if (AArch64_MC::isScaledAddr(*MI)) +#40436| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#40437| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40447: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40445: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#40443| } +#40444| if (CPUID == 9) { // ExynosM3Model +#40445|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#40446| return 1620; // WriteLDIdx_ReadDefault +#40447| return 1620; // WriteLDIdx_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40571: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40569: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#40567| case 43: // WriteSTIdx_ReadST_ReadAdrBase +#40568| if (CPUID == 1) { // A64FXModel +#40569|-> if (AArch64_MC::isScaledAddr(*MI)) +#40570| return 1633; // WriteSTIdx_ReadST_ReadDefault +#40571| return 1633; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40581: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40579: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#40577| } +#40578| if (CPUID == 9) { // ExynosM3Model +#40579|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#40580| return 1633; // WriteSTIdx_ReadST_ReadDefault +#40581| return 1633; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40618: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40616: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#40614| } +#40615| if (CPUID == 18) { // ThunderX2T99Model +#40616|-> if (AArch64_MC::isScaledAddr(*MI)) +#40617| return 1633; // WriteSTIdx_ReadST_ReadDefault +#40618| return 1633; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40623: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:40621: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#40619| } +#40620| if (CPUID == 19) { // ThunderX3T110Model +#40621|-> if (AArch64_MC::isScaledAddr(*MI)) +#40622| return 1633; // WriteSTIdx_ReadST_ReadDefault +#40623| return 1633; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41082: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41080: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41078| case 653: // LDRBroW +#41079| if (CPUID == 1) { // A64FXModel +#41080|-> if (AArch64_MC::isScaledAddr(*MI)) +#41081| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41082| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41092: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41090: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41088| } +#41089| if (CPUID == 9) { // ExynosM3Model +#41090|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41091| return 1699; // M3WriteLE_ReadDefault +#41092| return 1699; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41100: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41095: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41093| } +#41094| if (CPUID == 10) { // ExynosM4Model +#41095|-> if (( +#41096| AArch64_MC::isScaledAddr(*MI) +#41097| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41108: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41103: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41101| } +#41102| if (CPUID == 11) { // ExynosM5Model +#41103|-> if (( +#41104| AArch64_MC::isScaledAddr(*MI) +#41105| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41127: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41125: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41123| } +#41124| if (CPUID == 18) { // ThunderX2T99Model +#41125|-> if (AArch64_MC::isScaledAddr(*MI)) +#41126| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41127| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41132: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41130: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41128| } +#41129| if (CPUID == 19) { // ThunderX3T110Model +#41130|-> if (AArch64_MC::isScaledAddr(*MI)) +#41131| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41132| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41139: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41137: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41135| case 654: // LDRBroX +#41136| if (CPUID == 1) { // A64FXModel +#41137|-> if (AArch64_MC::isScaledAddr(*MI)) +#41138| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41139| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41149: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41147: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41145| } +#41146| if (CPUID == 9) { // ExynosM3Model +#41147|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41148| return 1706; // WriteVLD_ReadDefault +#41149| return 1706; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41157: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41152: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41150| } +#41151| if (CPUID == 10) { // ExynosM4Model +#41152|-> if (( +#41153| AArch64_MC::isScaledAddr(*MI) +#41154| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41165: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41160: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41158| } +#41159| if (CPUID == 11) { // ExynosM5Model +#41160|-> if (( +#41161| AArch64_MC::isScaledAddr(*MI) +#41162| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41184: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41182: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41180| } +#41181| if (CPUID == 18) { // ThunderX2T99Model +#41182|-> if (AArch64_MC::isScaledAddr(*MI)) +#41183| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41184| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41189: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41187: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41185| } +#41186| if (CPUID == 19) { // ThunderX3T110Model +#41187|-> if (AArch64_MC::isScaledAddr(*MI)) +#41188| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41189| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41196: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41194: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41192| case 659: // LDRDroW +#41193| if (CPUID == 1) { // A64FXModel +#41194|-> if (AArch64_MC::isScaledAddr(*MI)) +#41195| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41196| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41206: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41204: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41202| } +#41203| if (CPUID == 9) { // ExynosM3Model +#41204|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41205| return 1699; // M3WriteLE_ReadDefault +#41206| return 1699; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41214: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41209: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41207| } +#41208| if (CPUID == 10) { // ExynosM4Model +#41209|-> if (( +#41210| AArch64_MC::isScaledAddr(*MI) +#41211| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41222: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41217: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41215| } +#41216| if (CPUID == 11) { // ExynosM5Model +#41217|-> if (( +#41218| AArch64_MC::isScaledAddr(*MI) +#41219| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41241: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41239: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41237| } +#41238| if (CPUID == 18) { // ThunderX2T99Model +#41239|-> if (AArch64_MC::isScaledAddr(*MI)) +#41240| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41241| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41246: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41244: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41242| } +#41243| if (CPUID == 19) { // ThunderX3T110Model +#41244|-> if (AArch64_MC::isScaledAddr(*MI)) +#41245| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41246| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41253: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41251: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41249| case 660: // LDRDroX +#41250| if (CPUID == 1) { // A64FXModel +#41251|-> if (AArch64_MC::isScaledAddr(*MI)) +#41252| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41253| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41263: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41261: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41259| } +#41260| if (CPUID == 9) { // ExynosM3Model +#41261|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41262| return 1706; // WriteVLD_ReadDefault +#41263| return 1706; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41271: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41266: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41264| } +#41265| if (CPUID == 10) { // ExynosM4Model +#41266|-> if (( +#41267| AArch64_MC::isScaledAddr(*MI) +#41268| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41279: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41274: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41272| } +#41273| if (CPUID == 11) { // ExynosM5Model +#41274|-> if (( +#41275| AArch64_MC::isScaledAddr(*MI) +#41276| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41298: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41296: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41294| } +#41295| if (CPUID == 18) { // ThunderX2T99Model +#41296|-> if (AArch64_MC::isScaledAddr(*MI)) +#41297| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41298| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41303: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41301: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41299| } +#41300| if (CPUID == 19) { // ThunderX3T110Model +#41301|-> if (AArch64_MC::isScaledAddr(*MI)) +#41302| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41303| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41310: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41308: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41306| case 662: // LDRHHroW +#41307| if (CPUID == 1) { // A64FXModel +#41308|-> if (AArch64_MC::isScaledAddr(*MI)) +#41309| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41310| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41320: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41318: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41316| } +#41317| if (CPUID == 9) { // ExynosM3Model +#41318|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41319| return 1707; // M3WriteLB_ReadDefault +#41320| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41328: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41323: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41321| } +#41322| if (CPUID == 10) { // ExynosM4Model +#41323|-> if (( +#41324| AArch64_MC::isScaledAddr(*MI) +#41325| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41336: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41331: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41329| } +#41330| if (CPUID == 11) { // ExynosM5Model +#41331|-> if (( +#41332| AArch64_MC::isScaledAddr(*MI) +#41333| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41344: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41342: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41340| } +#41341| if (CPUID == 18) { // ThunderX2T99Model +#41342|-> if (AArch64_MC::isScaledAddr(*MI)) +#41343| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41344| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41349: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41347: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41345| } +#41346| if (CPUID == 19) { // ThunderX3T110Model +#41347|-> if (AArch64_MC::isScaledAddr(*MI)) +#41348| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41349| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41356: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41354: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41352| case 663: // LDRHHroX +#41353| if (CPUID == 1) { // A64FXModel +#41354|-> if (AArch64_MC::isScaledAddr(*MI)) +#41355| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41356| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41406: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41404: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41402| } +#41403| if (CPUID == 18) { // ThunderX2T99Model +#41404|-> if (AArch64_MC::isScaledAddr(*MI)) +#41405| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41406| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41411: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41409: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41407| } +#41408| if (CPUID == 19) { // ThunderX3T110Model +#41409|-> if (AArch64_MC::isScaledAddr(*MI)) +#41410| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41411| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41418: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41416: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41414| case 666: // LDRHroW +#41415| if (CPUID == 1) { // A64FXModel +#41416|-> if (AArch64_MC::isScaledAddr(*MI)) +#41417| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41418| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41428: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41426: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41424| } +#41425| if (CPUID == 9) { // ExynosM3Model +#41426|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41427| return 1699; // M3WriteLE_ReadDefault +#41428| return 1699; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41436: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41431: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41429| } +#41430| if (CPUID == 10) { // ExynosM4Model +#41431|-> if (( +#41432| AArch64_MC::isScaledAddr(*MI) +#41433| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41444: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41439: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41437| } +#41438| if (CPUID == 11) { // ExynosM5Model +#41439|-> if (( +#41440| AArch64_MC::isScaledAddr(*MI) +#41441| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41463: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41461: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41459| } +#41460| if (CPUID == 18) { // ThunderX2T99Model +#41461|-> if (AArch64_MC::isScaledAddr(*MI)) +#41462| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41463| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41468: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41466: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41464| } +#41465| if (CPUID == 19) { // ThunderX3T110Model +#41466|-> if (AArch64_MC::isScaledAddr(*MI)) +#41467| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41468| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41475: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41473: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41471| case 667: // LDRHroX +#41472| if (CPUID == 1) { // A64FXModel +#41473|-> if (AArch64_MC::isScaledAddr(*MI)) +#41474| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41475| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41485: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41483: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41481| } +#41482| if (CPUID == 9) { // ExynosM3Model +#41483|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41484| return 1706; // WriteVLD_ReadDefault +#41485| return 1706; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41493: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41488: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41486| } +#41487| if (CPUID == 10) { // ExynosM4Model +#41488|-> if (( +#41489| AArch64_MC::isScaledAddr(*MI) +#41490| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41501: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41496: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41494| } +#41495| if (CPUID == 11) { // ExynosM5Model +#41496|-> if (( +#41497| AArch64_MC::isScaledAddr(*MI) +#41498| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41520: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41518: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41516| } +#41517| if (CPUID == 18) { // ThunderX2T99Model +#41518|-> if (AArch64_MC::isScaledAddr(*MI)) +#41519| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41520| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41525: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41523: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41521| } +#41522| if (CPUID == 19) { // ThunderX3T110Model +#41523|-> if (AArch64_MC::isScaledAddr(*MI)) +#41524| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41525| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41532: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41530: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41528| case 672: // LDRQroW +#41529| if (CPUID == 1) { // A64FXModel +#41530|-> if (AArch64_MC::isScaledAddr(*MI)) +#41531| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41532| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41550: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41545: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41543| } +#41544| if (CPUID == 10) { // ExynosM4Model +#41545|-> if (( +#41546| AArch64_MC::isScaledAddr(*MI) +#41547| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41558: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41553: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41551| } +#41552| if (CPUID == 11) { // ExynosM5Model +#41553|-> if (( +#41554| AArch64_MC::isScaledAddr(*MI) +#41555| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41577: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41575: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41573| } +#41574| if (CPUID == 18) { // ThunderX2T99Model +#41575|-> if (AArch64_MC::isScaledAddr(*MI)) +#41576| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41577| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41582: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41580: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41578| } +#41579| if (CPUID == 19) { // ThunderX3T110Model +#41580|-> if (AArch64_MC::isScaledAddr(*MI)) +#41581| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41582| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41589: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41587: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41585| case 673: // LDRQroX +#41586| if (CPUID == 1) { // A64FXModel +#41587|-> if (AArch64_MC::isScaledAddr(*MI)) +#41588| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41589| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41650: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41648: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41646| } +#41647| if (CPUID == 18) { // ThunderX2T99Model +#41648|-> if (AArch64_MC::isScaledAddr(*MI)) +#41649| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41650| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41655: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41653: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41651| } +#41652| if (CPUID == 19) { // ThunderX3T110Model +#41653|-> if (AArch64_MC::isScaledAddr(*MI)) +#41654| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41655| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41662: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41660: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41658| case 675: // LDRSHWroW +#41659| if (CPUID == 1) { // A64FXModel +#41660|-> if (AArch64_MC::isScaledAddr(*MI)) +#41661| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41662| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41672: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41670: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41668| } +#41669| if (CPUID == 9) { // ExynosM3Model +#41670|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41671| return 1707; // M3WriteLB_ReadDefault +#41672| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41680: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41675: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41673| } +#41674| if (CPUID == 10) { // ExynosM4Model +#41675|-> if (( +#41676| AArch64_MC::isScaledAddr(*MI) +#41677| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41688: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41683: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41681| } +#41682| if (CPUID == 11) { // ExynosM5Model +#41683|-> if (( +#41684| AArch64_MC::isScaledAddr(*MI) +#41685| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41696: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41694: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41692| } +#41693| if (CPUID == 18) { // ThunderX2T99Model +#41694|-> if (AArch64_MC::isScaledAddr(*MI)) +#41695| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41696| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41701: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41699: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41697| } +#41698| if (CPUID == 19) { // ThunderX3T110Model +#41699|-> if (AArch64_MC::isScaledAddr(*MI)) +#41700| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41701| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41708: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41706: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41704| case 676: // LDRSHWroX +#41705| if (CPUID == 1) { // A64FXModel +#41706|-> if (AArch64_MC::isScaledAddr(*MI)) +#41707| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41708| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41758: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41756: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41754| } +#41755| if (CPUID == 18) { // ThunderX2T99Model +#41756|-> if (AArch64_MC::isScaledAddr(*MI)) +#41757| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41758| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41763: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41761: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41759| } +#41760| if (CPUID == 19) { // ThunderX3T110Model +#41761|-> if (AArch64_MC::isScaledAddr(*MI)) +#41762| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41763| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41770: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41768: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41766| case 677: // LDRSHXroW +#41767| if (CPUID == 1) { // A64FXModel +#41768|-> if (AArch64_MC::isScaledAddr(*MI)) +#41769| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41770| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41780: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41778: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41776| } +#41777| if (CPUID == 9) { // ExynosM3Model +#41778|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41779| return 1707; // M3WriteLB_ReadDefault +#41780| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41788: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41783: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41781| } +#41782| if (CPUID == 10) { // ExynosM4Model +#41783|-> if (( +#41784| AArch64_MC::isScaledAddr(*MI) +#41785| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41796: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41791: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41789| } +#41790| if (CPUID == 11) { // ExynosM5Model +#41791|-> if (( +#41792| AArch64_MC::isScaledAddr(*MI) +#41793| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41804: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41802: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41800| } +#41801| if (CPUID == 18) { // ThunderX2T99Model +#41802|-> if (AArch64_MC::isScaledAddr(*MI)) +#41803| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41804| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41809: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41807: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41805| } +#41806| if (CPUID == 19) { // ThunderX3T110Model +#41807|-> if (AArch64_MC::isScaledAddr(*MI)) +#41808| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41809| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41816: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41814: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41812| case 678: // LDRSHXroX +#41813| if (CPUID == 1) { // A64FXModel +#41814|-> if (AArch64_MC::isScaledAddr(*MI)) +#41815| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41816| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41866: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41864: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41862| } +#41863| if (CPUID == 18) { // ThunderX2T99Model +#41864|-> if (AArch64_MC::isScaledAddr(*MI)) +#41865| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41866| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41871: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41869: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41867| } +#41868| if (CPUID == 19) { // ThunderX3T110Model +#41869|-> if (AArch64_MC::isScaledAddr(*MI)) +#41870| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41871| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41878: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41876: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41874| case 682: // LDRSroW +#41875| if (CPUID == 1) { // A64FXModel +#41876|-> if (AArch64_MC::isScaledAddr(*MI)) +#41877| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41878| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41888: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41886: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41884| } +#41885| if (CPUID == 9) { // ExynosM3Model +#41886|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41887| return 1699; // M3WriteLE_ReadDefault +#41888| return 1699; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41896: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41891: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41889| } +#41890| if (CPUID == 10) { // ExynosM4Model +#41891|-> if (( +#41892| AArch64_MC::isScaledAddr(*MI) +#41893| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41904: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41899: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41897| } +#41898| if (CPUID == 11) { // ExynosM5Model +#41899|-> if (( +#41900| AArch64_MC::isScaledAddr(*MI) +#41901| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41923: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41921: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41919| } +#41920| if (CPUID == 18) { // ThunderX2T99Model +#41921|-> if (AArch64_MC::isScaledAddr(*MI)) +#41922| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41923| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41928: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41926: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41924| } +#41925| if (CPUID == 19) { // ThunderX3T110Model +#41926|-> if (AArch64_MC::isScaledAddr(*MI)) +#41927| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41928| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41935: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41933: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41931| case 683: // LDRSroX +#41932| if (CPUID == 1) { // A64FXModel +#41933|-> if (AArch64_MC::isScaledAddr(*MI)) +#41934| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#41935| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41945: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41943: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41941| } +#41942| if (CPUID == 9) { // ExynosM3Model +#41943|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#41944| return 1706; // WriteVLD_ReadDefault +#41945| return 1706; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41953: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41948: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41946| } +#41947| if (CPUID == 10) { // ExynosM4Model +#41948|-> if (( +#41949| AArch64_MC::isScaledAddr(*MI) +#41950| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41961: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41956: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41954| } +#41955| if (CPUID == 11) { // ExynosM5Model +#41956|-> if (( +#41957| AArch64_MC::isScaledAddr(*MI) +#41958| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41980: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41978: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41976| } +#41977| if (CPUID == 18) { // ThunderX2T99Model +#41978|-> if (AArch64_MC::isScaledAddr(*MI)) +#41979| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#41980| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41985: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41983: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41981| } +#41982| if (CPUID == 19) { // ThunderX3T110Model +#41983|-> if (AArch64_MC::isScaledAddr(*MI)) +#41984| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#41985| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41992: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:41990: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41988| case 710: // STRBroW +#41989| if (CPUID == 1) { // A64FXModel +#41990|-> if (AArch64_MC::isScaledAddr(*MI)) +#41991| return 1719; // A64FXWrite_STUR_ReadDefault +#41992| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42002: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42000: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#41998| } +#41999| if (CPUID == 9) { // ExynosM3Model +#42000|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42001| return 1715; // M3WriteSA_ReadDefault +#42002| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42010: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42005: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42003| } +#42004| if (CPUID == 10) { // ExynosM4Model +#42005|-> if (( +#42006| AArch64_MC::isScaledAddr(*MI) +#42007| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42018: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42013: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42011| } +#42012| if (CPUID == 11) { // ExynosM5Model +#42013|-> if (( +#42014| AArch64_MC::isScaledAddr(*MI) +#42015| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42037: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42035: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42033| } +#42034| if (CPUID == 18) { // ThunderX2T99Model +#42035|-> if (AArch64_MC::isScaledAddr(*MI)) +#42036| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#42037| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42042: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42040: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42038| } +#42039| if (CPUID == 19) { // ThunderX3T110Model +#42040|-> if (AArch64_MC::isScaledAddr(*MI)) +#42041| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#42042| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42049: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42047: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42045| case 711: // STRBroX +#42046| if (CPUID == 1) { // A64FXModel +#42047|-> if (AArch64_MC::isScaledAddr(*MI)) +#42048| return 1719; // A64FXWrite_STUR_ReadDefault +#42049| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42059: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42057: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42055| } +#42056| if (CPUID == 9) { // ExynosM3Model +#42057|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42058| return 1717; // WriteVST_ReadDefault +#42059| return 1717; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42067: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42062: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42060| } +#42061| if (CPUID == 10) { // ExynosM4Model +#42062|-> if (( +#42063| AArch64_MC::isScaledAddr(*MI) +#42064| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42075: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42070: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42068| } +#42069| if (CPUID == 11) { // ExynosM5Model +#42070|-> if (( +#42071| AArch64_MC::isScaledAddr(*MI) +#42072| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42094: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42092: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42090| } +#42091| if (CPUID == 18) { // ThunderX2T99Model +#42092|-> if (AArch64_MC::isScaledAddr(*MI)) +#42093| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#42094| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42099: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42097: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42095| } +#42096| if (CPUID == 19) { // ThunderX3T110Model +#42097|-> if (AArch64_MC::isScaledAddr(*MI)) +#42098| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#42099| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42106: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42104: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42102| case 716: // STRHHroW +#42103| if (CPUID == 1) { // A64FXModel +#42104|-> if (AArch64_MC::isScaledAddr(*MI)) +#42105| return 1719; // A64FXWrite_STUR_ReadDefault +#42106| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42116: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42114: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42112| } +#42113| if (CPUID == 9) { // ExynosM3Model +#42114|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42115| return 1725; // M3WriteSB_ReadDefault +#42116| return 1725; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42124: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42119: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42117| } +#42118| if (CPUID == 10) { // ExynosM4Model +#42119|-> if (( +#42120| AArch64_MC::isScaledAddr(*MI) +#42121| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42132: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42127: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42125| } +#42126| if (CPUID == 11) { // ExynosM5Model +#42127|-> if (( +#42128| AArch64_MC::isScaledAddr(*MI) +#42129| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42140: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42138: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42136| } +#42137| if (CPUID == 18) { // ThunderX2T99Model +#42138|-> if (AArch64_MC::isScaledAddr(*MI)) +#42139| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#42140| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42145: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42143: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42141| } +#42142| if (CPUID == 19) { // ThunderX3T110Model +#42143|-> if (AArch64_MC::isScaledAddr(*MI)) +#42144| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#42145| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42152: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42150: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42148| case 717: // STRHHroX +#42149| if (CPUID == 1) { // A64FXModel +#42150|-> if (AArch64_MC::isScaledAddr(*MI)) +#42151| return 1719; // A64FXWrite_STUR_ReadDefault +#42152| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42162: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42160: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42158| } +#42159| if (CPUID == 9) { // ExynosM3Model +#42160|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42161| return 1728; // WriteST_ReadDefault +#42162| return 1728; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42170: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42165: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42163| } +#42164| if (CPUID == 10) { // ExynosM4Model +#42165|-> if (( +#42166| AArch64_MC::isScaledAddr(*MI) +#42167| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42178: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42173: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42171| } +#42172| if (CPUID == 11) { // ExynosM5Model +#42173|-> if (( +#42174| AArch64_MC::isScaledAddr(*MI) +#42175| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42186: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42184: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42182| } +#42183| if (CPUID == 18) { // ThunderX2T99Model +#42184|-> if (AArch64_MC::isScaledAddr(*MI)) +#42185| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#42186| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42191: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42189: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42187| } +#42188| if (CPUID == 19) { // ThunderX3T110Model +#42189|-> if (AArch64_MC::isScaledAddr(*MI)) +#42190| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#42191| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42198: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42196: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42194| case 720: // STRHroW +#42195| if (CPUID == 1) { // A64FXModel +#42196|-> if (AArch64_MC::isScaledAddr(*MI)) +#42197| return 1719; // A64FXWrite_STUR_ReadDefault +#42198| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42208: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42206: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42204| } +#42205| if (CPUID == 9) { // ExynosM3Model +#42206|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42207| return 1715; // M3WriteSA_ReadDefault +#42208| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42216: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42211: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42209| } +#42210| if (CPUID == 10) { // ExynosM4Model +#42211|-> if (( +#42212| AArch64_MC::isScaledAddr(*MI) +#42213| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42224: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42219: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42217| } +#42218| if (CPUID == 11) { // ExynosM5Model +#42219|-> if (( +#42220| AArch64_MC::isScaledAddr(*MI) +#42221| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42243: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42241: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42239| } +#42240| if (CPUID == 18) { // ThunderX2T99Model +#42241|-> if (AArch64_MC::isScaledAddr(*MI)) +#42242| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#42243| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42248: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42246: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42244| } +#42245| if (CPUID == 19) { // ThunderX3T110Model +#42246|-> if (AArch64_MC::isScaledAddr(*MI)) +#42247| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#42248| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42255: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42253: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42251| case 721: // STRHroX +#42252| if (CPUID == 1) { // A64FXModel +#42253|-> if (AArch64_MC::isScaledAddr(*MI)) +#42254| return 1719; // A64FXWrite_STUR_ReadDefault +#42255| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42265: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42263: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42261| } +#42262| if (CPUID == 9) { // ExynosM3Model +#42263|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42264| return 1717; // WriteVST_ReadDefault +#42265| return 1717; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42273: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42268: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42266| } +#42267| if (CPUID == 10) { // ExynosM4Model +#42268|-> if (( +#42269| AArch64_MC::isScaledAddr(*MI) +#42270| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42281: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42276: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42274| } +#42275| if (CPUID == 11) { // ExynosM5Model +#42276|-> if (( +#42277| AArch64_MC::isScaledAddr(*MI) +#42278| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42300: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42298: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42296| } +#42297| if (CPUID == 18) { // ThunderX2T99Model +#42298|-> if (AArch64_MC::isScaledAddr(*MI)) +#42299| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#42300| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42305: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42303: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42301| } +#42302| if (CPUID == 19) { // ThunderX3T110Model +#42303|-> if (AArch64_MC::isScaledAddr(*MI)) +#42304| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#42305| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42312: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42310: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42308| case 724: // STRQroW +#42309| if (CPUID == 1) { // A64FXModel +#42310|-> if (AArch64_MC::isScaledAddr(*MI)) +#42311| return 1719; // A64FXWrite_STUR_ReadDefault +#42312| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42322: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42320: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42318| } +#42319| if (CPUID == 9) { // ExynosM3Model +#42320|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#42321| return 1715; // M3WriteSA_ReadDefault +#42322| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42330: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42325: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42323| } +#42324| if (CPUID == 10) { // ExynosM4Model +#42325|-> if (( +#42326| AArch64_MC::isScaledAddr(*MI) +#42327| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42338: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42333: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42331| } +#42332| if (CPUID == 11) { // ExynosM5Model +#42333|-> if (( +#42334| AArch64_MC::isScaledAddr(*MI) +#42335| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42357: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42355: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42353| } +#42354| if (CPUID == 18) { // ThunderX2T99Model +#42355|-> if (AArch64_MC::isScaledAddr(*MI)) +#42356| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#42357| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42362: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42360: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42358| } +#42359| if (CPUID == 19) { // ThunderX3T110Model +#42360|-> if (AArch64_MC::isScaledAddr(*MI)) +#42361| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#42362| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42369: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42367: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42365| case 725: // STRQroX +#42366| if (CPUID == 1) { // A64FXModel +#42367|-> if (AArch64_MC::isScaledAddr(*MI)) +#42368| return 1719; // A64FXWrite_STUR_ReadDefault +#42369| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42430: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42428: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42426| } +#42427| if (CPUID == 18) { // ThunderX2T99Model +#42428|-> if (AArch64_MC::isScaledAddr(*MI)) +#42429| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#42430| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42435: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:42433: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#42431| } +#42432| if (CPUID == 19) { // ThunderX3T110Model +#42433|-> if (AArch64_MC::isScaledAddr(*MI)) +#42434| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#42435| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43582: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43580: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43578| case 924: // STRDroW_STRDroX_STRSroW_STRSroX +#43579| if (CPUID == 1) { // A64FXModel +#43580|-> if (AArch64_MC::isScaledAddr(*MI)) +#43581| return 1719; // A64FXWrite_STUR_ReadDefault +#43582| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43592: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43590: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43588| } +#43589| if (CPUID == 9) { // ExynosM3Model +#43590|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43591| return 1717; // WriteVST_ReadDefault +#43592| return 1717; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43600: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43595: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43593| } +#43594| if (CPUID == 10) { // ExynosM4Model +#43595|-> if (( +#43596| AArch64_MC::isScaledAddr(*MI) +#43597| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43608: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43603: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43601| } +#43602| if (CPUID == 11) { // ExynosM5Model +#43603|-> if (( +#43604| AArch64_MC::isScaledAddr(*MI) +#43605| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43627: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43625: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43623| } +#43624| if (CPUID == 18) { // ThunderX2T99Model +#43625|-> if (AArch64_MC::isScaledAddr(*MI)) +#43626| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43627| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43632: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43630: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43628| } +#43629| if (CPUID == 19) { // ThunderX3T110Model +#43630|-> if (AArch64_MC::isScaledAddr(*MI)) +#43631| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43632| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43644: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43642: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43640| case 959: // LDRBBroW_LDRBBroX_LDRWroW_LDRWroX_LDRXroW_LDRXroX +#43641| if (CPUID == 1) { // A64FXModel +#43642|-> if (AArch64_MC::isScaledAddr(*MI)) +#43643| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#43644| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43748: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43746: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43744| case 966: // LDRSBWroW_LDRSBWroX_LDRSBXroW_LDRSBXroX_LDRSWroW_LDRSWroX +#43745| if (CPUID == 1) { // A64FXModel +#43746|-> if (AArch64_MC::isScaledAddr(*MI)) +#43747| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#43748| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43918: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43916: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43914| case 1004: // STRBBroW_STRBBroX_STRWroW_STRWroX_STRXroW_STRXroX +#43915| if (CPUID == 1) { // A64FXModel +#43916|-> if (AArch64_MC::isScaledAddr(*MI)) +#43917| return 1719; // A64FXWrite_STUR_ReadDefault +#43918| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43928: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43926: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43924| } +#43925| if (CPUID == 9) { // ExynosM3Model +#43926|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#43927| return 1728; // WriteST_ReadDefault +#43928| return 1728; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43936: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43931: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43929| } +#43930| if (CPUID == 10) { // ExynosM4Model +#43931|-> if (( +#43932| AArch64_MC::isScaledAddr(*MI) +#43933| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43944: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43939: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43937| } +#43938| if (CPUID == 11) { // ExynosM5Model +#43939|-> if (( +#43940| AArch64_MC::isScaledAddr(*MI) +#43941| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43952: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43950: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43948| } +#43949| if (CPUID == 18) { // ThunderX2T99Model +#43950|-> if (AArch64_MC::isScaledAddr(*MI)) +#43951| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#43952| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43957: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:43955: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#43953| } +#43954| if (CPUID == 19) { // ThunderX3T110Model +#43955|-> if (AArch64_MC::isScaledAddr(*MI)) +#43956| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#43957| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45189: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45187: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45185| case 1072: // LDRBBroW_LDRWroW_LDRXroW +#45186| if (CPUID == 1) { // A64FXModel +#45187|-> if (AArch64_MC::isScaledAddr(*MI)) +#45188| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#45189| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45199: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45197: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45195| } +#45196| if (CPUID == 9) { // ExynosM3Model +#45197|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#45198| return 1707; // M3WriteLB_ReadDefault +#45199| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45207: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45202: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45200| } +#45201| if (CPUID == 10) { // ExynosM4Model +#45202|-> if (( +#45203| AArch64_MC::isScaledAddr(*MI) +#45204| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45215: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45210: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45208| } +#45209| if (CPUID == 11) { // ExynosM5Model +#45210|-> if (( +#45211| AArch64_MC::isScaledAddr(*MI) +#45212| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45235: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45233: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45231| case 1073: // LDRSBWroW_LDRSBXroW_LDRSWroW +#45232| if (CPUID == 1) { // A64FXModel +#45233|-> if (AArch64_MC::isScaledAddr(*MI)) +#45234| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#45235| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45245: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45243: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45241| } +#45242| if (CPUID == 9) { // ExynosM3Model +#45243|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#45244| return 1707; // M3WriteLB_ReadDefault +#45245| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45253: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45248: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45246| } +#45247| if (CPUID == 10) { // ExynosM4Model +#45248|-> if (( +#45249| AArch64_MC::isScaledAddr(*MI) +#45250| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45261: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45256: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45254| } +#45255| if (CPUID == 11) { // ExynosM5Model +#45256|-> if (( +#45257| AArch64_MC::isScaledAddr(*MI) +#45258| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45281: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45279: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45277| case 1074: // PRFMroW +#45278| if (CPUID == 9) { // ExynosM3Model +#45279|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#45280| return 1707; // M3WriteLB_ReadDefault +#45281| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45289: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45284: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45282| } +#45283| if (CPUID == 10) { // ExynosM4Model +#45284|-> if (( +#45285| AArch64_MC::isScaledAddr(*MI) +#45286| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45297: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45292: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45290| } +#45291| if (CPUID == 11) { // ExynosM5Model +#45292|-> if (( +#45293| AArch64_MC::isScaledAddr(*MI) +#45294| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45307: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45305: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45303| case 1075: // STRBBroW_STRWroW_STRXroW +#45304| if (CPUID == 1) { // A64FXModel +#45305|-> if (AArch64_MC::isScaledAddr(*MI)) +#45306| return 1719; // A64FXWrite_STUR_ReadDefault +#45307| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45317: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45315: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45313| } +#45314| if (CPUID == 9) { // ExynosM3Model +#45315|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#45316| return 1725; // M3WriteSB_ReadDefault +#45317| return 1725; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45325: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45320: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45318| } +#45319| if (CPUID == 10) { // ExynosM4Model +#45320|-> if (( +#45321| AArch64_MC::isScaledAddr(*MI) +#45322| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45333: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45328: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45326| } +#45327| if (CPUID == 11) { // ExynosM5Model +#45328|-> if (( +#45329| AArch64_MC::isScaledAddr(*MI) +#45330| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45341: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45339: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45337| } +#45338| if (CPUID == 18) { // ThunderX2T99Model +#45339|-> if (AArch64_MC::isScaledAddr(*MI)) +#45340| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#45341| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45346: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45344: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45342| } +#45343| if (CPUID == 19) { // ThunderX3T110Model +#45344|-> if (AArch64_MC::isScaledAddr(*MI)) +#45345| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#45346| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45353: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45351: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45349| case 1085: // STRDroW_STRSroW +#45350| if (CPUID == 1) { // A64FXModel +#45351|-> if (AArch64_MC::isScaledAddr(*MI)) +#45352| return 1719; // A64FXWrite_STUR_ReadDefault +#45353| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45363: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45361: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45359| } +#45360| if (CPUID == 9) { // ExynosM3Model +#45361|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#45362| return 1715; // M3WriteSA_ReadDefault +#45363| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45371: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45366: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45364| } +#45365| if (CPUID == 10) { // ExynosM4Model +#45366|-> if (( +#45367| AArch64_MC::isScaledAddr(*MI) +#45368| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45379: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45374: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45372| } +#45373| if (CPUID == 11) { // ExynosM5Model +#45374|-> if (( +#45375| AArch64_MC::isScaledAddr(*MI) +#45376| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45398: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45396: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45394| } +#45395| if (CPUID == 18) { // ThunderX2T99Model +#45396|-> if (AArch64_MC::isScaledAddr(*MI)) +#45397| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#45398| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45403: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:45401: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#45399| } +#45400| if (CPUID == 19) { // ThunderX3T110Model +#45401|-> if (AArch64_MC::isScaledAddr(*MI)) +#45402| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#45403| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46134: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46132: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46130| case 1221: // LDRWroW +#46131| if (CPUID == 1) { // A64FXModel +#46132|-> if (AArch64_MC::isScaledAddr(*MI)) +#46133| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#46134| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46144: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46142: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46140| } +#46141| if (CPUID == 9) { // ExynosM3Model +#46142|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46143| return 1707; // M3WriteLB_ReadDefault +#46144| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46152: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46147: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46145| } +#46146| if (CPUID == 10) { // ExynosM4Model +#46147|-> if (( +#46148| AArch64_MC::isScaledAddr(*MI) +#46149| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46160: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46155: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46153| } +#46154| if (CPUID == 11) { // ExynosM5Model +#46155|-> if (( +#46156| AArch64_MC::isScaledAddr(*MI) +#46157| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46168: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46166: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46164| } +#46165| if (CPUID == 18) { // ThunderX2T99Model +#46166|-> if (AArch64_MC::isScaledAddr(*MI)) +#46167| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#46168| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46173: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46171: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46169| } +#46170| if (CPUID == 19) { // ThunderX3T110Model +#46171|-> if (AArch64_MC::isScaledAddr(*MI)) +#46172| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#46173| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46180: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46178: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46176| case 1222: // LDRXroW +#46177| if (CPUID == 1) { // A64FXModel +#46178|-> if (AArch64_MC::isScaledAddr(*MI)) +#46179| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#46180| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46190: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46188: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46186| } +#46187| if (CPUID == 9) { // ExynosM3Model +#46188|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46189| return 1707; // M3WriteLB_ReadDefault +#46190| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46198: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46193: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46191| } +#46192| if (CPUID == 10) { // ExynosM4Model +#46193|-> if (( +#46194| AArch64_MC::isScaledAddr(*MI) +#46195| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46206: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46201: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46199| } +#46200| if (CPUID == 11) { // ExynosM5Model +#46201|-> if (( +#46202| AArch64_MC::isScaledAddr(*MI) +#46203| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46214: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46212: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46210| } +#46211| if (CPUID == 18) { // ThunderX2T99Model +#46212|-> if (AArch64_MC::isScaledAddr(*MI)) +#46213| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#46214| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46219: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46217: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46215| } +#46216| if (CPUID == 19) { // ThunderX3T110Model +#46217|-> if (AArch64_MC::isScaledAddr(*MI)) +#46218| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#46219| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46226: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46224: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46222| case 1223: // LDRWroX +#46223| if (CPUID == 1) { // A64FXModel +#46224|-> if (AArch64_MC::isScaledAddr(*MI)) +#46225| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#46226| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46276: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46274: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46272| } +#46273| if (CPUID == 18) { // ThunderX2T99Model +#46274|-> if (AArch64_MC::isScaledAddr(*MI)) +#46275| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#46276| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46281: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46279: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46277| } +#46278| if (CPUID == 19) { // ThunderX3T110Model +#46279|-> if (AArch64_MC::isScaledAddr(*MI)) +#46280| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#46281| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46288: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46286: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46284| case 1224: // LDRXroX +#46285| if (CPUID == 1) { // A64FXModel +#46286|-> if (AArch64_MC::isScaledAddr(*MI)) +#46287| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#46288| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46338: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46336: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46334| } +#46335| if (CPUID == 18) { // ThunderX2T99Model +#46336|-> if (AArch64_MC::isScaledAddr(*MI)) +#46337| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#46338| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46343: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46341: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46339| } +#46340| if (CPUID == 19) { // ThunderX3T110Model +#46341|-> if (AArch64_MC::isScaledAddr(*MI)) +#46342| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#46343| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46350: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46348: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46346| case 1247: // STRBBroW +#46347| if (CPUID == 1) { // A64FXModel +#46348|-> if (AArch64_MC::isScaledAddr(*MI)) +#46349| return 1719; // A64FXWrite_STUR_ReadDefault +#46350| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46360: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46358: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46356| } +#46357| if (CPUID == 9) { // ExynosM3Model +#46358|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46359| return 1725; // M3WriteSB_ReadDefault +#46360| return 1725; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46368: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46363: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46361| } +#46362| if (CPUID == 10) { // ExynosM4Model +#46363|-> if (( +#46364| AArch64_MC::isScaledAddr(*MI) +#46365| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46376: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46371: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46369| } +#46370| if (CPUID == 11) { // ExynosM5Model +#46371|-> if (( +#46372| AArch64_MC::isScaledAddr(*MI) +#46373| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46384: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46382: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46380| } +#46381| if (CPUID == 18) { // ThunderX2T99Model +#46382|-> if (AArch64_MC::isScaledAddr(*MI)) +#46383| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#46384| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46389: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46387: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46385| } +#46386| if (CPUID == 19) { // ThunderX3T110Model +#46387|-> if (AArch64_MC::isScaledAddr(*MI)) +#46388| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#46389| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46396: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46394: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46392| case 1248: // STRBBroX +#46393| if (CPUID == 1) { // A64FXModel +#46394|-> if (AArch64_MC::isScaledAddr(*MI)) +#46395| return 1719; // A64FXWrite_STUR_ReadDefault +#46396| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46406: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46404: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46402| } +#46403| if (CPUID == 9) { // ExynosM3Model +#46404|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46405| return 1728; // WriteST_ReadDefault +#46406| return 1728; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46414: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46409: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46407| } +#46408| if (CPUID == 10) { // ExynosM4Model +#46409|-> if (( +#46410| AArch64_MC::isScaledAddr(*MI) +#46411| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46422: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46417: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46415| } +#46416| if (CPUID == 11) { // ExynosM5Model +#46417|-> if (( +#46418| AArch64_MC::isScaledAddr(*MI) +#46419| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46430: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46428: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46426| } +#46427| if (CPUID == 18) { // ThunderX2T99Model +#46428|-> if (AArch64_MC::isScaledAddr(*MI)) +#46429| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#46430| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46435: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46433: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46431| } +#46432| if (CPUID == 19) { // ThunderX3T110Model +#46433|-> if (AArch64_MC::isScaledAddr(*MI)) +#46434| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#46435| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46442: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46440: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46438| case 1249: // STRDroW +#46439| if (CPUID == 1) { // A64FXModel +#46440|-> if (AArch64_MC::isScaledAddr(*MI)) +#46441| return 1719; // A64FXWrite_STUR_ReadDefault +#46442| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46452: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46450: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46448| } +#46449| if (CPUID == 9) { // ExynosM3Model +#46450|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46451| return 1715; // M3WriteSA_ReadDefault +#46452| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46460: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46455: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46453| } +#46454| if (CPUID == 10) { // ExynosM4Model +#46455|-> if (( +#46456| AArch64_MC::isScaledAddr(*MI) +#46457| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46468: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46463: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46461| } +#46462| if (CPUID == 11) { // ExynosM5Model +#46463|-> if (( +#46464| AArch64_MC::isScaledAddr(*MI) +#46465| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46487: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46485: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46483| } +#46484| if (CPUID == 18) { // ThunderX2T99Model +#46485|-> if (AArch64_MC::isScaledAddr(*MI)) +#46486| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#46487| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46492: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46490: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46488| } +#46489| if (CPUID == 19) { // ThunderX3T110Model +#46490|-> if (AArch64_MC::isScaledAddr(*MI)) +#46491| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#46492| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46499: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46497: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46495| case 1250: // STRDroX +#46496| if (CPUID == 1) { // A64FXModel +#46497|-> if (AArch64_MC::isScaledAddr(*MI)) +#46498| return 1719; // A64FXWrite_STUR_ReadDefault +#46499| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46509: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46507: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46505| } +#46506| if (CPUID == 9) { // ExynosM3Model +#46507|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46508| return 1717; // WriteVST_ReadDefault +#46509| return 1717; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46517: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46512: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46510| } +#46511| if (CPUID == 10) { // ExynosM4Model +#46512|-> if (( +#46513| AArch64_MC::isScaledAddr(*MI) +#46514| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46525: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46520: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46518| } +#46519| if (CPUID == 11) { // ExynosM5Model +#46520|-> if (( +#46521| AArch64_MC::isScaledAddr(*MI) +#46522| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46544: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46542: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46540| } +#46541| if (CPUID == 18) { // ThunderX2T99Model +#46542|-> if (AArch64_MC::isScaledAddr(*MI)) +#46543| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#46544| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46549: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46547: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46545| } +#46546| if (CPUID == 19) { // ThunderX3T110Model +#46547|-> if (AArch64_MC::isScaledAddr(*MI)) +#46548| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#46549| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46556: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46554: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46552| case 1251: // STRWroW +#46553| if (CPUID == 1) { // A64FXModel +#46554|-> if (AArch64_MC::isScaledAddr(*MI)) +#46555| return 1719; // A64FXWrite_STUR_ReadDefault +#46556| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46566: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46564: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46562| } +#46563| if (CPUID == 9) { // ExynosM3Model +#46564|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46565| return 1725; // M3WriteSB_ReadDefault +#46566| return 1725; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46574: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46569: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46567| } +#46568| if (CPUID == 10) { // ExynosM4Model +#46569|-> if (( +#46570| AArch64_MC::isScaledAddr(*MI) +#46571| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46582: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46577: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46575| } +#46576| if (CPUID == 11) { // ExynosM5Model +#46577|-> if (( +#46578| AArch64_MC::isScaledAddr(*MI) +#46579| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46590: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46588: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46586| } +#46587| if (CPUID == 18) { // ThunderX2T99Model +#46588|-> if (AArch64_MC::isScaledAddr(*MI)) +#46589| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#46590| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46595: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46593: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46591| } +#46592| if (CPUID == 19) { // ThunderX3T110Model +#46593|-> if (AArch64_MC::isScaledAddr(*MI)) +#46594| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#46595| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46602: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46600: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46598| case 1252: // STRWroX +#46599| if (CPUID == 1) { // A64FXModel +#46600|-> if (AArch64_MC::isScaledAddr(*MI)) +#46601| return 1719; // A64FXWrite_STUR_ReadDefault +#46602| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46612: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46610: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46608| } +#46609| if (CPUID == 9) { // ExynosM3Model +#46610|-> if (AArch64_MC::isExynosScaledAddr(*MI)) +#46611| return 1728; // WriteST_ReadDefault +#46612| return 1728; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46620: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46615: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46613| } +#46614| if (CPUID == 10) { // ExynosM4Model +#46615|-> if (( +#46616| AArch64_MC::isScaledAddr(*MI) +#46617| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46628: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46623: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI) || llvm::AArch64_MC::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46621| } +#46622| if (CPUID == 11) { // ExynosM5Model +#46623|-> if (( +#46624| AArch64_MC::isScaledAddr(*MI) +#46625| || AArch64_MC::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46636: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46634: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46632| } +#46633| if (CPUID == 18) { // ThunderX2T99Model +#46634|-> if (AArch64_MC::isScaledAddr(*MI)) +#46635| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#46636| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46641: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:46639: identical_branches: The same code is executed when the condition "llvm::AArch64_MC::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#46637| } +#46638| if (CPUID == 19) { // ThunderX3T110Model +#46639|-> if (AArch64_MC::isScaledAddr(*MI)) +#46640| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#46641| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47611: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47609: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47607| case 34: // WriteLDIdx_ReadAdrBase +#47608| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#47609|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#47610| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#47611| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47621: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47619: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47617| } +#47618| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#47619|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#47620| return 1620; // WriteLDIdx_ReadDefault +#47621| return 1620; // WriteLDIdx_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47745: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47743: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47741| case 43: // WriteSTIdx_ReadST_ReadAdrBase +#47742| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#47743|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#47744| return 1633; // WriteSTIdx_ReadST_ReadDefault +#47745| return 1633; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47755: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47753: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47751| } +#47752| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#47753|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#47754| return 1633; // WriteSTIdx_ReadST_ReadDefault +#47755| return 1633; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47792: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47790: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47788| } +#47789| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#47790|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#47791| return 1633; // WriteSTIdx_ReadST_ReadDefault +#47792| return 1633; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47797: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:47795: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#47793| } +#47794| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#47795|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#47796| return 1633; // WriteSTIdx_ReadST_ReadDefault +#47797| return 1633; // WriteSTIdx_ReadST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48262: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48260: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48258| case 653: // LDRBroW +#48259| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48260|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48261| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48262| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48272: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48270: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48268| } +#48269| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#48270|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#48271| return 1699; // M3WriteLE_ReadDefault +#48272| return 1699; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48280: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48275: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48273| } +#48274| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48275|-> if (( +#48276| AArch64InstrInfo::isScaledAddr(*MI) +#48277| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48288: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48283: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48281| } +#48282| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48283|-> if (( +#48284| AArch64InstrInfo::isScaledAddr(*MI) +#48285| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48309: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48307: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48305| } +#48306| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48307|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48308| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48309| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48314: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48312: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48310| } +#48311| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48312|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48313| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48314| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48321: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48319: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48317| case 654: // LDRBroX +#48318| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48319|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48320| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48321| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48331: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48329: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48327| } +#48328| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#48329|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#48330| return 1706; // WriteVLD_ReadDefault +#48331| return 1706; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48339: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48334: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48332| } +#48333| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48334|-> if (( +#48335| AArch64InstrInfo::isScaledAddr(*MI) +#48336| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48347: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48342: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48340| } +#48341| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48342|-> if (( +#48343| AArch64InstrInfo::isScaledAddr(*MI) +#48344| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48368: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48366: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48364| } +#48365| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48366|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48367| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48368| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48373: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48371: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48369| } +#48370| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48371|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48372| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48373| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48380: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48378: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48376| case 659: // LDRDroW +#48377| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48378|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48379| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48380| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48390: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48388: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48386| } +#48387| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#48388|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#48389| return 1699; // M3WriteLE_ReadDefault +#48390| return 1699; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48398: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48393: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48391| } +#48392| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48393|-> if (( +#48394| AArch64InstrInfo::isScaledAddr(*MI) +#48395| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48406: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48401: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48399| } +#48400| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48401|-> if (( +#48402| AArch64InstrInfo::isScaledAddr(*MI) +#48403| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48427: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48425: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48423| } +#48424| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48425|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48426| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48427| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48432: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48430: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48428| } +#48429| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48430|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48431| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48432| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48439: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48437: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48435| case 660: // LDRDroX +#48436| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48437|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48438| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48439| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48449: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48447: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48445| } +#48446| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#48447|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#48448| return 1706; // WriteVLD_ReadDefault +#48449| return 1706; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48457: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48452: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48450| } +#48451| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48452|-> if (( +#48453| AArch64InstrInfo::isScaledAddr(*MI) +#48454| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48465: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48460: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48458| } +#48459| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48460|-> if (( +#48461| AArch64InstrInfo::isScaledAddr(*MI) +#48462| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48486: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48484: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48482| } +#48483| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48484|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48485| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48486| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48491: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48489: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48487| } +#48488| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48489|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48490| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48491| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48498: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48496: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48494| case 662: // LDRHHroW +#48495| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48496|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48497| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48498| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48508: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48506: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48504| } +#48505| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#48506|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#48507| return 1707; // M3WriteLB_ReadDefault +#48508| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48516: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48511: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48509| } +#48510| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48511|-> if (( +#48512| AArch64InstrInfo::isScaledAddr(*MI) +#48513| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48524: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48519: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48517| } +#48518| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48519|-> if (( +#48520| AArch64InstrInfo::isScaledAddr(*MI) +#48521| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48534: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48532: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48530| } +#48531| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48532|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48533| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48534| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48539: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48537: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48535| } +#48536| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48537|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48538| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48539| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48546: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48544: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48542| case 663: // LDRHHroX +#48543| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48544|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48545| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48546| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48598: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48596: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48594| } +#48595| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48596|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48597| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48598| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48603: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48601: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48599| } +#48600| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48601|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48602| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48603| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48610: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48608: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48606| case 666: // LDRHroW +#48607| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48608|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48609| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48610| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48620: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48618: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48616| } +#48617| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#48618|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#48619| return 1699; // M3WriteLE_ReadDefault +#48620| return 1699; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48628: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48623: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48621| } +#48622| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48623|-> if (( +#48624| AArch64InstrInfo::isScaledAddr(*MI) +#48625| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48636: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48631: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48629| } +#48630| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48631|-> if (( +#48632| AArch64InstrInfo::isScaledAddr(*MI) +#48633| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48657: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48655: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48653| } +#48654| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48655|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48656| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48657| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48662: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48660: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48658| } +#48659| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48660|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48661| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48662| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48669: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48667: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48665| case 667: // LDRHroX +#48666| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48667|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48668| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48669| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48679: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48677: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48675| } +#48676| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#48677|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#48678| return 1706; // WriteVLD_ReadDefault +#48679| return 1706; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48687: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48682: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48680| } +#48681| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48682|-> if (( +#48683| AArch64InstrInfo::isScaledAddr(*MI) +#48684| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48695: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48690: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48688| } +#48689| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48690|-> if (( +#48691| AArch64InstrInfo::isScaledAddr(*MI) +#48692| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48716: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48714: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48712| } +#48713| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48714|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48715| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48716| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48721: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48719: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48717| } +#48718| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48719|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48720| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48721| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48728: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48726: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48724| case 672: // LDRQroW +#48725| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48726|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48727| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48728| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48746: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48741: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48739| } +#48740| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48741|-> if (( +#48742| AArch64InstrInfo::isScaledAddr(*MI) +#48743| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48754: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48749: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48747| } +#48748| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48749|-> if (( +#48750| AArch64InstrInfo::isScaledAddr(*MI) +#48751| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48775: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48773: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48771| } +#48772| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48773|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48774| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48775| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48780: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48778: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48776| } +#48777| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48778|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48779| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48780| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48787: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48785: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48783| case 673: // LDRQroX +#48784| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48785|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48786| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48787| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48850: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48848: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48846| } +#48847| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48848|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48849| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48850| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48855: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48853: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48851| } +#48852| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48853|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48854| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48855| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48862: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48860: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48858| case 675: // LDRSHWroW +#48859| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48860|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48861| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48862| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48872: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48870: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48868| } +#48869| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#48870|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#48871| return 1707; // M3WriteLB_ReadDefault +#48872| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48880: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48875: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48873| } +#48874| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48875|-> if (( +#48876| AArch64InstrInfo::isScaledAddr(*MI) +#48877| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48888: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48883: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48881| } +#48882| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48883|-> if (( +#48884| AArch64InstrInfo::isScaledAddr(*MI) +#48885| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48898: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48896: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48894| } +#48895| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48896|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48897| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48898| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48903: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48901: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48899| } +#48900| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48901|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48902| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48903| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48910: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48908: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48906| case 676: // LDRSHWroX +#48907| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48908|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48909| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48910| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48962: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48960: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48958| } +#48959| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#48960|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48961| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#48962| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48967: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48965: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48963| } +#48964| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#48965|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48966| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#48967| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48974: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48972: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48970| case 677: // LDRSHXroW +#48971| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#48972|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#48973| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#48974| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48984: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48982: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48980| } +#48981| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#48982|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#48983| return 1707; // M3WriteLB_ReadDefault +#48984| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48992: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48987: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48985| } +#48986| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#48987|-> if (( +#48988| AArch64InstrInfo::isScaledAddr(*MI) +#48989| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49000: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:48995: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#48993| } +#48994| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#48995|-> if (( +#48996| AArch64InstrInfo::isScaledAddr(*MI) +#48997| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49010: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49008: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49006| } +#49007| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49008|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49009| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#49010| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49015: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49013: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49011| } +#49012| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49013|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49014| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#49015| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49022: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49020: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49018| case 678: // LDRSHXroX +#49019| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49020|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49021| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#49022| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49074: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49072: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49070| } +#49071| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49072|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49073| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#49074| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49079: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49077: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49075| } +#49076| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49077|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49078| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#49079| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49086: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49084: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49082| case 682: // LDRSroW +#49083| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49084|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49085| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#49086| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49096: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49094: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49092| } +#49093| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#49094|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49095| return 1699; // M3WriteLE_ReadDefault +#49096| return 1699; // M3WriteLE_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49104: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49099: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49097| } +#49098| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#49099|-> if (( +#49100| AArch64InstrInfo::isScaledAddr(*MI) +#49101| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49112: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49107: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49105| } +#49106| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#49107|-> if (( +#49108| AArch64InstrInfo::isScaledAddr(*MI) +#49109| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49133: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49131: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49129| } +#49130| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49131|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49132| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#49133| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49138: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49136: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49134| } +#49135| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49136|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49137| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#49138| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49145: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49143: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49141| case 683: // LDRSroX +#49142| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49143|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49144| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#49145| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49155: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49153: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49151| } +#49152| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#49153|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49154| return 1706; // WriteVLD_ReadDefault +#49155| return 1706; // WriteVLD_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49163: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49158: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49156| } +#49157| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#49158|-> if (( +#49159| AArch64InstrInfo::isScaledAddr(*MI) +#49160| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49171: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49166: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49164| } +#49165| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#49166|-> if (( +#49167| AArch64InstrInfo::isScaledAddr(*MI) +#49168| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49192: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49190: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49188| } +#49189| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49190|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49191| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#49192| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49197: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49195: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49193| } +#49194| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49195|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49196| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#49197| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49204: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49202: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49200| case 710: // STRBroW +#49201| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49202|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49203| return 1719; // A64FXWrite_STUR_ReadDefault +#49204| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49214: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49212: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49210| } +#49211| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#49212|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49213| return 1715; // M3WriteSA_ReadDefault +#49214| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49222: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49217: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49215| } +#49216| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#49217|-> if (( +#49218| AArch64InstrInfo::isScaledAddr(*MI) +#49219| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49230: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49225: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49223| } +#49224| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#49225|-> if (( +#49226| AArch64InstrInfo::isScaledAddr(*MI) +#49227| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49251: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49249: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49247| } +#49248| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49249|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49250| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#49251| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49256: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49254: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49252| } +#49253| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49254|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49255| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#49256| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49263: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49261: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49259| case 711: // STRBroX +#49260| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49261|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49262| return 1719; // A64FXWrite_STUR_ReadDefault +#49263| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49273: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49271: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49269| } +#49270| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#49271|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49272| return 1717; // WriteVST_ReadDefault +#49273| return 1717; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49281: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49276: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49274| } +#49275| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#49276|-> if (( +#49277| AArch64InstrInfo::isScaledAddr(*MI) +#49278| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49289: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49284: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49282| } +#49283| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#49284|-> if (( +#49285| AArch64InstrInfo::isScaledAddr(*MI) +#49286| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49310: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49308: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49306| } +#49307| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49308|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49309| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#49310| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49315: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49313: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49311| } +#49312| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49313|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49314| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#49315| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49322: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49320: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49318| case 716: // STRHHroW +#49319| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49320|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49321| return 1719; // A64FXWrite_STUR_ReadDefault +#49322| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49332: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49330: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49328| } +#49329| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#49330|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49331| return 1725; // M3WriteSB_ReadDefault +#49332| return 1725; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49340: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49335: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49333| } +#49334| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#49335|-> if (( +#49336| AArch64InstrInfo::isScaledAddr(*MI) +#49337| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49348: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49343: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49341| } +#49342| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#49343|-> if (( +#49344| AArch64InstrInfo::isScaledAddr(*MI) +#49345| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49358: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49356: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49354| } +#49355| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49356|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49357| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#49358| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49363: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49361: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49359| } +#49360| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49361|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49362| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#49363| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49370: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49368: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49366| case 717: // STRHHroX +#49367| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49368|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49369| return 1719; // A64FXWrite_STUR_ReadDefault +#49370| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49380: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49378: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49376| } +#49377| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#49378|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49379| return 1728; // WriteST_ReadDefault +#49380| return 1728; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49388: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49383: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49381| } +#49382| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#49383|-> if (( +#49384| AArch64InstrInfo::isScaledAddr(*MI) +#49385| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49396: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49391: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49389| } +#49390| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#49391|-> if (( +#49392| AArch64InstrInfo::isScaledAddr(*MI) +#49393| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49406: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49404: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49402| } +#49403| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49404|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49405| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#49406| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49411: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49409: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49407| } +#49408| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49409|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49410| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#49411| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49418: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49416: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49414| case 720: // STRHroW +#49415| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49416|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49417| return 1719; // A64FXWrite_STUR_ReadDefault +#49418| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49428: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49426: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49424| } +#49425| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#49426|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49427| return 1715; // M3WriteSA_ReadDefault +#49428| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49436: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49431: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49429| } +#49430| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#49431|-> if (( +#49432| AArch64InstrInfo::isScaledAddr(*MI) +#49433| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49444: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49439: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49437| } +#49438| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#49439|-> if (( +#49440| AArch64InstrInfo::isScaledAddr(*MI) +#49441| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49465: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49463: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49461| } +#49462| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49463|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49464| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#49465| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49470: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49468: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49466| } +#49467| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49468|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49469| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#49470| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49477: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49475: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49473| case 721: // STRHroX +#49474| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49475|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49476| return 1719; // A64FXWrite_STUR_ReadDefault +#49477| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49487: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49485: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49483| } +#49484| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#49485|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49486| return 1717; // WriteVST_ReadDefault +#49487| return 1717; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49495: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49490: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49488| } +#49489| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#49490|-> if (( +#49491| AArch64InstrInfo::isScaledAddr(*MI) +#49492| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49503: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49498: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49496| } +#49497| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#49498|-> if (( +#49499| AArch64InstrInfo::isScaledAddr(*MI) +#49500| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49524: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49522: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49520| } +#49521| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49522|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49523| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#49524| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49529: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49527: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49525| } +#49526| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49527|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49528| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#49529| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49536: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49534: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49532| case 724: // STRQroW +#49533| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49534|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49535| return 1719; // A64FXWrite_STUR_ReadDefault +#49536| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49546: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49544: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49542| } +#49543| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#49544|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#49545| return 1715; // M3WriteSA_ReadDefault +#49546| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49554: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49549: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49547| } +#49548| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#49549|-> if (( +#49550| AArch64InstrInfo::isScaledAddr(*MI) +#49551| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49562: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49557: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49555| } +#49556| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#49557|-> if (( +#49558| AArch64InstrInfo::isScaledAddr(*MI) +#49559| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49583: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49581: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49579| } +#49580| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49581|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49582| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#49583| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49588: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49586: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49584| } +#49585| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49586|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49587| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#49588| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49595: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49593: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49591| case 725: // STRQroX +#49592| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#49593|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49594| return 1719; // A64FXWrite_STUR_ReadDefault +#49595| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49658: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49656: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49654| } +#49655| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#49656|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49657| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#49658| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49663: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:49661: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#49659| } +#49660| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#49661|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#49662| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#49663| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50837: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50835: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50833| case 924: // STRDroW_STRDroX_STRSroW_STRSroX +#50834| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50835|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50836| return 1719; // A64FXWrite_STUR_ReadDefault +#50837| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50847: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50845: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50843| } +#50844| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#50845|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#50846| return 1717; // WriteVST_ReadDefault +#50847| return 1717; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50855: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50850: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50848| } +#50849| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#50850|-> if (( +#50851| AArch64InstrInfo::isScaledAddr(*MI) +#50852| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50863: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50858: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50856| } +#50857| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#50858|-> if (( +#50859| AArch64InstrInfo::isScaledAddr(*MI) +#50860| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50884: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50882: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50880| } +#50881| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#50882|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50883| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#50884| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50889: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50887: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50885| } +#50886| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#50887|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50888| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#50889| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50905: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:50903: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#50901| case 959: // LDRBBroW_LDRBBroX_LDRWroW_LDRWroX_LDRXroW_LDRXroX +#50902| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#50903|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#50904| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#50905| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51013: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51011: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51009| case 966: // LDRSBWroW_LDRSBWroX_LDRSBXroW_LDRSBXroX_LDRSWroW_LDRSWroX +#51010| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#51011|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51012| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#51013| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51185: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51183: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51181| case 1004: // STRBBroW_STRBBroX_STRWroW_STRWroX_STRXroW_STRXroX +#51182| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#51183|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51184| return 1719; // A64FXWrite_STUR_ReadDefault +#51185| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51195: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51193: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51191| } +#51192| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#51193|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#51194| return 1728; // WriteST_ReadDefault +#51195| return 1728; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51203: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51198: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51196| } +#51197| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#51198|-> if (( +#51199| AArch64InstrInfo::isScaledAddr(*MI) +#51200| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51211: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51206: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51204| } +#51205| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#51206|-> if (( +#51207| AArch64InstrInfo::isScaledAddr(*MI) +#51208| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51221: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51219: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51217| } +#51218| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#51219|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51220| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#51221| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51226: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:51224: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#51222| } +#51223| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#51224|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#51225| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#51226| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52472: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52470: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52468| case 1072: // LDRBBroW_LDRWroW_LDRXroW +#52469| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#52470|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52471| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#52472| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52482: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52480: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52478| } +#52479| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#52480|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#52481| return 1707; // M3WriteLB_ReadDefault +#52482| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52490: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52485: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52483| } +#52484| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#52485|-> if (( +#52486| AArch64InstrInfo::isScaledAddr(*MI) +#52487| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52498: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52493: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52491| } +#52492| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#52493|-> if (( +#52494| AArch64InstrInfo::isScaledAddr(*MI) +#52495| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52520: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52518: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52516| case 1073: // LDRSBWroW_LDRSBXroW_LDRSWroW +#52517| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#52518|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52519| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault +#52520| return 1617; // A64FXWrite_1Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52530: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52528: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52526| } +#52527| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#52528|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#52529| return 1707; // M3WriteLB_ReadDefault +#52530| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52538: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52533: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52531| } +#52532| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#52533|-> if (( +#52534| AArch64InstrInfo::isScaledAddr(*MI) +#52535| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52546: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52541: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52539| } +#52540| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#52541|-> if (( +#52542| AArch64InstrInfo::isScaledAddr(*MI) +#52543| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52568: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52566: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52564| case 1074: // PRFMroW +#52565| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#52566|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#52567| return 1707; // M3WriteLB_ReadDefault +#52568| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52576: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52571: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52569| } +#52570| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#52571|-> if (( +#52572| AArch64InstrInfo::isScaledAddr(*MI) +#52573| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52584: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52579: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52577| } +#52578| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#52579|-> if (( +#52580| AArch64InstrInfo::isScaledAddr(*MI) +#52581| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52596: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52594: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52592| case 1075: // STRBBroW_STRWroW_STRXroW +#52593| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#52594|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52595| return 1719; // A64FXWrite_STUR_ReadDefault +#52596| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52606: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52604: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52602| } +#52603| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#52604|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#52605| return 1725; // M3WriteSB_ReadDefault +#52606| return 1725; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52614: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52609: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52607| } +#52608| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#52609|-> if (( +#52610| AArch64InstrInfo::isScaledAddr(*MI) +#52611| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52622: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52617: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52615| } +#52616| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#52617|-> if (( +#52618| AArch64InstrInfo::isScaledAddr(*MI) +#52619| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52632: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52630: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52628| } +#52629| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#52630|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52631| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#52632| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52637: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52635: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52633| } +#52634| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#52635|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52636| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#52637| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52644: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52642: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52640| case 1085: // STRDroW_STRSroW +#52641| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#52642|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52643| return 1719; // A64FXWrite_STUR_ReadDefault +#52644| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52654: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52652: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52650| } +#52651| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#52652|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#52653| return 1715; // M3WriteSA_ReadDefault +#52654| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52662: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52657: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52655| } +#52656| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#52657|-> if (( +#52658| AArch64InstrInfo::isScaledAddr(*MI) +#52659| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52670: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52665: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52663| } +#52664| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#52665|-> if (( +#52666| AArch64InstrInfo::isScaledAddr(*MI) +#52667| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52691: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52689: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52687| } +#52688| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#52689|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52690| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#52691| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52696: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:52694: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#52692| } +#52693| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#52694|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#52695| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#52696| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53439: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53437: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53435| case 1221: // LDRWroW +#53436| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53437|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53438| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#53439| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53449: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53447: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53445| } +#53446| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#53447|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#53448| return 1707; // M3WriteLB_ReadDefault +#53449| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53457: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53452: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53450| } +#53451| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#53452|-> if (( +#53453| AArch64InstrInfo::isScaledAddr(*MI) +#53454| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53465: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53460: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53458| } +#53459| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#53460|-> if (( +#53461| AArch64InstrInfo::isScaledAddr(*MI) +#53462| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53475: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53473: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53471| } +#53472| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53473|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53474| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#53475| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53480: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53478: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53476| } +#53477| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53478|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53479| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#53480| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53487: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53485: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53483| case 1222: // LDRXroW +#53484| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53485|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53486| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#53487| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53497: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53495: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53493| } +#53494| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#53495|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#53496| return 1707; // M3WriteLB_ReadDefault +#53497| return 1707; // M3WriteLB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53505: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53500: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53498| } +#53499| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#53500|-> if (( +#53501| AArch64InstrInfo::isScaledAddr(*MI) +#53502| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53513: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53508: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53506| } +#53507| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#53508|-> if (( +#53509| AArch64InstrInfo::isScaledAddr(*MI) +#53510| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53523: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53521: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53519| } +#53520| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53521|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53522| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#53523| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53528: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53526: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53524| } +#53525| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53526|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53527| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#53528| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53535: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53533: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53531| case 1223: // LDRWroX +#53532| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53533|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53534| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#53535| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53587: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53585: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53583| } +#53584| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53585|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53586| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#53587| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53592: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53590: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53588| } +#53589| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53590|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53591| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#53592| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53599: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53597: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53595| case 1224: // LDRXroX +#53596| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53597|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53598| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault +#53599| return 1703; // A64FXWrite_5Cyc_GI56_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53651: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53649: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53647| } +#53648| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53649|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53650| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault +#53651| return 1702; // THX2T99Write_4Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53656: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53654: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53652| } +#53653| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53654|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53655| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault +#53656| return 1628; // THX3T110Write_4Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53663: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53661: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53659| case 1247: // STRBBroW +#53660| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53661|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53662| return 1719; // A64FXWrite_STUR_ReadDefault +#53663| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53673: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53671: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53669| } +#53670| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#53671|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#53672| return 1725; // M3WriteSB_ReadDefault +#53673| return 1725; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53681: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53676: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53674| } +#53675| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#53676|-> if (( +#53677| AArch64InstrInfo::isScaledAddr(*MI) +#53678| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53689: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53684: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53682| } +#53683| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#53684|-> if (( +#53685| AArch64InstrInfo::isScaledAddr(*MI) +#53686| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53699: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53697: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53695| } +#53696| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53697|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53698| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#53699| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53704: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53702: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53700| } +#53701| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53702|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53703| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#53704| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53711: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53709: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53707| case 1248: // STRBBroX +#53708| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53709|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53710| return 1719; // A64FXWrite_STUR_ReadDefault +#53711| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53721: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53719: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53717| } +#53718| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#53719|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#53720| return 1728; // WriteST_ReadDefault +#53721| return 1728; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53729: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53724: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53722| } +#53723| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#53724|-> if (( +#53725| AArch64InstrInfo::isScaledAddr(*MI) +#53726| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53737: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53732: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53730| } +#53731| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#53732|-> if (( +#53733| AArch64InstrInfo::isScaledAddr(*MI) +#53734| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53747: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53745: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53743| } +#53744| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53745|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53746| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#53747| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53752: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53750: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53748| } +#53749| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53750|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53751| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#53752| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53759: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53757: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53755| case 1249: // STRDroW +#53756| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53757|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53758| return 1719; // A64FXWrite_STUR_ReadDefault +#53759| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53769: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53767: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53765| } +#53766| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#53767|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#53768| return 1715; // M3WriteSA_ReadDefault +#53769| return 1715; // M3WriteSA_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53777: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53772: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53770| } +#53771| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#53772|-> if (( +#53773| AArch64InstrInfo::isScaledAddr(*MI) +#53774| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53785: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53780: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53778| } +#53779| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#53780|-> if (( +#53781| AArch64InstrInfo::isScaledAddr(*MI) +#53782| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53806: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53804: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53802| } +#53803| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53804|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53805| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#53806| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53811: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53809: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53807| } +#53808| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53809|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53810| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#53811| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53818: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53816: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53814| case 1250: // STRDroX +#53815| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53816|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53817| return 1719; // A64FXWrite_STUR_ReadDefault +#53818| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53828: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53826: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53824| } +#53825| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#53826|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#53827| return 1717; // WriteVST_ReadDefault +#53828| return 1717; // WriteVST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53836: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53831: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53829| } +#53830| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#53831|-> if (( +#53832| AArch64InstrInfo::isScaledAddr(*MI) +#53833| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53844: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53839: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53837| } +#53838| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#53839|-> if (( +#53840| AArch64InstrInfo::isScaledAddr(*MI) +#53841| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53865: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53863: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53861| } +#53862| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53863|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53864| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#53865| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53870: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53868: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53866| } +#53867| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53868|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53869| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#53870| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53877: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53875: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53873| case 1251: // STRWroW +#53874| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53875|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53876| return 1719; // A64FXWrite_STUR_ReadDefault +#53877| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53887: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53885: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53883| } +#53884| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#53885|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#53886| return 1725; // M3WriteSB_ReadDefault +#53887| return 1725; // M3WriteSB_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53895: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53890: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53888| } +#53889| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#53890|-> if (( +#53891| AArch64InstrInfo::isScaledAddr(*MI) +#53892| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53903: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53898: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53896| } +#53897| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#53898|-> if (( +#53899| AArch64InstrInfo::isScaledAddr(*MI) +#53900| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53913: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53911: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53909| } +#53910| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53911|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53912| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#53913| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53918: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53916: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53914| } +#53915| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53916|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53917| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#53918| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53925: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53923: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53921| case 1252: // STRWroX +#53922| if (SchedModel->getProcessorID() == 1) { // A64FXModel +#53923|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53924| return 1719; // A64FXWrite_STUR_ReadDefault +#53925| return 1719; // A64FXWrite_STUR_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53935: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53933: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53931| } +#53932| if (SchedModel->getProcessorID() == 9) { // ExynosM3Model +#53933|-> if (AArch64InstrInfo::isExynosScaledAddr(*MI)) +#53934| return 1728; // WriteST_ReadDefault +#53935| return 1728; // WriteST_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53943: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53938: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53936| } +#53937| if (SchedModel->getProcessorID() == 10) { // ExynosM4Model +#53938|-> if (( +#53939| AArch64InstrInfo::isScaledAddr(*MI) +#53940| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53951: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53946: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI) || llvm::AArch64InstrInfo::isExynosScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53944| } +#53945| if (SchedModel->getProcessorID() == 11) { // ExynosM5Model +#53946|-> if (( +#53947| AArch64InstrInfo::isScaledAddr(*MI) +#53948| || AArch64InstrInfo::isExynosScaledAddr(*MI) + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53961: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53959: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53957| } +#53958| if (SchedModel->getProcessorID() == 18) { // ThunderX2T99Model +#53959|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53960| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault +#53961| return 1718; // WriteAdr_THX2T99Write_1Cyc_LS01_I012_ReadDefault + +Error: IDENTICAL_BRANCHES (CWE-398): +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53966: implicit_else: The code from the above if-then branch is identical to the code after the if statement. +llvm-17.0.6.src/redhat-linux-build/lib/Target/AArch64/AArch64GenSubtargetInfo.inc:53964: identical_branches: The same code is executed when the condition "llvm::AArch64InstrInfo::isScaledAddr(MI)" is true or false, because the code in the if-then branch and after the if statement is identical. Should the if statement be removed? +#53962| } +#53963| if (SchedModel->getProcessorID() == 19) { // ThunderX3T110Model +#53964|-> if (AArch64InstrInfo::isScaledAddr(*MI)) +#53965| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault +#53966| return 1720; // WriteAdr_THX3T110Write_1Cyc_LS01_I0123_ReadDefault